7aa0ce14db
feat: reply OK to client-published events
...
nostrclient never answered a client's EVENT with the NIP-01
`["OK", <id>, <accepted>, <message>]` command result. Clients built on
nostr-tools and similar libraries wait for that reply before treating a
publish as successful, so NWC wallet apps paired through the public
endpoint reported "publish failed" even though the request had been
fanned out and answered.
Relay OKs now flow through the message pool like events and notices.
The router tracks each EVENT a client publishes and replies exactly
once: `true` as soon as any relay accepts, `false` once every relay
connected at publish time has rejected it, after a 10 s timeout, or
immediately when no relay is connected. OKs nobody is waiting on are
dropped at the pump so the shared result map cannot grow unbounded.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Tbyw6FwjhEJg3gHfPHxWt
2026-09-12 13:31:00 +02:00
dni ⚡
c871a42a85
refactor: get rid of libsecp ( #49 )
...
* refactor: get rid of libsecp
* fixup!
2025-11-04 10:30:00 +01:00
dni ⚡
db20915756
v1 in the middle ( #32 )
2024-10-31 13:15:31 +02:00
dni ⚡
a8eb139360
feat: code quality ( #31 )
...
* feat: code quality
2024-08-30 13:07:33 +02:00
Vlad Stan
a119c3836a
Improve stability ( #25 )
...
/ release (push) Has been cancelled
/ pullrequest (push) Has been cancelled
* chore: increase log level
* feat: secure relays endpoint
* feat: add config for the extension
* chore: update `min_lnbits_version`
* chore: improve logging
* fix: decrypt logic
* chore: improve logs
2024-01-22 13:46:22 +02:00
Vlad Stan
16ae9d15a1
Stabilize ( #24 )
...
/ release (push) Has been cancelled
/ pullrequest (push) Has been cancelled
* refactor: clean-up
* refactor: extra logs plus try-catch
* refactor: do not use bare `except`
* refactor: clean-up redundant fields
* chore: pass code checks
* chore: code format
* refactor: code clean-up
* fix: refactoring stuff
* refactor: remove un-used file
* chore: code clean-up
* chore: code clean-up
* chore: code-format fix
* refactor: remove nostr.client wrapper
* refactor: code clean-up
* chore: code format
* refactor: remove `RelayList` class
* refactor: extract smaller methods with try-catch
* fix: better exception handling
* fix: remove redundant filters
* fix: simplify event
* chore: code format
* fix: code check
* fix: code check
* fix: simplify `REQ`
* fix: more clean-ups
* refactor: use simpler method
* refactor: re-order and rename
* fix: stop logic
* fix: subscription close before disconnect
* chore: play commit
2023-11-01 17:46:42 +02:00
Vlad Stan
e6624f76bd
Performance improvements ( #19 )
...
* fix: increase the wait time for re-connecting to a relay
* fix: blocking sleep
* fix: remove blocking sleep
* fix: allow multiple filters per request
2023-09-12 15:06:28 +03:00
Vlad Stan
403c8f1b05
fix: thread not dead
2023-07-05 09:09:10 +03:00
Vlad Stan
3b08714a84
fix: async aaaa
2023-07-04 11:48:50 +03:00
Vlad Stan
147af04c20
fix: remove unnecessary async
2023-07-04 10:02:47 +03:00
Vlad Stan
1601f71b03
feat: show relay NOTICE
2023-06-30 11:46:47 +03:00
Vlad Stan
f244f60c56
fix: make it 2 hours
2023-06-30 10:53:39 +03:00
Vlad Stan
39c2f881c8
feat: revive relay after 24 hours from the last error
2023-06-30 10:52:16 +03:00
Vlad Stan
f8d578e6aa
feat: improve error handling and reporting
2023-06-26 12:20:06 +03:00
Vlad Stan
dabc26f8a6
fix: unused params
2023-06-26 10:53:48 +03:00
Vlad Stan
ce8b95c2c7
feat: restart disconnected relays
2023-06-26 10:21:06 +03:00
Vlad Stan
cec1ae7e10
chore: code clean-up
2023-06-23 11:39:09 +03:00
Vlad Stan
cd1e830947
chore: code clean-up
2023-06-23 10:52:49 +03:00
Vlad Stan
babb58e7e9
chore: code clean-up
2023-06-22 17:55:52 +03:00
Vlad Stan
defb9b8963
chore: code clean-up
2023-06-22 17:10:34 +03:00
Vlad Stan
811bfdc45a
fix: init new relays with previous subscriptions
2023-06-22 16:55:09 +03:00
Vlad Stan
af14e1c47b
fix: do not lose subscriptions if no relay
2023-06-22 15:15:00 +03:00
Vlad Stan
4238be498f
chore: code clean-up
2023-06-22 13:19:22 +03:00
Vlad Stan
414ae16cb0
refactor: split large methods
2023-06-22 13:06:57 +03:00
Vlad Stan
6c66b71302
chore: code clean-up
2023-06-22 13:06:23 +03:00
Vlad Stan
e2458d43df
chore: code clean-up
2023-06-22 13:06:00 +03:00
Vlad Stan
666009720a
chore: code clean-up
2023-06-22 10:22:13 +03:00
Vlad Stan
1a58f0fea8
chore: code format
2023-06-22 10:02:29 +03:00
Vlad Stan
09d2fc0493
refactor: add_relay logic
2023-06-22 10:02:15 +03:00
Vlad Stan
d08e91b2c7
fix: do not double re-connect
2023-06-21 17:12:26 +03:00
Vlad Stan
322679e7c5
fix: do not use lambda in a loop
2023-06-21 14:40:28 +03:00
Vlad Stan
7e2c903334
fix: uniqueness check
2023-05-31 12:13:57 +03:00
Vlad Stan
6852a9aa5e
fix: do not share the subscriptions object between relays
...
Change in one relay reflects in others.
The RelayManager takes care of updating each relay individually.
2023-05-31 11:55:41 +03:00
Vlad Stan
629aa3a6c3
fix: event uniqueness (see comment in code)
2023-05-31 11:54:04 +03:00
callebtc
49f206eab3
exponential delay for reconnect
2023-04-18 18:54:38 +02:00
callebtc
ea9fc18c15
reconnect on on_close
2023-04-18 17:50:41 +02:00
callebtc
4c6fed4b10
create ws on connect
2023-04-18 17:47:17 +02:00
callebtc
33df69c73a
fix endless loop
2023-04-17 15:47:03 +02:00
callebtc
cba039d041
EOSE works
2023-03-09 14:42:31 +01:00
callebtc
87d93c78cf
wss only
2023-03-08 16:51:54 +01:00
callebtc
d504146f91
admin check and thread as daemon
2023-02-17 16:13:06 +01:00
callebtc
4feb366493
update
2023-02-13 16:14:52 +01:00
callebtc
f03284d4ea
add folder
2023-02-13 15:28:47 +01:00
callebtc
e8c9950cb0
remove submodule
2023-02-13 15:28:36 +01:00
callebtc
69bf22c9ec
init
2023-02-10 14:55:30 +01:00