You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONFIGURATION.md
+9-31Lines changed: 9 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,40 +109,18 @@ The settings below are listed in alphabetical order by name. Please keep this ta
109
109
|| Defaults to zero. Disabled when set to zero. |
110
110
| limits.event.pubkey.whitelist | List of public keys to always allow. Only public keys in this list will be able to post to this relay. Use for private relays. |
111
111
| limits.event.rateLimits[].kinds | List of event kinds rate limited. Use `[min, max]` for ranges. Optional. |
112
-
| limits.event.rateLimits[].period | Rate limiting period in milliseconds. |
112
+
| limits.event.rateLimits[].period | Rate limiting period in milliseconds. For `sliding_window`: the time window during which requests are counted. For `ewma`: the half-life of the exponential decay — shorter values forget bursts faster, longer values are stricter on bursty clients. |
113
113
| limits.event.rateLimits[].rate | Maximum number of events during period. |
114
114
| limits.event.retention.kind.whitelist | Event kinds excluded from retention purge. NIP-62 `REQUEST_TO_VANISH` is always excluded from retention purge, even if not listed here. |
115
115
| limits.event.retention.maxDays | Maximum number of days to retain events. Purge deletes events that are expired (`expires_at`), soft-deleted (`deleted_at`), or older than this window (`created_at`). Any non-positive value disables retention purge. |
116
116
| limits.event.retention.pubkey.whitelist | Public keys excluded from retention purge. |
117
117
| limits.event.whitelists.ipAddresses | List of IPs (IPv4 or IPv6) to ignore rate limits. |
118
-
| limits.event.whitelists.pubkeys | List of public keys to ignore rate limits. |
119
-
| limits.message.ipWhitelist| List of IPs (IPv4 or IPv6) to ignore rate limits. |
120
-
| limits.message.rateLimits[].period | Rate limit period in milliseconds. |
118
+
| limits.client.subscription.maxSubscriptions | Maximum number of subscriptions per connected client. Defaults to 10. Disabled when set to zero. |
119
+
| limits.client.subscription.maxFilters| Maximum number of filters per subscription. Defaults to 10. Disabled when set to zero. |
120
+
| limits.message.rateLimits[].period | Rate limiting period in milliseconds. For `sliding_window`: the time window. For `ewma`: the half-life of the decay function. |
121
121
| limits.message.rateLimits[].rate | Maximum number of messages during period. |
122
-
| mirroring.static[].address | Address of mirrored relay. (e.g. ws://100.100.100.100:8008) |
123
-
| mirroring.static[].filters | Subscription filters used to mirror. |
124
-
| mirroring.static[].limits.event | Event limit overrides for this mirror. See configurations under limits.event. |
125
-
| mirroring.static[].secret | Secret to pass to relays. Nostream relays only. Optional. |
126
-
| mirroring.static[].skipAdmissionCheck | Disable the admission fee check for events coming from this mirror. |
127
-
| network.maxPayloadSize | Maximum number of bytes accepted per WebSocket frame |
128
-
| network.remoteIpHeader | HTTP header from proxy containing IP address from client. |
129
-
| nip05.domainBlacklist | List of domains blocked from NIP-05 verification. Authors with NIP-05 at these domains will be rejected. |
130
-
| nip05.domainWhitelist | List of domains allowed for NIP-05 verification. If set, only authors verified at these domains can publish. |
131
-
| nip05.maxConsecutiveFailures | Number of consecutive verification failures before giving up on an author. Defaults to 20. |
132
-
| nip05.mode | NIP-05 verification mode: `enabled` requires verification, `passive` verifies without blocking, `disabled` does nothing. Defaults to `disabled`. |
133
-
| nip05.verifyExpiration | Time in milliseconds before a successful NIP-05 verification expires and needs re-checking. Defaults to 604800000 (1 week). |
134
-
| nip05.verifyUpdateFrequency | Minimum interval in milliseconds between re-verification attempts for a given author. Defaults to 86400000 (24 hours). |
135
-
| paymentProcessors.lnbits.baseURL | Base URL of your Lnbits instance. |
| paymentProcessors.zebedee.ipWhitelist | List with Zebedee's API Production IPs. See [ZBD API Documentation](https://api-reference.zebedee.io/#c7e18276-6935-4cca-89ae-ad949efe9a6a) for more info. |
141
-
| payments.enabled | Enabled payments. Defaults to false. |
142
-
| payments.feeSchedules.admission[].amount | Admission fee amount in msats. |
143
-
| payments.feeSchedules.admission[].enabled | Enables admission fee. Defaults to false. |
144
-
| payments.feeSchedules.admission[].whitelists.event_kinds | List of event kinds to waive admission fee. Use `[min, max]` for ranges. |
145
-
| payments.feeSchedules.admission[].whitelists.pubkeys | List of pubkeys to waive admission fee. |
146
-
| payments.processor | Either `zebedee`, `lnbits`, `lnurl`. |
147
-
| workers.count | Number of workers to spin up to handle incoming connections. |
148
-
|| Spin workers as many CPUs are available when set to zero. Defaults to zero. |
122
+
| limits.message.ipWhitelist | List of IPs (IPv4 or IPv6) to ignore rate limits. |
123
+
| limits.admissionCheck.rateLimits[].period | Rate limiting period in milliseconds. For `sliding_window`: the time window. For `ewma`: the half-life of the decay function. |
124
+
| limits.admissionCheck.rateLimits[].rate | Maximum number of admission checks during period. |
125
+
| limits.admissionCheck.ipWhitelist | List of IPs (IPv4 or IPv6) to ignore rate limits. |
126
+
| limits.rateLimiter.strategy | Rate limiting strategy. Either `ewma` or `sliding_window`. Defaults to `ewma`. When using `ewma`, the `period` field in each rate limit serves as the half-life for the exponential decay function. Note: when switching from `sliding_window` to `ewma`, consider increasing `rate` values slightly as EWMA penalizes bursty behavior more aggressively. |
0 commit comments