From 270b781306358f791caeab993aaa0f2c565eaf0a Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 13 Feb 2023 11:16:18 -0800 Subject: nostr config --- routes/nostr.js | 1 + sampledata/nostr/config.toml | 135 +++++++++++++++++++++++++++++++++++++++++++ setup.sh | 1 + 3 files changed, 137 insertions(+) create mode 100644 sampledata/nostr/config.toml diff --git a/routes/nostr.js b/routes/nostr.js index 005a4be9..f006a23d 100644 --- a/routes/nostr.js +++ b/routes/nostr.js @@ -52,6 +52,7 @@ export default { async broadcast(req, res) { let { event } = req.body; + console.log("sending", event) pool.send(["EVENT", event]); res.send(event); }, diff --git a/sampledata/nostr/config.toml b/sampledata/nostr/config.toml new file mode 100644 index 00000000..87dd8809 --- /dev/null +++ b/sampledata/nostr/config.toml @@ -0,0 +1,135 @@ +# Nostr-rs-relay configuration + +[info] +# The advertised URL for the Nostr websocket. +relay_url = "wss://nostr.example.com/" + +# Relay information for clients. Put your unique server name here. +name = "nostr-rs-relay" + +# Description +description = "A newly created nostr-rs-relay.\n\nCustomize this with your own info." + +# Administrative contact pubkey +#pubkey = "0c2d168a4ae8ca58c9f1ab237b5df682599c6c7ab74307ea8b05684b60405d41" + +# Administrative contact URI +#contact = "mailto:contact@example.com" + +[diagnostics] +# Enable tokio tracing (for use with tokio-console) +#tracing = true + +[database] +# Directory for SQLite files. Defaults to the current directory. Can +# also be specified (and overriden) with the "--db dirname" command +# line option. +data_directory = "." + + +# Use an in-memory database instead of 'nostr.db'. +# Caution; this will not survive a process restart! +#in_memory = false + +# Database connection pool settings for subscribers: + +# Minimum number of SQLite reader connections +#min_conn = 4 + +# Maximum number of SQLite reader connections +#max_conn = 128 + +[network] +# Bind to this network address +address = "0.0.0.0" + +# Listen on this port +port = 8080 + +# If present, read this HTTP header for logging client IP addresses. +# Examples for common proxies, cloudflare: +#remote_ip_header = "x-forwarded-for" +#remote_ip_header = "cf-connecting-ip" + +# Websocket ping interval in seconds, defaults to 5 minutes +#ping_interval = 300 + +[options] +# Reject events that have timestamps greater than this many seconds in +# the future. Recommended to reject anything greater than 30 minutes +# from the current time, but the default is to allow any date. +reject_future_seconds = 1800 + +[limits] +# Limit events created per second, averaged over one minute. Must be +# an integer. If not set (or set to 0), defaults to unlimited. Note: +# this is for the server as a whole, not per-connection. +# messages_per_sec = 0 + +# Limit client subscriptions created per second, averaged over one +# minute. Must be an integer. If not set (or set to 0), defaults to +# unlimited. +#subscriptions_per_min = 0 + +# UNIMPLEMENTED... +# Limit how many concurrent database connections a client can have. +# This prevents a single client from starting too many expensive +# database queries. Must be an integer. If not set (or set to 0), +# defaults to unlimited (subject to subscription limits). +#db_conns_per_client = 0 + +# Limit blocking threads used for database connections. Defaults to 16. +#max_blocking_threads = 16 + +# Limit the maximum size of an EVENT message. Defaults to 128 KB. +# Set to 0 for unlimited. +#max_event_bytes = 131072 + +# Maximum WebSocket message in bytes. Defaults to 128 KB. +#max_ws_message_bytes = 131072 + +# Maximum WebSocket frame size in bytes. Defaults to 128 KB. +#max_ws_frame_bytes = 131072 + +# Broadcast buffer size, in number of events. This prevents slow +# readers from consuming memory. +#broadcast_buffer = 16384 + +# Event persistence buffer size, in number of events. This provides +# backpressure to senders if writes are slow. +#event_persist_buffer = 4096 + +[authorization] +# Pubkey addresses in this array are whitelisted for event publishing. +# Only valid events by these authors will be accepted, if the variable +# is set. +#pubkey_whitelist = [ +# "35d26e4690cbe1a898af61cc3515661eb5fa763b57bd0b42e45099c8b32fd50f", +# "887645fef0ce0c3c1218d2f5d8e6132a19304cdc57cd20281d082f38cfea0072", +#] + +[verified_users] +# NIP-05 verification of users. Can be "enabled" to require NIP-05 +# metadata for event authors, "passive" to perform validation but +# never block publishing, or "disabled" to do nothing. +#mode = "disabled" + +# Domain names that will be prevented from publishing events. +#domain_blacklist = ["wellorder.net"] + +# Domain names that are allowed to publish events. If defined, only +# events NIP-05 verified authors at these domains are persisted. +#domain_whitelist = ["example.com"] + +# Consider an pubkey "verified" if we have a successful validation +# from the NIP-05 domain within this amount of time. Note, if the +# domain provides a successful response that omits the account, +# verification is immediately revoked. +#verify_expiration = "1 week" + +# How long to wait between verification attempts for a specific author. +#verify_update_frequency = "24 hours" + +# How many consecutive failed checks before we give up on verifying +# this author. +#max_consecutive_failures = 20 diff --git a/setup.sh b/setup.sh index 329641d3..6e4ecebc 100755 --- a/setup.sh +++ b/setup.sh @@ -1,6 +1,7 @@ cp config.js.sample config.js cp compose.yml.sample compose.yml cp -r sampledata data +sudo chown 100:100 data/nostr/data docker compose up -d docker run -it -v $(pwd):/app --entrypoint pnpm cs i docker exec -it bc bitcoin-cli createwallet coinos -- cgit v1.2.3