Skip to content

Instantly share code, notes, and snippets.

@ryogrid
Created December 24, 2023 05:51
Show Gist options
  • Save ryogrid/50486a793d5991888712a88f2163f6e9 to your computer and use it in GitHub Desktop.
Save ryogrid/50486a793d5991888712a88f2163f6e9 to your computer and use it in GitHub Desktop.
config of Bostr
// Bostr config
module.exports = {
// Server listener [Required]
address: "127.0.0.1",
port: "8080",
// Clusters.
// 0 will make bostr run clusters with available parallelism / CPU cores.
clusters: 1,
// Log about bouncer connection with relays?
log_about_relays: false,
// Time before reconnect to relays in miliseconds.
reconnect_time: 1000,
// Wait for every connected relays send EOSE.
// Could improve accurancy on received events.
//
// Depending on your configured relays,
// It may could cause loading problems in client due to slow EOSE from bouncer.
// You could try fix this by changing <eose_timeout> or <max_eose_score> value.
wait_eose: true, <- ★★★
// Pause an subscription from receiving further events after reached to <filter.limit>
// Could save client's bandwdith.
//
// Depending on <wait_eose> settings, It could either miss some events.
pause_on_limit: true,
// EOSE timeout in miliseconds
eose_timeout: 100000,//2300, <- ★★★
// Maximum of received EOSE from relays to send EOSE to client.
// Normally, waiting EOSE from 3 relays should be enough. Leaving it with 0 equals wait for every established relays.
// NOTE: Please adjust this max score correctly with your configured relays.
// If you only setted up 3 relays, Set the <max_eose_score> as 0.
// Tip : The bigger = The more accurate EOSE, The less = EOSE sent way earlier.
max_eose_score: 0, <- ★★★
// A whitelist of users public keys who could use this bouncer.
// Leaving this empty will allows everyone to use this bouncer.
// NOTE: - Require NIP-42 compatible nostr client
authorized_keys: [
],
// Used for accessing NIP-42 protected events from certain relays.
// It could be your key. Leaving this empty completely disables NIP-42 function.
//
// You could use this function even as a public bouncer.
// There are no security risk as it utilize NIP-42 to recognize client public key.
//
// NOTE: - Require NIP-42 compatible nostr client
private_keys: {
// "pubkey-in-hex": "privatekey",
// "pubkey-in-hex": "nsec ...."
},
// Tip: If you want to convert your pubkey/privatekey to hex,
// You could run the following command:
// $ node hexconverter.js npub....
// $ node hexconverter.js nsec....
// Server information.
// Only for when nostr client requesting server information.
server_meta: {
"contact": "unset",
"pubkey": "0000000000000000000000000000000000000000000000000000000000000000",
"description": "Nostr relay bouncer",
"name": "Bostr",
"software": "git+https://github.com/Yonle/bostr",
// Some nostr client may read the following for compatibility check.
// You may change the supported_nips to match with what your relays supported.
"supported_nips": [1,2,9,11,12,15,16,20,22,33,40,42,50],
"version": require("./package.json").version
},
// Cache relays
// Used for caching received events from <relays> to reduce bandwidth waste.
// Keeping this empty will disable caching function.
//
// To make this working properly, Please enable <pause_on_limit>.
cache_relays: [
// "wss://desktop-ioaspn6.tailed179.ts.net/cache"
],
// Nostr relays to bounce [Required]
relays: [
"wss://yabu.me",
"wss://relay.damus.io",
//"wss://search.nos.today",
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment