Chorus is a nostr relay.
It is pretty fast: docs/PERFORMANCE.md.
It can work as your personal relay: docs/PERSONAL_RELAY.md.
To deploy chorus, read docs/DEPLOYING.md
To configure chorus read docs/CONFIG.md
To undertand the relay's behavior, read docs/BEHAVIOR.md
To understand command line tools, read docs/TOOLS.md
Chorus does not have any provisions for charging users.
Chorus does not have any provisions for synchronizing events with other relays outside of the nostr protocol.
strfry is a more mature relay that offers additional features including:
- Synchronizing events with other relays efficiently (negentropy)
- Zero-downtime restarts
- Websocket permessage-deflate
- Plugins for event sifting
However:
- Chorus is probably faster (more efficient)
- Chorus has personal relay rules by default
- Chorus has extensive IP banning to protect your relay from abuse
- Chorus supports NIP-42 (AUTH), NIP-59 (GiftWrap), NIP-65 (Relay Lists) and PR 1030.
- Chorus has a moderation tool
chorus_moderate
tool to approve events or pubkeyschorus_dump_approvals
tool to view prior approvalschorus_compress
to backup and rebuild your data, compressing as it goes.- NIP-40 event expiration support
- extended NIP-11 document, with updates to supported NIPs
- Traffic bytes counted and logged on exit (or HUP)
- Logging improvements
- Data migrations. Less space consumed.
- performance improved via 8-byte alignment of events
- Config option to run as an open relay
- Config variable for scraper behavior
- More efficient scraping
- Reload config on HUP without dropping connections
- IP addresses no longer logged. They are hashed and tracked by their hash.
- FIX some LIMIT related bugs
- FIX some indexing bugs that cuased some events that should have been returned to not be.
- Allow scrape up to limit=100, or time range of 1 hour
- Update docs
- BREAKING: Config changed to TOML format
- Logging improvements
- Error handling improvements
- Ban time improvements
- Documentation updates
- Restructured into a
bin
and alib
- Tool to dump all events as JSON to stdout
- FIX: REQ errors now properly CLOSED
- Logging improvements
- Persistent IP reputation data for adjusting ban times
- Config settings for
serve_ephmeral
andserve_relay_lists
- Uses 'X-Real-Ip' header if behind a proxy
- FIX: significant performance problem addressed
- Logging improvements
- EVENTs submitted that are known to be deleted are now responded to with 'blocked:'
- Longer filters now accepted
- FIX: after EOSE, outbound events were not being screened properly
- FIX: shutdown issue
- NIP-11 updated
- Idle connections with no REQs now timed out at 5 seconds
- FIX: limits were not working properly
- Update IP banning logic and timing
- Improve logging
- Allow more REQ filters (with low limits)
- Better performance when filters are more open
- FIX: deadlock (nested transaction issue)
- Logging changes
- Documentation updated
- FIX: AUTH was failing due to a bad time difference comparison
- AUTH failures now include detail as to why
- documentation updated
- Initial release.
- Works as a personal relay
- Supported NIPs: 1, 4, 9, 11, 42, 59, 65
- Bans IPs to prevent abuse
- Limits to 32 subscriptions by default, configurable