zappityzap
914ec77617
fix: openbsd build
2024-08-14 10:45:57 -05:00
Greg Heartsfield
eab522dc39
feat: warn or exit on config file parse errors
...
The relay will now fail to start if an invalid config file is
explicitly provided. If the file was read implicitly from the current
directory, a warning will be provided, but the relay will still startup.
2023-07-29 08:33:27 -05:00
Iru Sensei
edf7af1573
feat: verify config file exists and can be read
2023-07-29 08:32:55 -05:00
Greg Heartsfield
7a72e588ea
refactor: reorder imports
2023-06-23 10:03:08 -05:00
Jamin M
9237eed735
feat: roll over logs daily
2023-06-23 10:03:01 -05:00
Jamin M
f4beb884b3
feat: allow logging output to file
2023-06-23 10:02:49 -05:00
Greg Heartsfield
0582a891cc
perf: switch to jemalloc allocator
2023-05-07 19:32:50 -05:00
Greg Heartsfield
04db2203bb
perf: use standard allocator, limit sqlite mmap to 4GB
...
This is an experimental change to see if we can reduce memory usage
with large SQLite databases. If successful, we'll do this again and
further reduce the database mmap size.
This will cause greater use of the page cache, but that is more easily
reclaimed by the kernel, and should reduce memory pressure, as well as
making it clearer how much memory the application is actually using
for connections, subscriptions, etc.
2023-05-03 07:22:44 -05:00
Greg Heartsfield
80c459c36c
improvement: switch to jemalloc allocator
2023-04-06 18:33:30 -05:00
thesimplekid
6df92f9580
refactor: format
...
cargo fmt
2023-02-25 14:46:49 -06:00
rorp
28b7b83a6e
improvement: make config file location configurable via CLI args
2023-02-08 07:59:26 -06:00
Greg Heartsfield
6489e685ab
refactor: reformat and remove tabs
2023-01-22 10:06:44 -06:00
Greg Heartsfield
6800c2e39d
improvement: add NostrRepo trait, with sqlite implementation
...
This is inspired by the work of
v0l (https://github.com/v0l/nostr-rs-relay/ ).
A new trait abstracts the storage layer with an async API. Rusqlite
is still used with worker threads, but this allows for Postgresql or
other backends to be used.
There may be bugs, this has not been rigorously tested.
2023-01-22 09:49:49 -06:00
Greg Heartsfield
585fdd3884
fix: use data_dir from config.toml if present
...
fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/64
2023-01-16 17:21:12 -06:00
Greg Heartsfield
0db6487ce3
fix: allow tokio tracing to be enabled
...
fixes https://github.com/scsibug/nostr-rs-relay/issues/48
2023-01-14 09:47:23 -06:00
Rasmus Schlunsen
73f4f60cc7
improvement: use clap for command line args
2023-01-14 09:22:11 -06:00
JesterHodl
0e519f6b77
feat: add --help and --version flags
...
fixes: https://github.com/scsibug/nostr-rs-relay/issues/42
2023-01-03 17:39:21 -06:00
Greg Heartsfield
8ecce3f566
feat: show client IP in logs
2022-11-02 18:33:44 -05:00
Greg Heartsfield
6633f8b472
feat: replace logging with tracing
2022-09-28 07:19:59 -05:00
Greg Heartsfield
93dfed0a87
refactor: misc clippy suggestions
2022-09-24 19:28:02 -05:00
Greg Heartsfield
ccf9b8d47b
refactor: remove unnecessary return types
2022-09-24 08:39:41 -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
2b03f11e5e
refactor: remove global/singleton settings object
2022-09-06 06:12:07 -05:00
Greg Heartsfield
8774416b92
refactor: move nostr server into library
2022-09-06 05:56:04 -05:00
Greg Heartsfield
1b9f364e15
chore: rustfmt
2022-09-02 12:38:31 -05:00
Greg Heartsfield
a754477a02
improvement: misc refactorings (clippy)
2022-09-02 12:26:00 -05:00
slaninas
77892b2064
fix: syntax error
2022-08-22 05:12:52 -07:00
Greg Heartsfield
4fe6191aa3
chore: formatting
2022-08-21 09:51:34 -07:00
Greg Heartsfield
79a982e3ef
improvement: send NOTICE for too-large messages
2022-08-21 09:28:31 -07:00
Greg Heartsfield
035cf34673
fix(NIP-12): correctly search for mixed-case hex-like tags
...
Only lowercase and even-length tag values are stored as binary BLOBs.
Previously there was an error which search results from being returned
if the tag value was mixed-case and could be interpreted as hex.
A new database migration has been created to repair the `tag` table
for existing relays.
fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/37
2022-08-17 16:34:11 -07:00
Greg Heartsfield
0a3b15f41f
fix(NIP-11): Add CORS header and content type for main page
2022-08-11 19:33:17 -07:00
Semisol
a36ad378f6
feat(NIP-15): Implement NIP15
...
NIP15 sends an EOSE notice to clients after all stored events are sent
to allow loading indicators and other use cases.
2022-05-30 21:43:00 -05:00
Greg Heartsfield
ed3a6b9692
refactor: simplify NOTICE messages
2022-02-26 17:34:58 -06:00
Greg Heartsfield
53990672ae
improvement: move db pool operations closer to query, do not panic on failure
2022-02-23 16:38:16 -06:00
Greg Heartsfield
2f63417646
improvement: better logging for connection resets
2022-02-21 08:57:07 -06:00
Greg Heartsfield
3b25160852
fix: abort on connection IO errors
2022-02-21 08:50:46 -06:00
Greg Heartsfield
f8b1fe5035
docs: line up comments with code
2022-02-17 16:18:05 -06:00
Greg Heartsfield
5913b9f87a
feat: send notices when authorization checks fail
2022-02-13 09:35:54 -06:00
Greg Heartsfield
77f35f9f43
feat: server-side pings and disconnects
2022-02-12 16:57:26 -06:00
Greg Heartsfield
9e06cc9482
improvement: better error messages on parse failures
2022-02-12 16:33:29 -06:00
Greg Heartsfield
e66fa4ac42
refactor: remove unnecessary Option wrapping
2022-02-12 16:29:27 -06:00
Greg Heartsfield
99e117f620
improvement: better handling of out-of-protocol messages
2022-02-12 16:26:55 -06:00
Greg Heartsfield
8250e00f05
fix: remove protostream module, and missing NOTICE
2022-02-12 16:22:12 -06:00
Greg Heartsfield
ceaa01e8b4
fix: removed manual nostr stream, so websocket pings work
2022-02-12 16:19:10 -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
4cc313fa2d
fix: cleanup database connections with same name
...
When a large number of subscriptions is created with identical names,
we do not send a signal over the abandon-read channel. This
eventually leads to resource exhaustion.
2022-01-30 15:14:02 -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
da7968efef
fix: restore working websocket message size configuration options
2022-01-05 17:41:12 -05:00