From a2c3426ace8834f9672243a174f5a4fe1c508e54 Mon Sep 17 00:00:00 2001 From: KoalaSat Date: Sun, 6 Jul 2025 19:05:38 +0000 Subject: [PATCH 1/4] Delete compose/strfry directory --- compose/strfry/Dockerfile | 43 --------------------------- compose/strfry/README.md | 5 ---- compose/strfry/crontab | 25 ---------------- compose/strfry/entrypoint.sh | 3 -- compose/strfry/mn.external_urls.txt | 3 -- compose/strfry/mn.federation_urls.txt | 6 ---- compose/strfry/sync_external.sh | 9 ------ compose/strfry/sync_federation.sh | 8 ----- compose/strfry/tn.external_urls.txt | 3 -- compose/strfry/tn.federation_urls.txt | 4 --- 10 files changed, 109 deletions(-) delete mode 100644 compose/strfry/Dockerfile delete mode 100644 compose/strfry/README.md delete mode 100644 compose/strfry/crontab delete mode 100644 compose/strfry/entrypoint.sh delete mode 100644 compose/strfry/mn.external_urls.txt delete mode 100644 compose/strfry/mn.federation_urls.txt delete mode 100644 compose/strfry/sync_external.sh delete mode 100644 compose/strfry/sync_federation.sh delete mode 100644 compose/strfry/tn.external_urls.txt delete mode 100644 compose/strfry/tn.federation_urls.txt diff --git a/compose/strfry/Dockerfile b/compose/strfry/Dockerfile deleted file mode 100644 index 4829d2d..0000000 --- a/compose/strfry/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM ubuntu:jammy -ENV TZ=Europe/London - -RUN apt update && apt install -y --no-install-recommends \ - git g++ make pkg-config libtool ca-certificates \ - libssl-dev zlib1g-dev liblmdb-dev libflatbuffers-dev \ - libsecp256k1-dev libzstd-dev - -# setup app -RUN git clone https://github.com/KoalaSat/strfry /app - -WORKDIR /app - -RUN git submodule update --init -RUN make setup-golpe -RUN make clean -RUN make -j4 - -RUN apt update && apt install -y --no-install-recommends \ - liblmdb0 libflatbuffers1 libsecp256k1-0 libb2-1 libzstd1 torsocks cron\ - && rm -rf /var/lib/apt/lists/* - -RUN echo "TorAddress 127.0.0.1" >> /etc/tor/torsocks.conf -RUN echo "TorPort 9050" >> /etc/tor/torsocks.conf - -# Setting up crontab -COPY crontab /etc/cron.d/crontab -RUN chmod 0644 /etc/cron.d/crontab -RUN crontab /etc/cron.d/crontab - -# Setting up entrypoints -COPY sync_external.sh /etc/strfry/sync_external.sh -COPY sync_federation.sh /etc/strfry/sync_federation.sh -COPY entrypoint.sh /etc/strfry/entrypoint.sh - -RUN chmod +x /etc/strfry/entrypoint.sh -RUN chmod +x /etc/strfry/sync_external.sh -RUN chmod +x /etc/strfry/sync_federation.sh - -#Setting up logs -RUN touch /var/log/cron.log && chmod 0644 /var/log/cron.log - -ENTRYPOINT ["/etc/strfry/entrypoint.sh"] diff --git a/compose/strfry/README.md b/compose/strfry/README.md deleted file mode 100644 index 773586f..0000000 --- a/compose/strfry/README.md +++ /dev/null @@ -1,5 +0,0 @@ -## Synchronization - -To keep a healthy network, make sure your relay sinchronizes with at least 2 clearnet relays (implementing strfry). - -If they are different from other coordinators, better. diff --git a/compose/strfry/crontab b/compose/strfry/crontab deleted file mode 100644 index 407684f..0000000 --- a/compose/strfry/crontab +++ /dev/null @@ -1,25 +0,0 @@ -# Edit this file to introduce tasks to be run by cron. -# -# Each task to run has to be defined through a single line -# indicating with different fields when the task will be run -# and what command to run for the task -# -# To define the time you can provide concrete values for -# minute (m), hour (h), day of month (dom), month (mon), -# and day of week (dow) or use '*' in these fields (for 'any'). -# -# Notice that tasks will be started based on the cron's system -# daemon's notion of time and timezones. -# -# Output of the crontab jobs (including errors) is sent through -# email to the user the crontab file belongs to (unless redirected). -# -# For example, you can run a backup of all your user accounts -# at 5 a.m every week with: -# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ -# -# For more information see the manual pages of crontab(5) and cron(8) -# -# m h dom mon dow command -*/2 * * * * torsocks /etc/strfry/sync_federation.sh >> /var/log/cron.log 2>&1 -*/5 * * * * torsocks /etc/strfry/sync_external.sh >> /var/log/cron.log 2>&1 diff --git a/compose/strfry/entrypoint.sh b/compose/strfry/entrypoint.sh deleted file mode 100644 index efb3062..0000000 --- a/compose/strfry/entrypoint.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -cron -f -l 8 & tail -f /var/log/cron.log & /app/strfry relay diff --git a/compose/strfry/mn.external_urls.txt b/compose/strfry/mn.external_urls.txt deleted file mode 100644 index c077b42..0000000 --- a/compose/strfry/mn.external_urls.txt +++ /dev/null @@ -1,3 +0,0 @@ -wss://nostr.satstralia.com -wss://relay.damus.io -wss://freelay.sovbit.host \ No newline at end of file diff --git a/compose/strfry/mn.federation_urls.txt b/compose/strfry/mn.federation_urls.txt deleted file mode 100644 index 2c26c2d..0000000 --- a/compose/strfry/mn.federation_urls.txt +++ /dev/null @@ -1,6 +0,0 @@ -ws://ngdk7ocdzmz5kzsysa3om6du7ycj2evxp2f2olfkyq37htx3gllwp2yd.onion/nostr -ws://4t4jxmivv6uqej6xzx2jx3fxh75gtt65v3szjoqmc4ugdlhipzdat6yd.onion/nostr -ws://mmhaqzuirth5rx7gl24d4773lknltjhik57k7ahec5iefktezv4b3uid.onion/nostr -ws://otmoonrndnrddqdlhu6b36heunmbyw3cgvadqo2oqeau3656wfv7fwad.onion/nostr -ws://librebazovfmmkyi2jekraxsuso3mh622avuuzqpejixdl5dhuhb4tid.onion/nostr -ws://dqmmejfmtlve7d4ccohk4usriifdtci6xk4wv7igxn2fyaduh25s6did.onion/nostr diff --git a/compose/strfry/sync_external.sh b/compose/strfry/sync_external.sh deleted file mode 100644 index b66bfe1..0000000 --- a/compose/strfry/sync_external.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -filters_external='{"kinds":[38383]}' -timeout_duration="15s" - -while IFS= read -r line; do - timeout "$timeout_duration" /app/strfry --config /etc/strfry.conf sync ${line} --filter "$filters_external" --dir both -done < /app/external_urls.txt - diff --git a/compose/strfry/sync_federation.sh b/compose/strfry/sync_federation.sh deleted file mode 100644 index 2a8b98b..0000000 --- a/compose/strfry/sync_federation.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -filters_federation='{"kinds":[38383, 31986, 1059]}' -timeout_duration="15s" - -while IFS= read -r line; do - timeout "$timeout_duration" /app/strfry --config /etc/strfry.conf sync ${line} --filter "$filters_federation" --dir both -done < /app/federation_urls.txt diff --git a/compose/strfry/tn.external_urls.txt b/compose/strfry/tn.external_urls.txt deleted file mode 100644 index c077b42..0000000 --- a/compose/strfry/tn.external_urls.txt +++ /dev/null @@ -1,3 +0,0 @@ -wss://nostr.satstralia.com -wss://relay.damus.io -wss://freelay.sovbit.host \ No newline at end of file diff --git a/compose/strfry/tn.federation_urls.txt b/compose/strfry/tn.federation_urls.txt deleted file mode 100644 index e9ac37f..0000000 --- a/compose/strfry/tn.federation_urls.txt +++ /dev/null @@ -1,4 +0,0 @@ -ws://jpp3w5tpxtyg6lifonisdszpriiapszzem4wod2zsdweyfenlsxeoxid.onion/nostr -ws://ghbtv7lhoyhomyir4xvxaeyqgx4ylxksia343jaat3njqqlkqpdjqcyd.onion/nostr -ws://wsjyhbashc4zrrex6vijpryujggbka5plry2o62dxqoz3pxinblnj4ad.onion/nostr -ws://otmtestgbj3kqo3nre6oksusuqfb4ids5zg2y5z2qza2jogeu67stwid.onion/nostr From eff4cfb05e25966aa55d8c6961458cec39399ed6 Mon Sep 17 00:00:00 2001 From: KoalaSat Date: Sun, 6 Jul 2025 19:07:16 +0000 Subject: [PATCH 2/4] Update docker-compose.yml --- compose/docker-compose.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index 6a2bb8a..72f2469 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -143,19 +143,6 @@ services: - redis network_mode: service:tor - strfry: - build: - context: ./strfry - dockerfile: Dockerfile - container_name: strfry${SUFFIX} - restart: always - volumes: - - ${STRFRY_URLS_EXTERNAL}:/app/external_urls.txt:ro - - ${STRFRY_URLS_FEDERATION}:/app/federation_urls.txt:ro - - ${STRFRY_CONF}:/etc/strfry.conf:ro - - ${STRFRY_DATA}/db:/app/strfry-db:rw - network_mode: service:tor - relay: build: context: ./relay From 9856eaac0367ac167bab72441cc85dcf45b13ec8 Mon Sep 17 00:00:00 2001 From: KoalaSat Date: Sun, 6 Jul 2025 19:08:00 +0000 Subject: [PATCH 3/4] Delete compose/env-sample/lndtn/strfry.conf --- compose/env-sample/lndtn/strfry.conf | 138 --------------------------- 1 file changed, 138 deletions(-) delete mode 100644 compose/env-sample/lndtn/strfry.conf diff --git a/compose/env-sample/lndtn/strfry.conf b/compose/env-sample/lndtn/strfry.conf deleted file mode 100644 index 8b8341d..0000000 --- a/compose/env-sample/lndtn/strfry.conf +++ /dev/null @@ -1,138 +0,0 @@ -## -## Default strfry config -## - -# Directory that contains the strfry LMDB database (restart required) -db = "/app/strfry-db/" - -dbParams { - # Maximum number of threads/processes that can simultaneously have LMDB transactions open (restart required) - maxreaders = 256 - - # Size of mmap() to use when loading LMDB (default is 10TB, does *not* correspond to disk-space used) (restart required) - mapsize = 10995116277760 - - # Disables read-ahead when accessing the LMDB mapping. Reduces IO activity when DB size is larger than RAM. (restart required) - noReadAhead = false -} - -events { - # Maximum size of normalised JSON, in bytes - maxEventSize = 65536 - - # Events newer than this will be rejected - rejectEventsNewerThanSeconds = 900 - - # Events older than this will be rejected - rejectEventsOlderThanSeconds = 94608000 - - # Ephemeral events older than this will be rejected - rejectEphemeralEventsOlderThanSeconds = 60 - - # Ephemeral events will be deleted from the DB when older than this - ephemeralEventsLifetimeSeconds = 300 - - # Maximum number of tags allowed - maxNumTags = 2000 - - # Maximum size for tag values, in bytes - maxTagValSize = 1024 -} - -relay { - # Interface to listen on. Use 0.0.0.0 to listen on all interfaces (restart required) - bind = "0.0.0.0" - - # Port to open for the nostr websocket protocol (restart required) - port = 7777 - - # Set OS-limit on maximum number of open files/sockets (if 0, don't attempt to set) (restart required) - nofiles = 524288 - - # HTTP header that contains the client's real IP, before reverse proxying (ie x-real-ip) (MUST be all lower-case) - realIpHeader = "" - - info { - # NIP-11: Name of this server. Short/descriptive (< 30 characters) - name = "Robosats" - - # NIP-11: Detailed information about relay, free-form - description = "Federation cache system." - - # NIP-11: Administrative nostr pubkey, for contact purposes - pubkey = "" - - # NIP-11: Alternative administrative contact (email, website, etc) - contact = "" - } - - # Maximum accepted incoming websocket frame size (should be larger than max event) (restart required) - maxWebsocketPayloadSize = 131072 - - # Websocket-level PING message frequency (should be less than any reverse proxy idle timeouts) (restart required) - autoPingSeconds = 55 - - # If TCP keep-alive should be enabled (detect dropped connections to upstream reverse proxy) - enableTcpKeepalive = false - - # How much uninterrupted CPU time a REQ query should get during its DB scan - queryTimesliceBudgetMicroseconds = 10000 - - # Maximum records that can be returned per filter - maxFilterLimit = 500 - - # Maximum number of subscriptions (concurrent REQs) a connection can have open at any time - maxSubsPerConnection = 3 - - writePolicy { - # If non-empty, path to an executable script that implements the writePolicy plugin logic - plugin = "" - } - - compression { - # Use permessage-deflate compression if supported by client. Reduces bandwidth, but slight increase in CPU (restart required) - enabled = true - - # Maintain a sliding window buffer for each connection. Improves compression, but uses more memory (restart required) - slidingWindow = false - } - - logging { - # Dump all incoming messages - dumpInAll = false - - # Dump all incoming EVENT messages - dumpInEvents = false - - # Dump all incoming REQ/CLOSE messages - dumpInReqs = false - - # Log performance metrics for initial REQ database scans - dbScanPerf = false - - # Log reason for invalid event rejection? Can be disabled to silence excessive logging - invalidEvents = true - } - - numThreads { - # Ingester threads: route incoming requests, validate events/sigs (restart required) - ingester = 3 - - # reqWorker threads: Handle initial DB scan for events (restart required) - reqWorker = 3 - - # reqMonitor threads: Handle filtering of new events (restart required) - reqMonitor = 3 - - # negentropy threads: Handle negentropy protocol messages (restart required) - negentropy = 2 - } - - negentropy { - # Support negentropy protocol messages - enabled = true - - # Maximum records that sync will process before returning an error - maxSyncEvents = 1000000 - } -} From 2d83e1bd8a6dc722dce267c95d97125a9aae40f6 Mon Sep 17 00:00:00 2001 From: KoalaSat Date: Sun, 6 Jul 2025 19:08:29 +0000 Subject: [PATCH 4/4] Update compose.env --- compose/env-sample/lndtn/compose.env | 5 ----- 1 file changed, 5 deletions(-) diff --git a/compose/env-sample/lndtn/compose.env b/compose/env-sample/lndtn/compose.env index 6b09841..7cbfd08 100644 --- a/compose/env-sample/lndtn/compose.env +++ b/compose/env-sample/lndtn/compose.env @@ -28,11 +28,6 @@ POSTGRES_PASSWORD='example' NGINX_CONFD='./nginx/tn.conf.d' WELLKNOWN='./nginx/tn.well-known' -STRFRY_CONF='./env-sample/lndtn/strfry.conf' -STRFRY_URLS_EXTERNAL='./strfry/tn.external_urls.txt' -STRFRY_URLS_FEDERATION='./strfry/tn.federation_urls.txt' -STRFRY_DATA='/custom_path/testnet/strfry' - RELAY_CONF='./env-sample/lndtn/relay.strfry.conf' RELAY_URLS_EXTERNAL='./relay/tn.external_urls.txt' RELAY_URLS_FEDERATION='./relay/tn.federation_urls.txt'