add log_about_relays into config.js

Signed-off-by: Yonle <yonle@lecturify.net>
This commit is contained in:
Yonle
2023-11-01 19:54:03 +07:00
parent 292354813c
commit ea06487f94
4 changed files with 17 additions and 9 deletions

View File

@@ -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

View File

@@ -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.
});

View File

@@ -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.

View File

@@ -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: {