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
9ce5057af8
improvement: better log formatting
2022-09-11 10:22:01 -05:00
Greg Heartsfield
217429f538
build: add release flags, save artifacts
2022-09-11 10:21:29 -05:00
Greg Heartsfield
62a9548c27
docs: show build status for master branch only
2022-09-10 22:53:41 -05:00
Greg Heartsfield
c24dce8177
docs: add build status indicator
2022-09-10 22:48:23 -05:00
Greg Heartsfield
3503cf05ed
build: add sr.ht build manifest
2022-09-10 22:43:56 -05:00
Greg Heartsfield
8738e5baa9
improvement: upgrade multiple dependencies
...
Updating aho-corasick v0.7.18 -> v0.7.19
Updating block-buffer v0.10.2 -> v0.10.3
Updating cpufeatures v0.2.4 -> v0.2.5
Updating form_urlencoded v1.0.1 -> v1.1.0
Updating idna v0.2.3 -> v0.3.0
Removing matches v0.1.9
Updating percent-encoding v2.1.0 -> v2.2.0
Updating thiserror v1.0.33 -> v1.0.34
Updating thiserror-impl v1.0.33 -> v1.0.34
Updating tokio-util v0.7.3 -> v0.7.4
Updating ucd-trie v0.1.4 -> v0.1.5
Updating url v2.2.2 -> v2.3.1
2022-09-10 22:42:52 -05:00
Greg Heartsfield
78da92ccca
feat: advertise support for NIP-09 and NIP-12 in relay info
...
NIP-01 prefix search, and NIP-12 generic tags are no longer marked as
experimental.
NIP-11 relay info advertises NIP-09 event deletion and NIP-12 generic
tag search support.
2022-09-10 20:45:09 -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
283967f8cc
docs: reference NIP-28 channel
2022-09-10 19:45:23 -05:00
Greg Heartsfield
08b011ad07
feat: ensure that WAL is truncated after checkpoint
2022-09-10 19:18:57 -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
8774416b92
refactor: move nostr server into library
2022-09-06 05:56:04 -05:00
Greg Heartsfield
59933ce25e
build: add pre-commit config
2022-09-06 05:44:22 -05:00
Greg Heartsfield
1b9f364e15
chore: rustfmt
2022-09-02 12:38:31 -05:00
Greg Heartsfield
4d983dd1e0
improvement: upgrade uuid dependency
2022-09-02 12:37:11 -05:00
Greg Heartsfield
11c33582ef
improvement: remove useless carats from Cargo.toml deps
2022-09-02 12:35:02 -05:00
Greg Heartsfield
a754477a02
improvement: misc refactorings (clippy)
2022-09-02 12:26:00 -05:00
Greg Heartsfield
a843eaa939
improvement: db.rs from clippy
2022-09-02 10:30:51 -05:00
Greg Heartsfield
03a130b0b8
improvement: simplify config builder (clippy)
2022-09-02 10:18:16 -05:00
Greg Heartsfield
9124f4540a
improvement: upgrade multiple dependencies
...
Updating cpufeatures v0.2.3 -> v0.2.4
Updating dashmap v5.3.4 -> v5.4.0
Updating futures v0.3.23 -> v0.3.24
Updating futures-channel v0.3.23 -> v0.3.24
Updating futures-core v0.3.23 -> v0.3.24
Updating futures-executor v0.3.23 -> v0.3.24
Updating futures-io v0.3.23 -> v0.3.24
Updating futures-macro v0.3.23 -> v0.3.24
Updating futures-sink v0.3.23 -> v0.3.24
Updating futures-task v0.3.23 -> v0.3.24
Updating futures-util v0.3.23 -> v0.3.24
Updating httparse v1.7.1 -> v1.8.0
Updating lock_api v0.4.7 -> v0.4.8
Updating once_cell v1.13.1 -> v1.14.0
Updating pest v2.2.1 -> v2.3.0
Updating pest_derive v2.2.1 -> v2.3.0
Updating pest_generator v2.2.1 -> v2.3.0
Updating pest_meta v2.2.1 -> v2.3.0
Updating serde v1.0.143 -> v1.0.144
Updating serde_derive v1.0.143 -> v1.0.144
Updating serde_json v1.0.83 -> v1.0.85
Updating socket2 v0.4.4 -> v0.4.7
Updating thiserror v1.0.32 -> v1.0.33
Updating thiserror-impl v1.0.32 -> v1.0.33
Updating tokio v1.20.1 -> v1.21.0
2022-09-02 10:08:14 -05: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
01d81db617
improvement: log client id for subscription removal
2022-08-21 09:11:38 -07:00
Greg Heartsfield
e6fef37d4e
chore: rustfmt
2022-08-21 09:10:19 -07:00
Greg Heartsfield
8da6f6555a
build: bump version to 0.6.2
2022-08-18 17:52:16 -07:00
Greg Heartsfield
5bcc63bd56
improvement: upgrade multiple dependencies
...
Updating async-trait v0.1.56 -> v0.1.57
Removing block-buffer v0.7.3
Removing block-padding v0.1.5
Updating bumpalo v3.10.0 -> v3.11.0
Removing byte-tools v0.3.1
Updating bytes v1.1.0 -> v1.2.1
Updating cpufeatures v0.2.2 -> v0.2.3
Updating crossbeam-utils v0.8.10 -> v0.8.11
Updating crypto-common v0.1.4 -> v0.1.6
Removing digest v0.8.1
Removing fake-simd v0.1.2
Updating fastrand v1.7.0 -> v1.8.0
Updating futures v0.3.21 -> v0.3.23
Updating futures-channel v0.3.21 -> v0.3.23
Updating futures-core v0.3.21 -> v0.3.23
Updating futures-executor v0.3.21 -> v0.3.23
Updating futures-io v0.3.21 -> v0.3.23
Updating futures-macro v0.3.21 -> v0.3.23
Updating futures-sink v0.3.21 -> v0.3.23
Updating futures-task v0.3.21 -> v0.3.23
Updating futures-util v0.3.21 -> v0.3.23
Removing generic-array v0.12.4
Removing generic-array v0.14.5
Adding generic-array v0.14.6
Updating h2 v0.3.13 -> v0.3.14
Updating hashbrown v0.12.1 -> v0.12.3
Updating hyper v0.14.19 -> v0.14.20
Updating itoa v1.0.2 -> v1.0.3
Updating js-sys v0.3.58 -> v0.3.59
Updating libc v0.2.126 -> v0.2.132
Removing maplit v1.0.2
Updating once_cell v1.12.1 -> v1.13.1
Removing opaque-debug v0.2.3
Updating openssl v0.10.40 -> v0.10.41
Updating openssl-sys v0.9.74 -> v0.9.75
Updating pest v2.1.3 -> v2.2.1
Updating pest_derive v2.1.0 -> v2.2.1
Updating pest_generator v2.1.3 -> v2.2.1
Updating pest_meta v2.1.3 -> v2.2.1
Updating proc-macro2 v1.0.40 -> v1.0.43
Updating quote v1.0.20 -> v1.0.21
Updating raw-cpuid v10.3.0 -> v10.5.0
Updating redox_syscall v0.2.13 -> v0.2.16
Updating regex v1.5.6 -> v1.6.0
Updating regex-syntax v0.6.26 -> v0.6.27
Updating ryu v1.0.10 -> v1.0.11
Updating security-framework v2.6.1 -> v2.7.0
Updating serde v1.0.138 -> v1.0.143
Updating serde_derive v1.0.138 -> v1.0.143
Updating serde_json v1.0.82 -> v1.0.83
Removing sha-1 v0.8.2
Updating slab v0.4.6 -> v0.4.7
Updating syn v1.0.98 -> v1.0.99
Updating thiserror v1.0.31 -> v1.0.32
Updating thiserror-impl v1.0.31 -> v1.0.32
Updating tokio v1.19.2 -> v1.20.1
Updating tokio-tungstenite v0.17.1 -> v0.17.2
Updating tracing v0.1.35 -> v0.1.36
Updating tracing-core v0.1.28 -> v0.1.29
Updating tungstenite v0.17.2 -> v0.17.3
Updating ucd-trie v0.1.3 -> v0.1.4
Updating unicode-ident v1.0.1 -> v1.0.3
Updating wasm-bindgen v0.2.81 -> v0.2.82
Updating wasm-bindgen-backend v0.2.81 -> v0.2.82
Updating wasm-bindgen-macro v0.2.81 -> v0.2.82
Updating wasm-bindgen-macro-support v0.2.81 -> v0.2.82
Updating wasm-bindgen-shared v0.2.81 -> v0.2.82
Updating web-sys v0.3.58 -> v0.3.59
2022-08-18 17:21:53 -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
be8170342e
fix(NIP-12): multi-tag searches returns correct results
...
Logic of generated SQL was incorrect, causing multiple tag searches
(as defined in NIP-12) to produce no results.
fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/36
2022-08-11 22:16:10 -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
Greg Heartsfield
5058d98ad6
fix(NIP-12): only allow single-char tag filters
2022-08-07 10:15:36 -05:00
Greg Heartsfield
f4ecd43708
build: bump version to 0.6.1
2022-07-04 17:41:16 -05:00
Greg Heartsfield
a8f465fdc8
improvement: upgrade docker base images (and specify explicit repository)
2022-07-04 17:35:17 -05:00
Greg Heartsfield
1c14adc766
fix(NIP-01): allow limits on a per-filter basis
...
The original implementation of subscription limit applied to the
entire query, instead of the specific filter. Now, each filter gets
its own query limit. When a limit is applied, the most recent N
events will be returned, otherwise the default is to return the
earliest events (in order), for all matching events.
2022-07-04 17:25:32 -05:00
Greg Heartsfield
e894a86566
docs: NIP-15, NIP-16 feature notes in README
2022-07-04 13:10:48 -05:00
Greg Heartsfield
bedc378624
improvement: upgrade multiple dependencies
...
Updating async-trait v0.1.53 -> v0.1.56
Updating bumpalo v3.9.1 -> v3.10.0
Updating crossbeam-utils v0.8.8 -> v0.8.10
Updating crypto-common v0.1.3 -> v0.1.4
Updating getrandom v0.2.6 -> v0.2.7
Updating http v0.2.7 -> v0.2.8
Updating indexmap v1.8.2 -> v1.9.1
Updating js-sys v0.3.57 -> v0.3.58
Updating linked-hash-map v0.5.4 -> v0.5.6
Updating mio v0.8.3 -> v0.8.4
Updating once_cell v1.12.0 -> v1.12.1
Updating openssl-sys v0.9.73 -> v0.9.74
Removing parking_lot v0.11.2
Removing parking_lot_core v0.8.5
Updating proc-macro2 v1.0.39 -> v1.0.40
Updating quote v1.0.18 -> v1.0.20
Updating r2d2 v0.8.9 -> v0.8.10
Updating ron v0.7.0 -> v0.7.1
Updating serde v1.0.137 -> v1.0.138
Updating serde_derive v1.0.137 -> v1.0.138
Updating serde_json v1.0.81 -> v1.0.82
Updating smallvec v1.8.0 -> v1.9.0
Updating syn v1.0.95 -> v1.0.98
Updating tokio v1.18.2 -> v1.19.2
Updating tokio-macros v1.7.0 -> v1.8.0
Updating tokio-util v0.7.2 -> v0.7.3
Updating tower-service v0.3.1 -> v0.3.2
Updating tracing v0.1.34 -> v0.1.35
Removing tracing-attributes v0.1.21
Updating tracing-core v0.1.26 -> v0.1.28
Updating unicode-ident v1.0.0 -> v1.0.1
Updating unicode-normalization v0.1.19 -> v0.1.21
Updating wasm-bindgen v0.2.80 -> v0.2.81
Updating wasm-bindgen-backend v0.2.80 -> v0.2.81
Updating wasm-bindgen-macro v0.2.80 -> v0.2.81
Updating wasm-bindgen-macro-support v0.2.80 -> v0.2.81
Updating wasm-bindgen-shared v0.2.80 -> v0.2.81
Updating web-sys v0.3.57 -> v0.3.58
2022-07-04 12:56:10 -05:00
Greg Heartsfield
e1c2a6b758
improvement: upgrade docker base image
2022-05-30 21:53:46 -05:00
Greg Heartsfield
990bb656e8
improvement: upgrade multiple dependencies
...
Cargo updated the following dependencies:
Updating dashmap v5.3.3 -> v5.3.4
Updating http-body v0.4.4 -> v0.4.5
Updating hyper v0.14.18 -> v0.14.19
Updating indexmap v1.8.1 -> v1.8.2
Updating itoa v1.0.1 -> v1.0.2
Updating libc v0.2.125 -> v0.2.126
Updating once_cell v1.10.0 -> v1.12.0
Updating parking_lot v0.12.0 -> v0.12.1
Updating proc-macro2 v1.0.38 -> v1.0.39
Updating regex v1.5.5 -> v1.5.6
Updating regex-syntax v0.6.25 -> v0.6.26
Updating ryu v1.0.9 -> v1.0.10
Updating schannel v0.1.19 -> v0.1.20
Updating scheduled-thread-pool v0.2.5 -> v0.2.6
Updating syn v1.0.93 -> v1.0.95
Updating tokio-util v0.7.1 -> v0.7.2
Adding unicode-ident v1.0.0
Removing unicode-xid v0.2.3
2022-05-30 21:47:24 -05:00
Greg Heartsfield
538d139ebf
improvement: upgrade docker base image
2022-05-10 21:24:22 -05:00
Greg Heartsfield
23f7730fea
build: bump version to 0.6.0
2022-05-10 21:19:21 -05:00
Greg Heartsfield
8aa1256254
improvement: upgrade multiple dependencies
2022-05-10 17:07:18 -05:00
Greg Heartsfield
9ed3391b46
fix(NIP-09): correct WHERE clause for event deletion
2022-05-10 16:50:52 -05:00
Greg Heartsfield
9b351aab9b
docs: update devel discussion link
2022-02-28 17:19:24 -06:00
Greg Heartsfield
597749890e
improvement: remove unnecessary event logging
2022-02-27 19:30:48 -06:00
Greg Heartsfield
1d499cf12b
feat: handle NIP-09 for deletion events
2022-02-27 11:35:23 -06:00
Greg Heartsfield
ed3a6b9692
refactor: simplify NOTICE messages
2022-02-26 17:34:58 -06:00
Greg Heartsfield
048199e30b
build: bump version to 0.5.2
2022-02-26 11:22:16 -06: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
887fc28ab2
fix: until filters in subscriptions now used
2022-02-26 09:15:45 -06:00
Greg Heartsfield
294d3b99c3
fix: correct imports for test cases
2022-02-26 09:07:07 -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
9c1b21cbfe
improvement: more granular perf logging for SQL queries
2022-02-21 09:03:05 -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
34ad549cde
fix: update event buffer size comment in config
2022-02-20 11:46:24 -06:00
Greg Heartsfield
f8b1fe5035
docs: line up comments with code
2022-02-17 16:18:05 -06:00
Greg Heartsfield
f2001dc34a
build: bump version to 0.5.1
2022-02-13 09:38:45 -06:00
Greg Heartsfield
b593001229
fix: remove setting from example config
2022-02-13 09:37: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
c9f87ec563
docs: NIP-05 feature note in README
2022-02-12 16:19:46 -06:00
Greg Heartsfield
ceaa01e8b4
fix: removed manual nostr stream, so websocket pings work
2022-02-12 16:19:10 -06:00
Greg Heartsfield
bc68cd0c74
build: bump version to 0.5.0
2022-02-12 14:10:44 -06:00
Greg Heartsfield
97589006fa
improvement: upgrade dependencies
2022-02-12 14:10:03 -06:00
Greg Heartsfield
e31d0729f2
chore: comment cleanup
2022-02-12 13:49:52 -06:00
Greg Heartsfield
89d96e7ccd
improvement: upgraded database schema to drop legacy tables
...
Database schema is upgraded to version 5. Legacy event and pubkey
tables are dropped, and indexes are added for NIP-05 verification.
2022-02-12 13:47:03 -06:00
Greg Heartsfield
7056aae227
refactor: create schema module
2022-02-12 09:58:42 -06:00
Greg Heartsfield
753df47443
refactor: create utils/hexrange utility modules
2022-02-12 09:29:38 -06:00
Greg Heartsfield
26a0ce2b32
docs: function/struct comments
2022-02-12 09:29:35 -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
f679fa0893
build: bump version to 0.4.2
2022-01-30 15:19:41 -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
6502f7dcd7
fix: do not panic when validating events with malformed pubkeys
2022-01-29 13:19:34 -06:00
Greg Heartsfield
6ca3e3ffea
build: bump version to 0.4.1
2022-01-26 21:48:44 -06:00
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
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