From b268b1e2a413ece4126fffe766eb9f897056818e Mon Sep 17 00:00:00 2001 From: Barry Deen Date: Wed, 25 Sep 2024 13:52:04 -0400 Subject: [PATCH] example with rate limits --- .env.example | 57 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/.env.example b/.env.example index 6e36280..edd9f90 100644 --- a/.env.example +++ b/.env.example @@ -7,6 +7,16 @@ PRIVATE_RELAY_NPUB="npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r5 PRIVATE_RELAY_DESCRIPTION="A safe place to store my drafts and ecash" PRIVATE_RELAY_ICON="https://i.nostr.build/6G6wW.gif" +## Private Relay Rate Limiters +PRIVATE_RELAY_EVENT_IP_LIMITER_TOKENS_PER_INTERVAL=50 +PRIVATE_RELAY_EVENT_IP_LIMITER_INTERVAL=1 +PRIVATE_RELAY_EVENT_IP_LIMITER_MAX_TOKENS=100 +PRIVATE_RELAY_ALLOW_EMPTY_FILTERS=true +PRIVATE_RELAY_ALLOW_COMPLEX_FILTERS=true +PRIVATE_RELAY_CONNECTION_RATE_LIMITER_TOKENS_PER_INTERVAL=3 +PRIVATE_RELAY_CONNECTION_RATE_LIMITER_INTERVAL=5 +PRIVATE_RELAY_CONNECTION_RATE_LIMITER_MAX_TOKENS=9 + ## Chat Relay Settings CHAT_RELAY_NAME="utxo's chat relay" CHAT_RELAY_NPUB="npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8" @@ -16,12 +26,32 @@ CHAT_RELAY_WOT_DEPTH=3 CHAT_RELAY_WOT_REFRESH_INTERVAL_HOURS=24 CHAT_RELAY_MINIMUM_FOLLOWERS=3 +## Chat Relay Rate Limiters +CHAT_RELAY_EVENT_IP_LIMITER_TOKENS_PER_INTERVAL=50 +CHAT_RELAY_EVENT_IP_LIMITER_INTERVAL=1 +CHAT_RELAY_EVENT_IP_LIMITER_MAX_TOKENS=100 +CHAT_RELAY_ALLOW_EMPTY_FILTERS=false +CHAT_RELAY_ALLOW_COMPLEX_FILTERS=false +CHAT_RELAY_CONNECTION_RATE_LIMITER_TOKENS_PER_INTERVAL=3 +CHAT_RELAY_CONNECTION_RATE_LIMITER_INTERVAL=3 +CHAT_RELAY_CONNECTION_RATE_LIMITER_MAX_TOKENS=9 + ## Outbox Relay Settings OUTBOX_RELAY_NAME="utxo's outbox relay" OUTBOX_RELAY_NPUB="npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8" OUTBOX_RELAY_DESCRIPTION="a relay for public messages" OUTBOX_RELAY_ICON="https://i.nostr.build/6G6wW.gif" +## Outbox Relay Rate Limiters +OUTBOX_RELAY_EVENT_IP_LIMITER_TOKENS_PER_INTERVAL=10 +OUTBOX_RELAY_EVENT_IP_LIMITER_INTERVAL=60 +OUTBOX_RELAY_EVENT_IP_LIMITER_MAX_TOKENS=100 +OUTBOX_RELAY_ALLOW_EMPTY_FILTERS=false +OUTBOX_RELAY_ALLOW_COMPLEX_FILTERS=false +OUTBOX_RELAY_CONNECTION_RATE_LIMITER_TOKENS_PER_INTERVAL=3 +OUTBOX_RELAY_CONNECTION_RATE_LIMITER_INTERVAL=1 +OUTBOX_RELAY_CONNECTION_RATE_LIMITER_MAX_TOKENS=9 + ## Inbox Relay Settings INBOX_RELAY_NAME="utxo's inbox relay" INBOX_RELAY_NPUB="npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8" @@ -29,26 +59,33 @@ INBOX_RELAY_DESCRIPTION="send your interactions with my notes here" INBOX_RELAY_ICON="https://i.nostr.build/6G6wW.gif" INBOX_PULL_INTERVAL_SECONDS=600 +## Inbox Relay Rate Limiters +INBOX_RELAY_EVENT_IP_LIMITER_TOKENS_PER_INTERVAL=10 +INBOX_RELAY_EVENT_IP_LIMITER_INTERVAL=1 +INBOX_RELAY_EVENT_IP_LIMITER_MAX_TOKENS=20 +INBOX_RELAY_ALLOW_EMPTY_FILTERS=false +INBOX_RELAY_ALLOW_COMPLEX_FILTERS=false +INBOX_RELAY_CONNECTION_RATE_LIMITER_TOKENS_PER_INTERVAL=3 +INBOX_RELAY_CONNECTION_RATE_LIMITER_INTERVAL=1 +INBOX_RELAY_CONNECTION_RATE_LIMITER_MAX_TOKENS=9 + + ## Import Settings IMPORT_START_DATE="2023-01-20" IMPORT_QUERY_INTERVAL_SECONDS=600 IMPORT_SEED_RELAYS="relay.damus.io,nos.lol,relay.nostr.band,relay.snort.social,nostr.land,nostr.mom,relay.nos.social,relay.primal.net,relay.nostr.bg,no.str.cr,nostr21.com,nostrue.com,relay.siamstr.com,wot.utxo.one,nostrelites.org,wot.nostr.party,wot.sovbit.host,wot.girino.org,relay.lnau.net,wot.siamstr.com,wot.sudocarlos.com,relay.otherstuff.fyi,relay.lexingtonbitcoin.org,wot.azzamo.net,wot.swarmstr.com,zap.watch,satsage.xyz,wons.calva.dev" -IMPORT_SEED_RELAYS_FILE="" +IMPORT_SEED_RELAYS_FILE="relays_blastr.json" ## Backup Settings BACKUP_PROVIDER="aws" BACKUP_INTERVAL_HOURS=24 ## AWS Backup Settings - REQUIRED IF BACKUP_PROVIDER="aws" -AWS_ACCESS_KEY_ID="AKIA" -AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" -AWS_REGION="us-west-2" -AWS_BUCKET_NAME="utxo-relay-backups" +AWS_ACCESS_KEY_ID="access" +AWS_SECRET_ACCESS_KEY="secret" +AWS_REGION="us-east-1" +AWS_BUCKET_NAME="backups" ## Blastr Settings BLASTR_RELAYS="relay.damus.io,nos.lol,relay.nostr.band,relay.snort.social,nostr.land,nostr.mom,relay.nos.social,relay.primal.net,relay.nostr.bg,no.str.cr,nostr21.com,nostrue.com,relay.siamstr.com,wot.utxo.one,nostrelites.org,wot.nostr.party,wot.sovbit.host,wot.girino.org,relay.lnau.net,wot.siamstr.com,wot.sudocarlos.com,relay.otherstuff.fyi,relay.lexingtonbitcoin.org,wot.azzamo.net,wot.swarmstr.com,zap.watch,satsage.xyz,wons.calva.dev" -BLASTR_RELAYS_FILE="" - -## OPTIONAL: Docker UID and GID - should be the same as the user running the docker container -DOCKER_UID=1000 -DOCKER_GID=1000 +BLASTR_RELAYS_FILE="relays_blastr.json" \ No newline at end of file