Greg Heartsfield
49c668a07c
improvement: upgrade dependency (h2)
2022-01-26 21:48:11 -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
452bbbb0e5
docs: update feature list (NIP-12, prefix search)
2022-01-26 07:24:04 -06:00
Greg Heartsfield
ee0de6f875
improvement: clearer and less verbose database logging
2022-01-25 21:42:43 -06:00
Greg Heartsfield
699489ebaf
build: bump version to 0.4.0
2022-01-25 20:56:00 -06:00
Greg Heartsfield
af9da65f71
improvement: upgrade dependencies
2022-01-25 20:55:29 -06:00
Greg Heartsfield
a72eaec3b8
fix: never display hidden events
2022-01-25 20:48:46 -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
af453548ee
feat: allow author and event id prefix search
...
This is an experimental non-NIP feature that allows a subscription
filter to include a prefix for authors and events.
2022-01-25 18:23:08 -06:00
Greg Heartsfield
df251c821c
docs: updated discord invite link
2022-01-25 07:43:15 -06:00
Greg Heartsfield
2d28a95ff7
feat: allow arbitrary tag queries
...
This is an experimental feature, outside of any NIP, that demonstrates
generic tag queries.
Instead of limiting subscription filters to just querying only "e" or
"p" tags (via `#e` or `#p` attributes), any tag can be queried.
As an example, consider an event which uses a tag "url". With this
modification, a subscription filter could add a top-level field
"#url", with an array of strings as the key. Exact matches would be
returned.
A NIP is forthcoming to formalize this.
2022-01-22 21:29:15 -06:00
Greg Heartsfield
8c93ef5bc2
docs: provide public docker hub link
2022-01-20 22:02:42 -06:00
Greg Heartsfield
1c0fc1326d
docs: add timeout for reverse-proxy example
2022-01-19 21:19:12 -06:00
Raj
179928378e
refactor: add strictly typed tags
...
* Add custom error variant
This can be useful to propagate errors not conforming to available
variants. Also to convert other errors in `crate::Error` without having
explicit conversion defined, with `error.to_string()`
* Implement `Tag` and define protocol serialization
A Tag structure have been implemented with dedicated field types. Then
custom serde serialization is derived to map the structure to current
protocol json array as per NIP01.
This adds compile and run time type checking to always ensure wrong
string data are never stored or processed. With strict typed fields and
custom serde derivation this checks can be done at time of serialization,
saving work for internal handling of the actual data.
tests for possible data violations are added, and gives good example of
kind of errors it will through for different cases.
* Use String for URL
2022-01-19 07:42:58 -06:00
Raj
c605d75bb4
docs: update readme to include the new discord server
2022-01-17 08:35:13 -06:00
Greg Heartsfield
81e4e2b892
feat: add supported NIPs (2, 11) to relay info
2022-01-16 08:37:21 -06:00
Greg Heartsfield
6f166433b5
fix: test failures
2022-01-16 08:36:52 -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
c7eadb1154
Add feature list to README
2022-01-16 08:16:42 -06:00
Greg Heartsfield
62dc77369d
docs: rename example relay server
2022-01-15 11:43:12 -06:00
Greg Heartsfield
24587435ca
docs: reverse proxy example
2022-01-15 11:41:31 -06:00
Greg Heartsfield
a3124ccea4
improvement: better sql error handling
2022-01-15 09:42:53 -06:00
Greg Heartsfield
4e51e61d16
improvement: display rate limit messages max once per sec
2022-01-15 09:42:17 -06:00
Raj
5c8390bbe0
fix: fix some test failures
2022-01-14 14:27:12 -06:00
Greg Heartsfield
da7968efef
fix: restore working websocket message size configuration options
2022-01-05 17:41:12 -05:00
Greg Heartsfield
7037555516
improvement: add indexed tag queries
2022-01-05 17:33:53 -05:00
Greg Heartsfield
19ed990c57
refactor: fix clippy errors for relay info response
2022-01-05 10:10:44 -05:00
Greg Heartsfield
d78bbfc290
build: bump version to 0.3.3
2022-01-03 22:07:15 -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
3024e9fba4
build: bump version to 0.3.2
2022-01-03 18:43:17 -05:00
Greg Heartsfield
d3da4eb009
feat: implementation of proposed NIP-11 (server metadata)
2022-01-03 18:42:24 -05:00
Greg Heartsfield
19637d612e
build: bump version to 0.3.1
2022-01-01 19:26:15 -06:00
Greg Heartsfield
afc9a0096a
improvement: logging failed queries and timing
2022-01-01 19:25:09 -06:00
Greg Heartsfield
3d56262386
build: bump version to 0.3.0
2022-01-01 18:40:57 -06:00
Greg Heartsfield
6673fcfd11
feat: implement multi-valued filter searching
...
NIP-01 now uses arrays instead of scalars.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/17
2022-01-01 18:38:52 -06:00
Greg Heartsfield
b5da3fa2b0
docs: link to docker hub
2022-01-01 12:27:09 -06:00
Greg Heartsfield
850957213e
build: bump version to 0.2.3
2022-01-01 09:13:13 -06:00
Greg Heartsfield
1aa5a5458d
improvement: event signature validation is 100x faster
...
Switched to latest (git) release of secp256k1, which has more
efficient verification-only context for Schnorr. Switched to single
pre-instantiated instance of the verifier.
2022-01-01 09:08:19 -06:00
Greg Heartsfield
620e227699
fix: connection issues with Firefox
...
This adds Hyper, and a 200 response code. Prior to this, Firefox
would fail to connect. There is also a text document displayed at the
root URL to indicate this is a Nostr relay.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/15
2022-01-01 08:11:20 -06:00
Greg Heartsfield
14e59ed278
build: bump version to 0.2.2
2021-12-31 16:34:52 -06:00
Greg Heartsfield
5ad383f257
fix: incorrect logic on empty filters for hidden events
2021-12-31 16:34:10 -06:00
Greg Heartsfield
9710ea27aa
build: bump version to 0.2.1
2021-12-31 15:38:58 -06:00
Greg Heartsfield
783a6e1042
docs: fix docker examples
2021-12-31 15:28:26 -06: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
8f3891c781
docs: docker and config updates
2021-12-31 14:08:04 -06:00
Greg Heartsfield
415d32299b
fix: docker run references the correct database file
2021-12-31 14:05:11 -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
f7f12a7984
build: bump version to 0.2.0
2021-12-30 21:27:48 -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
c60519de23
feat: hide older contact update events
...
Type 3 (NIP-02) contact lists are hidden when newer ones are submitted
for the same author.
Fixes https://todo.sr.ht/~gheartsfield/nostr-rs-relay/4
2021-12-30 15:45:03 -06:00