nostr relay proxy

event page

Is Grain missing any core features that every nostr relay should have? #asknostr #dev Grain 🌾 Core Features 1. Flexible Event Handling Supports all event kinds defined by the Nostr protocol. Handles: REQ Messages for client data requests. Configurable size and rate limits for different event kinds and categories. 2. Authentication (NIP-42 AUTH) Configurable authentication support, allowing authenticated communication between clients and the relay. Can be toggled on or off, with support for specifying the relay URL for AUTH. 3. Server Configuration Easily configurable server options, including: Port: Define which port the server listens on. Timeouts: Set read, write, and idle timeouts for connections. Connection Limits: Control the maximum number of simultaneous connections and subscriptions per client. 4. Resource Management Set resource limits for optimal performance: CPU core and memory usage limits. Heap size for controlling Go's garbage collector. Limit the number of concurrent goroutines for better stability. 5. Rate and Size Limiting WebSocket and Event Rate Limiting: Manage the rate and burst limits for WebSocket messages and events. Size Limits: Define maximum payload sizes for events, with specific limits for different event kinds. Category-Based Limits: Tailor rate limits for various event categories like ephemeral, replaceable, and regular. 6. Whitelisting and Blacklisting Pubkey Whitelist: Allow only specific pubkeys or npubs to interact with the relay. Kind Whitelist: Control which event kinds are permitted. Domain Whitelist: Specify domains for fetching .well-known/nostr.json pubkey lists. Blacklist: Manage permanent and temporary bans with: Automatic bans for messages containing specific words. Permanent bans after a certain number of temporary bans. 7. Event Purging Configurable event purging to maintain storage efficiency. Define how long events are kept and set purge intervals. Fine-tune purging by event category or event kind. Optionally exclude whitelisted pubkeys from being purged. Repo here: https://github.com/0ceanSlim/grain

rendered in 4.908154ms