Greg Heartsfield
d10348f7e1
feat: configurable blocking threads
2022-12-18 09:14:04 -06:00
Greg Heartsfield
8598e443d8
wip: add configuration for future feature (client concurrent db limits)
2022-12-17 23:19:48 -06:00
Greg Heartsfield
0d8d39ad22
feat: add rate limiting setting for subscription creation
2022-12-17 09:27:29 -06:00
Greg Heartsfield
11e43eccf9
refactor: add unit to ping_interval config
2022-11-05 07:42:08 -05:00
William Casarin
50577b2dfa
feat: add network.ping_interval setting
...
Add a ping interval setting that allows you to customize the websocket
ping interval. The default of 5 minutes may be too high for some proxy
servers that disconnect connections that are held open for too long.
2022-11-05 07:40:28 -05:00
Greg Heartsfield
ae5bf98d87
feat: retrieve client IP from header in config.toml
...
If the config.toml has defined a HTTP header to look for a remote IP,
that will be logged. Otherwise, the socket address IP will be used.
closes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/47
2022-11-04 18:05:01 -05:00
Greg Heartsfield
6633f8b472
feat: replace logging with tracing
2022-09-28 07:19:59 -05:00
Greg Heartsfield
a98708ba47
refactor: misc clippy suggestions
2022-09-24 09:01:09 -05:00
Greg Heartsfield
8fa58de49a
refactor: clippy suggestions
2022-09-24 08:30:22 -05:00
Greg Heartsfield
4fa8616c73
feat: enable use of tokio-console with diagnostics.tracing setting
...
View real-time tokio diagnostics by setting the configuration option
"diagnostics.tracing" to true.
2022-09-11 12:44:45 -05:00
Greg Heartsfield
74802522c2
improvement: do not create NIP-05 thread if feature is disabled
2022-09-11 11:01:36 -05:00
Greg Heartsfield
72f1c19b21
feat(NIP-22): advertise support for event created_at limits
...
The `reject_future_limits` option can now be disabled, and is by
default.
NIP-11 advertises support for created_at limits.
The message for future-dated events has been modified, to be closer to
the recommended example in the NIP.
2022-09-10 20:40:10 -05:00
Greg Heartsfield
2b03f11e5e
refactor: remove global/singleton settings object
2022-09-06 06:12:07 -05:00
Greg Heartsfield
e48bae10e6
feat: support in-memory SQLite database
2022-09-06 06:06:01 -05:00
Greg Heartsfield
03a130b0b8
improvement: simplify config builder (clippy)
2022-09-02 10:18:16 -05:00
Greg Heartsfield
414e83f696
refactor: import cleanup for config
2022-02-26 11:16:12 -06:00
Greg Heartsfield
225c8f762e
improvement: upgrade dependencies; config, tungstenite, tokio
2022-02-26 09:55:12 -06:00
Greg Heartsfield
fa66a0265e
docs: module headers
2022-02-12 09:29:31 -06:00
Greg Heartsfield
234a8ba0ac
feat: limit event publishing to NIP-05 verified users
...
This adds a new configurable feature to restrict event publishing to
only users with NIP-05 verified metadata. Domains can be whitelisted
or blacklisted. Verification expiration and schedules are
configurable.
This upgrades the database to add a table for tracking verification
records.
2022-02-12 09:29:25 -06:00
Greg Heartsfield
98c6fa6f39
feat: allow whitelisting of pubkeys for new events
...
This adds a configuration option, `authorization.pubkey_whitelist`
which is an array of pubkeys that are allowed to publish events on
this relay.
2022-01-26 21:39:03 -06:00
Greg Heartsfield
f1206e76f2
feat: database reader connection pooling
...
Added connection pooling for queries, as well as basic configuration
options for min/max connections.
2022-01-25 20:39:24 -06:00
Greg Heartsfield
030b64de62
feat: replace email with contact field in relay info.
...
This finalizes the NIP-11 spec implementation.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/21 .
2022-01-16 08:34:19 -06:00
Greg Heartsfield
19ed990c57
refactor: fix clippy errors for relay info response
2022-01-05 10:10:44 -05:00
Greg Heartsfield
2924da88bc
feat: incorporated improvements from NIP-11 discussion
...
Change descr to description. Add `id` for websocket URL. Use
integers for supported NIPs instead of strings. Top-level is object,
instead of the array before.
2022-01-03 22:03:30 -05:00
Greg Heartsfield
d3da4eb009
feat: implementation of proposed NIP-11 (server metadata)
2022-01-03 18:42:24 -05:00
Greg Heartsfield
4171a8870e
feat: reject events that are too large
...
A new configuration setting controls the maximum size of event
messages, and sends a notice to the client if they exceed it.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/14
2021-12-31 15:19:35 -06:00
Greg Heartsfield
5a19a8876f
feat: allow database directory configuration
...
Adds configuration options for database directory, either on command
line through (--db dir-name) or the config.toml file.
Fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/13
2021-12-31 11:51:57 -06:00
Greg Heartsfield
20ee5a054c
feat: rate limit event creation
...
A configuration option, `messages_per_sec`, imposes a global limit on
the rate for which new events can be stored.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/6
2021-12-30 21:07:21 -06:00
Greg Heartsfield
f415295184
feat: reject future-dated events
...
If configured, reject events than are more than N seconds in the
future.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/5
2021-12-29 22:47:31 -06:00
Greg Heartsfield
d730bf0c59
feat: add configuration through file
...
A file named `config.toml` can now be used to load the address, port,
and some websocket configuration settings.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/3
2021-12-29 22:13:02 -06:00