Greg Heartsfield
43021910ea
improvement: disable pay-to-relay by default
2023-02-25 15:41:30 -06:00
Greg Heartsfield
c1c25a22f5
refactor: format
2023-02-25 14:49:35 -06:00
Greg Heartsfield
440217e1ee
docs: add documented support for NIP-40
2023-02-25 14:29:52 -06:00
Greg Heartsfield
96359aafab
docs: better example of kinds for allowlist
2023-02-25 14:05:11 -06:00
Greg Heartsfield
2be75e18fb
build: bump version to 0.8.8
2023-02-21 08:16:40 -06:00
Greg Heartsfield
5f6ff4c2b7
fix: in-memory SQLite DB correctly shares memory between connections
...
fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/73#event-227131
2023-02-21 08:14:19 -06:00
Greg Heartsfield
df411c24fb
fix: block other writers during checkpoint to eliminate DB lock errors
2023-02-20 16:50:44 -06:00
Greg Heartsfield
39f9984c4f
build: bump version to 0.8.7
2023-02-17 21:05:36 -06:00
Greg Heartsfield
9d55731073
fix: Postgres SQL generation for expiring events
2023-02-17 21:04:30 -06:00
Greg Heartsfield
5638f70d66
fix: set SQL tracing back to appropriate level
2023-02-17 20:50:19 -06:00
Greg Heartsfield
98a08d054a
improvement: advertise support for NIP-42 in relay info
2023-02-17 14:02:49 -06:00
Greg Heartsfield
0ef7d618a8
build: bump version to 0.8.6
2023-02-17 13:59:07 -06:00
Greg Heartsfield
bf06bea808
feat(NIP-40): postgres support for event expiration
2023-02-17 13:25:56 -06:00
Greg Heartsfield
e5ca8c2a86
improvement: run expired event cleanup every 10 minutes
2023-02-17 11:22:00 -06:00
Greg Heartsfield
8ea63f0b27
feat(NIP-40): sqlite support for event expiration
2023-02-17 11:15:06 -06:00
Greg Heartsfield
3229e4192f
feat: publish favicon.ico
2023-02-16 18:03:28 -06:00
Greg Heartsfield
d0f57aea21
improvement(NIP-40): functions for checking event expiration
2023-02-15 18:47:27 -06:00
Greg Heartsfield
136e41d234
fix: retry event writes if DB is busy
2023-02-15 18:38:34 -06:00
Greg Heartsfield
692925942a
build: bump version to 0.8.5
2023-02-13 17:53:33 -06:00
Greg Heartsfield
84afd4b64e
refactor: whitespace
2023-02-13 17:52:00 -06:00
Greg Heartsfield
46160bb1f9
fix: correct name of gRPC configuration in toml
2023-02-13 17:30:26 -06:00
Greg Heartsfield
2fc9168a38
fix: SQL error with parameterized replaceable events
2023-02-13 17:10:42 -06:00
Greg Heartsfield
01d0d44868
build: bump version to 0.8.4
2023-02-13 09:34:30 -06:00
Greg Heartsfield
93f6337fda
fix: upgrade docker image to include OpenSSL 3
2023-02-13 09:33:14 -06:00
Greg Heartsfield
f3a42712a6
build: bump version to 0.8.3
2023-02-13 08:08:28 -06:00
Greg Heartsfield
27361d064a
improvement: upgrade multiple dependencies
...
Updating anyhow v1.0.68 -> v1.0.69
Updating axum v0.6.4 -> v0.6.6
Updating cxx v1.0.89 -> v1.0.90
Updating cxx-build v1.0.89 -> v1.0.90
Updating cxxbridge-flags v1.0.89 -> v1.0.90
Updating cxxbridge-macro v1.0.89 -> v1.0.90
Adding hermit-abi v0.3.1
Updating is-terminal v0.4.2 -> v0.4.3
Updating pest v2.5.4 -> v2.5.5
Updating pest_derive v2.5.4 -> v2.5.5
Updating pest_generator v2.5.4 -> v2.5.5
Updating pest_meta v2.5.4 -> v2.5.5
Updating proc-macro2 v1.0.50 -> v1.0.51
Updating raw-cpuid v10.6.0 -> v10.6.1
Updating rustix v0.36.7 -> v0.36.8
Updating serde_json v1.0.91 -> v1.0.93
Updating signal-hook-registry v1.4.0 -> v1.4.1
Updating thread_local v1.1.4 -> v1.1.7
Updating tinyvec_macros v0.1.0 -> v0.1.1
Updating tokio-native-tls v0.3.0 -> v0.3.1
Updating tokio-util v0.7.4 -> v0.7.7
2023-02-13 07:57:14 -06:00
Greg Heartsfield
3bafb611e5
build: install packages with sudo for github ci
2023-02-13 07:50:48 -06:00
Greg Heartsfield
b960ab70de
build: add protobuf compiler to github ci workflow
2023-02-13 07:48:09 -06:00
Greg Heartsfield
15e2f097aa
improvement: advise operator this upgrade may take a minute
2023-02-13 07:37:13 -06:00
Greg Heartsfield
185f9e7abb
feat: improved query performance when looking for deletion events (improves event insert time)
2023-02-12 15:43:22 -06:00
Greg Heartsfield
f44dae6ac9
fix: use correct start time for logging SQL generation
2023-02-12 15:00:50 -06:00
Greg Heartsfield
abc356c17d
perf(sqlite): index tags with their kind/created_at fields
...
This updates the DB schema to remove the distinction between hex and
non-hex tag values, for simplicity. The space savings did not seem to
be worth the extra complexity.
The SQLite tags table is denormalized to duplicate kind/created_at to
improve the ability of tag indexes to filter data.
2023-02-12 14:33:40 -06:00
Greg Heartsfield
81f8256c37
fix: container builds support protobuf compilation
2023-02-11 14:30:42 -06:00
Greg Heartsfield
b3db2bd081
fix: protobuf compiler not needed in runtime container
2023-02-11 13:57:53 -06:00
Greg Heartsfield
d31e974d56
fix: add protobuf-compiler for Docker and CI builds
2023-02-11 13:56:15 -06:00
Greg Heartsfield
36eaf9fea5
improvement: make comments match code for nauthz example
2023-02-11 13:36:10 -06:00
Greg Heartsfield
a16c4e698a
feat: gRPC authorization for events
...
closes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/46
2023-02-11 13:26:08 -06:00
Greg Heartsfield
e63d179424
fix: prevent loop when nip05 metadata channel closes
2023-02-11 13:26:08 -06:00
Greg Heartsfield
2e42b1b86e
improvement: log source IP for persisted events
2023-02-06 17:15:27 -06:00
Greg Heartsfield
bc4b45d4b8
docs: update DB maintenance for v0.8.x
2023-02-06 07:07:23 -06:00
Greg Heartsfield
2805a96e5b
docs: nginx timeouts
...
suggested by Michael Dilger;
ref: https://snort.social/e/note15jtrt8zsrvckyv6hggmanwk43p50gvmxe30s62x9tt6x9hyruzaq6fca44
2023-02-05 17:17:13 -06:00
Greg Heartsfield
ac14a0759f
docs: clarify wording around subscription limits
2023-02-03 13:08:31 -06:00
Greg Heartsfield
cdd4e5949f
fix: correctly log SQL generation time
2023-02-03 10:39:41 -06:00
Greg Heartsfield
5999009779
improvement: increase connection cache size
2023-02-02 18:34:30 -06:00
Greg Heartsfield
e36c791c53
improvement: prevent spilling temp indexes to disk
2023-02-02 18:15:14 -06:00
Greg Heartsfield
d95adbcb3d
build: bump version to 0.8.2
2023-02-02 16:21:45 -06:00
Greg Heartsfield
509736c56d
improvement: update multiple dependencies
...
Updating cxx v1.0.88 -> v1.0.89
Updating cxx-build v1.0.88 -> v1.0.89
Updating cxxbridge-flags v1.0.88 -> v1.0.89
Updating cxxbridge-macro v1.0.88 -> v1.0.89
Updating heck v0.4.0 -> v0.4.1
Updating hyper v0.14.23 -> v0.14.24
Updating io-lifetimes v1.0.4 -> v1.0.5
Updating js-sys v0.3.60 -> v0.3.61
Updating parking_lot_core v0.9.6 -> v0.9.7
Updating sync_wrapper v0.1.1 -> v0.1.2
Updating wasm-bindgen v0.2.83 -> v0.2.84
Updating wasm-bindgen-backend v0.2.83 -> v0.2.84
Updating wasm-bindgen-futures v0.4.33 -> v0.4.34
Updating wasm-bindgen-macro v0.2.83 -> v0.2.84
Updating wasm-bindgen-macro-support v0.2.83 -> v0.2.84
Updating wasm-bindgen-shared v0.2.83 -> v0.2.84
Updating web-sys v0.3.60 -> v0.3.61
2023-02-02 16:12:49 -06:00
Greg Heartsfield
8004ea9b44
fix(NIP-33): only delete older events with matching 'd' tags
2023-02-02 16:09:17 -06:00
Greg Heartsfield
866c239cc9
improvement: simplify SQL queries for tags
2023-02-02 12:24:10 -06:00
Greg Heartsfield
6012b57e95
improvement: log connection details at INFO level
2023-02-02 11:55:41 -06:00
Greg Heartsfield
559541b160
build: bump version to 0.8.1
2023-02-01 18:16:08 -06:00
Greg Heartsfield
facaed7805
improvement: guidance for subscription limits
2023-02-01 18:09:30 -06:00
Greg Heartsfield
ba4fcd072a
improvement: allow queries to be cancelled earlier (before SQL execution)
2023-02-01 18:09:30 -06:00
Greg Heartsfield
2b79099cfe
improvement: drop slow readers more quickly
2023-02-01 18:09:30 -06:00
Greg Heartsfield
eb1d2d717d
improvement: log sleeps due to full query_tx
2023-02-01 18:09:30 -06:00
Greg Heartsfield
e5e03d4378
improvement: log slow filter query time
2023-02-01 18:09:30 -06:00
Greg Heartsfield
c377b136aa
improvement: prometheus metric for db connections (sqlite)
2023-02-01 18:09:30 -06:00
Greg Heartsfield
bca5614a82
perf: hold database handle through all filters when querying
2023-02-01 18:09:30 -06:00
Greg Heartsfield
f7550b4c61
improvement: more precise log message
2023-02-01 18:09:30 -06:00
Greg Heartsfield
1623bacd0d
improvement(NIP-33): advertise support for parameterized replaceable events
2023-02-01 18:09:27 -06:00
Greg Heartsfield
2bbde8ad09
build: upgrade Rust to 1.67.0
2023-02-01 08:02:50 -06:00
Greg Heartsfield
a42004c30c
improvement: update multiple dependencies
...
Updating async-trait v0.1.61 -> v0.1.64
Updating axum v0.6.2 -> v0.6.4
Updating axum-core v0.3.1 -> v0.3.2
Updating bumpalo v3.11.1 -> v3.12.0
Updating bytes v1.3.0 -> v1.4.0
Updating cc v1.0.78 -> v1.0.79
Updating clap v4.1.1 -> v4.1.4
Updating crc v3.0.0 -> v3.0.1
Updating cxx v1.0.86 -> v1.0.88
Updating cxx-build v1.0.86 -> v1.0.88
Updating cxxbridge-flags v1.0.86 -> v1.0.88
Updating cxxbridge-macro v1.0.86 -> v1.0.88
Updating either v1.8.0 -> v1.8.1
Updating futures v0.3.25 -> v0.3.26
Updating futures-channel v0.3.25 -> v0.3.26
Updating futures-core v0.3.25 -> v0.3.26
Updating futures-executor v0.3.25 -> v0.3.26
Updating futures-io v0.3.25 -> v0.3.26
Updating futures-macro v0.3.25 -> v0.3.26
Updating futures-sink v0.3.25 -> v0.3.26
Updating futures-task v0.3.25 -> v0.3.26
Updating futures-util v0.3.25 -> v0.3.26
Updating pest v2.5.3 -> v2.5.4
Updating pest_derive v2.5.3 -> v2.5.4
Updating pest_generator v2.5.3 -> v2.5.4
Updating pest_meta v2.5.3 -> v2.5.4
Updating proc-macro2 v1.0.49 -> v1.0.50
Updating rustix v0.36.6 -> v0.36.7
Updating security-framework v2.7.0 -> v2.8.2
Updating security-framework-sys v2.6.1 -> v2.8.0
Updating tokio v1.24.1 -> v1.25.0
Updating toml v0.5.10 -> v0.5.11
Updating unicode-bidi v0.3.8 -> v0.3.10
Updating unicode-segmentation v1.10.0 -> v1.10.1
Updating uuid v1.2.2 -> v1.3.0
2023-02-01 07:54:21 -06:00
Greg Heartsfield
9dd97908cf
build: bump version to 0.8.0
2023-02-01 07:52:24 -06:00
Greg Heartsfield
ab749e9cf0
improvement: log mixed string/blob tag queries
2023-02-01 07:49:46 -06:00
Greg Heartsfield
1820e9c689
perf: separate out blob and string tag queries
2023-02-01 07:13:29 -06:00
Greg Heartsfield
2d3a35fe30
perf: force event hash index if filter uses ids
2023-02-01 06:46:35 -06:00
Greg Heartsfield
9c77b06f79
improvement: dedupe filters in a REQ
2023-01-31 18:09:43 -06:00
Greg Heartsfield
c8e8b71b91
fix: use accurate timer for slow queries, and use 250ms as cutoff
2023-01-31 18:09:43 -06:00
Greg Heartsfield
6d57adef73
improvement: log filter in a reusable format for slow queries
2023-01-31 18:09:43 -06:00
Greg Heartsfield
111eb4a10c
perf: prevent sqlite readers from capturing worker thread pool and impacting writer latency
2023-01-31 18:09:23 -06:00
Greg Heartsfield
214f152c5d
improvement: provide reason for abort in prometheus metric
2023-01-30 18:40:47 -06:00
Greg Heartsfield
3fcaf97a15
improvement: move sqlite connection acquisition into blocking thread
2023-01-30 18:02:40 -06:00
Greg Heartsfield
cec501b37f
improvement: start timing for each new filter execution
2023-01-30 18:02:40 -06:00
Greg Heartsfield
2557c7f69c
improvement: run filters as separate queries, to reduce complexity on SQLite query planner
2023-01-30 18:02:40 -06:00
Greg Heartsfield
3979a94726
improvement: do not force query to use index when limit is specified
2023-01-30 18:02:40 -06:00
Greg Heartsfield
71bdbfb425
improvement: query and exit early for events that get immediately replaced
2023-01-30 18:02:40 -06:00
Greg Heartsfield
b6798f96b6
improvement: add prometheus metrics, renaming others
2023-01-30 18:02:28 -06:00
Greg Heartsfield
1804bee912
feat(NIP-33): parameterized replaceable events for postgres
2023-01-29 18:30:08 -06:00
Greg Heartsfield
34db91940c
improvement: prometheus metrics for aborted queries
2023-01-28 16:05:58 -06:00
Greg Heartsfield
0859e535ed
improvement: remove origin label from connections metric
...
The origin header is controlled by clients, and there is no expiration
of any values that appear. We would need to whitelist a set of known
origins in order to track this without giving someone the ability to
exhaust memory.
2023-01-28 15:46:26 -06:00
Greg Heartsfield
bdd4e43df4
improvement: show errors when writing new sqlite db
...
Build the sqlite writer pool first, which will provide a better error
message in the event the database is not writeable or readable.
2023-01-28 14:02:20 -06:00
Greg Heartsfield
dfa6985f44
docs: postgresql and NIP-33 added to README
2023-01-27 20:25:24 -06:00
Greg Heartsfield
57e1b53c13
feat: postgres migration schema v2
...
This primarily deals with correctly handling tag values.
2023-01-27 20:13:47 -06:00
Greg Heartsfield
53f83aa923
improvement: delete, do not hide, replaceable events
2023-01-24 08:04:42 -06:00
Greg Heartsfield
34a8f99d61
build: bump release to RC 1
2023-01-24 08:04:42 -06:00
Greg Heartsfield
c8f7420334
feat(NIP-33): parameterized replaceable events
2023-01-24 08:04:42 -06:00
Greg Heartsfield
e2869e8fad
fix(NIP-16): do not replace events unless they are newer
2023-01-24 08:04:42 -06:00
Greg Heartsfield
5c07b2eca5
refactor: event is_ephemeral method
2023-01-24 08:04:42 -06:00
Greg Heartsfield
25752abe6b
fix: run postgres migration on startup
2023-01-24 08:04:37 -06:00
Greg Heartsfield
b094fbcabd
fix: integration tests working
2023-01-22 11:10:21 -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
e996d4c009
improvement: default to having a event creation rate limit (5/sec)
2023-01-20 11:10:43 -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
cf3e67500f
build: bump version to 0.7.17
2023-01-15 15:48:39 -06:00
Greg Heartsfield
1d19442cfd
improvement: upgrade multiple dependencies
...
Updating crates.io index
Updating async-trait v0.1.60 -> v0.1.61
Updating axum v0.6.1 -> v0.6.2
Updating axum-core v0.3.0 -> v0.3.1
Updating clap v4.0.32 -> v4.1.1
Updating clap_derive v4.0.21 -> v4.1.0
Updating clap_lex v0.3.0 -> v0.3.1
Updating cxx v1.0.85 -> v1.0.86
Updating cxx-build v1.0.85 -> v1.0.86
Updating cxxbridge-flags v1.0.85 -> v1.0.86
Updating cxxbridge-macro v1.0.85 -> v1.0.86
Updating io-lifetimes v1.0.3 -> v1.0.4
Updating nom v7.1.2 -> v7.1.3
Updating parking_lot_core v0.9.5 -> v0.9.6
Updating pest v2.5.2 -> v2.5.3
Updating pest_derive v2.5.2 -> v2.5.3
Updating pest_generator v2.5.2 -> v2.5.3
Updating pest_meta v2.5.2 -> v2.5.3
Updating prost v0.11.5 -> v0.11.6
Updating prost-derive v0.11.5 -> v0.11.6
Updating prost-types v0.11.5 -> v0.11.6
Updating regex v1.7.0 -> v1.7.1
Updating schannel v0.1.20 -> v0.1.21
Removing sha1 v0.10.5
Adding sha2 v0.10.6
Updating termcolor v1.1.3 -> v1.2.0
Updating tokio v1.23.1 -> v1.24.1
Updating try-lock v0.2.3 -> v0.2.4
Removing windows-sys v0.36.1
Updating windows_aarch64_gnullvm v0.42.0 -> v0.42.1
Removing windows_aarch64_msvc v0.36.1
Removing windows_aarch64_msvc v0.42.0
Adding windows_aarch64_msvc v0.42.1
Removing windows_i686_gnu v0.36.1
Removing windows_i686_gnu v0.42.0
Adding windows_i686_gnu v0.42.1
Removing windows_i686_msvc v0.36.1
Removing windows_i686_msvc v0.42.0
Adding windows_i686_msvc v0.42.1
Removing windows_x86_64_gnu v0.36.1
Removing windows_x86_64_gnu v0.42.0
Adding windows_x86_64_gnu v0.42.1
Updating windows_x86_64_gnullvm v0.42.0 -> v0.42.1
Removing windows_x86_64_msvc v0.36.1
Removing windows_x86_64_msvc v0.42.0
Adding windows_x86_64_msvc v0.42.1
2023-01-15 15:46:33 -06:00
Greg Heartsfield
13cc24b5cd
improvement: log blacklisted events
2023-01-15 15:42:27 -06:00
Greg Heartsfield
f543957b34
improvement: clear out hidden events during schema upgrade
2023-01-15 15:27:41 -06:00
Greg Heartsfield
7021f102e8
improvement: delete replaceable events
2023-01-15 15:13:10 -06:00
Greg Heartsfield
fddbf321bc
perf: add indexes and force their use (authors)
2023-01-15 10:52:49 -06:00