mirror of
https://github.com/Yonle/bostr.git
synced 2025-10-07 07:48:27 +02:00
add log_about_relays into config.js
Signed-off-by: Yonle <yonle@lecturify.net>
This commit is contained in:
@@ -10,7 +10,7 @@ Nostr relays is bunch of dummy servers and usually connects to more than 5-10 re
|
||||
Due to it is nature to connect to more than two or three relays, This caused a issue such as mobile data bandwidth drained drastically, and similiar
|
||||
|
||||
|
||||
This project serve the purpose as a bouncer to solve this issue.
|
||||
This project serve the purpose as a bouncer to reduce client bandwidth usage.
|
||||
|
||||
## Installation
|
||||
- NodeJS (+v14)
|
||||
@@ -39,6 +39,7 @@ tmux new -d "node index.js"
|
||||
## Environment Variable
|
||||
- `CLUSTERS` - Run Bostr with specified numbers of clusters.
|
||||
- `IN_MEMORY` - Store temporary data in memory (RAM) instead of disk.
|
||||
- `LOG_ABOUT_RELAYS` - Whenever to log about relay connections
|
||||
|
||||
## License
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
const SQLite = require("better-sqlite3");
|
||||
const WebSocket = require("ws");
|
||||
const { relays, tmp_store } = require("../config");
|
||||
const { relays, tmp_store, log_about_relays } = require("../config");
|
||||
const socks = new Set();
|
||||
const sess = new SQLite((process.env.IN_MEMORY || tmp_store != "disk") ? null : (__dirname + "/../.temporary.db"));
|
||||
const csess = new Map();
|
||||
@@ -85,7 +85,7 @@ function newConn(addr) {
|
||||
relay.addr = addr;
|
||||
relay.on('open', _ => {
|
||||
socks.add(relay); // Add this socket session to [socks]
|
||||
console.log(process.pid, "---", `[${socks.size}/${relays.length}]`, relay.addr, "is connected");
|
||||
if (process.env.LOG_ABOUT_RELAYS || log_about_relays) console.log(process.pid, "---", `[${socks.size}/${relays.length}]`, relay.addr, "is connected");
|
||||
for (i of sess.prepare("SELECT subID, filter FROM sess").iterate()) {
|
||||
if (relay.readyState >= 2) break;
|
||||
relay.send(JSON.stringify(["REQ", i.subID, JSON.parse(i.filter)]));
|
||||
@@ -121,10 +121,12 @@ function newConn(addr) {
|
||||
}
|
||||
});
|
||||
|
||||
relay.on('error', _ => console.error(process.pid, "-!-", relay.addr, _.toString()));
|
||||
relay.on('error', _ => {
|
||||
if (process.env.LOG_ABOUT_RELAYS || log_about_relays) console.error(process.pid, "-!-", relay.addr, _.toString());
|
||||
});
|
||||
relay.on('close', _ => {
|
||||
socks.delete(relay) // Remove this socket session from [socks] list
|
||||
console.log(process.pid, "-!-", `[${socks.size}/${relays.length}]`, "Disconnected from", relay.addr);
|
||||
if (process.env.LOG_ABOUT_RELAYS || log_about_relays) console.log(process.pid, "-!-", `[${socks.size}/${relays.length}]`, "Disconnected from", relay.addr);
|
||||
|
||||
setTimeout(_ => newConn(addr), 5000); // As a bouncer server, We need to reconnect.
|
||||
});
|
||||
|
@@ -1,6 +1,6 @@
|
||||
const SQLite = require("better-sqlite3");
|
||||
const WebSocket = require("ws");
|
||||
const { relays, tmp_store } = require("../config");
|
||||
const { relays, tmp_store, log_about_relays } = require("../config");
|
||||
const socks = new Set();
|
||||
const sess = new SQLite((process.env.IN_MEMORY || tmp_store != "disk") ? null : (__dirname + "/../.temporary.db"));
|
||||
const csess = new Map();
|
||||
@@ -94,7 +94,7 @@ function newConn(addr, id) {
|
||||
relay.addr = addr;
|
||||
relay.on('open', _ => {
|
||||
socks.add(relay); // Add this socket session to [socks]
|
||||
console.log(process.pid, "---", `[${id}] [${socks.size}/${relays.length*csess.size}]`, relay.addr, "is connected");
|
||||
if (process.env.LOG_ABOUT_RELAYS || log_about_relays) console.log(process.pid, "---", `[${id}] [${socks.size}/${relays.length*csess.size}]`, relay.addr, "is connected");
|
||||
for (i of sess.prepare("SELECT subID, filter FROM sess WHERE cID = ?;").iterate(id)) {
|
||||
if (relay.readyState >= 2) break;
|
||||
relay.send(JSON.stringify(["REQ", i.subID, JSON.parse(i.filter)]));
|
||||
@@ -120,10 +120,12 @@ function newConn(addr, id) {
|
||||
}
|
||||
});
|
||||
|
||||
relay.on('error', _ => console.error(process.pid, "-!-", `[${id}]`, relay.addr, _.toString()));
|
||||
relay.on('error', _ => {
|
||||
if (process.env.LOG_ABOUT_RELAYS || log_about_relays) console.error(process.pid, "-!-", `[${id}]`, relay.addr, _.toString())
|
||||
});
|
||||
relay.on('close', _ => {
|
||||
socks.delete(relay) // Remove this socket session from [socks] list
|
||||
console.log(process.pid, "-!-", `[${id}] [${socks.size}/${relays.length*csess.size}]`, "Disconnected from", relay.addr);
|
||||
if (process.env.LOG_ABOUT_RELAYS || log_about_relays) console.log(process.pid, "-!-", `[${id}] [${socks.size}/${relays.length*csess.size}]`, "Disconnected from", relay.addr);
|
||||
|
||||
if (!csess.has(id)) return;
|
||||
setTimeout(_ => newConn(addr, id), 5000); // As a bouncer server, We need to reconnect.
|
||||
|
@@ -18,6 +18,9 @@ module.exports = {
|
||||
// Options: disk, memory
|
||||
tmp_store: "memory",
|
||||
|
||||
// Log about bouncer connection with relays?
|
||||
log_about_relays: false,
|
||||
|
||||
// Server information.
|
||||
// Only for when nostr client requesting server information.
|
||||
server_meta: {
|
||||
|
Reference in New Issue
Block a user