fiatjaf
c74ac74a0e
use sync.Once to prevent duplicated AUTH attempts on the same relays.
2026-03-25 15:28:17 -03:00
fiatjaf
ec6f3f8a41
.Count() to handle CLOSED messages and support AUTH like .Subscribe().
2026-03-25 11:46:36 -03:00
fiatjaf
e675f04bd2
maybe this is not necessary? prevent WriteWithError from getting stuck.
2026-03-20 20:27:24 -03:00
fiatjaf
0630bbe4e9
fix another dead relay issue (relays dying but subscriptions living forever and not being reconnected).
2026-03-20 20:26:59 -03:00
fiatjaf
2cec1c9434
eliminate readQueue stuck channel on relay close.
2026-03-14 05:53:16 -03:00
fiatjaf
6cbe984e16
eliminate closedMutex and closeNotify because they are useless (apparently).
2026-03-14 05:31:48 -03:00
fiatjaf
5a0b18e65a
add buffers to read and write queues.
2026-03-12 17:14:18 -03:00
fiatjaf
4348c64b14
r.writeQueue doesn't have to be closed.
2026-03-08 22:58:36 -03:00
fiatjaf
1d14e6bebe
relay: fix inverted r.writeQueue check.
2026-03-04 00:01:04 -03:00
fiatjaf
23d525f067
another last guard against sending on closed channel.
2026-03-02 11:59:12 -03:00
fiatjaf
4dab261bdf
close relays when sending a CLOSE message fails and ensure closed relays aren't used.
2026-03-01 09:44:53 -03:00
fiatjaf
44c429d6b1
ensure we fail subscriptions to closed relays.
2026-03-01 09:26:00 -03:00
fiatjaf
4b5c51ffc0
refactor unsub to be dependent on the context only and always.
2026-03-01 09:19:25 -03:00
fiatjaf
5de9501556
fixes.
2026-03-01 09:18:55 -03:00
fiatjaf
1df85217d9
merge connection into relay, do all the closing logic on context cancelation and have closeMutex be a channelmutex.
2026-02-28 14:19:57 -03:00
fiatjaf
195cb944e2
fix potential subscription leaking bug with MaxWaitForEOSE never being effective.
2026-02-27 06:47:27 -03:00
fiatjaf
c31b92707b
trying to prevent leaking subscriptions.
2026-02-26 23:01:18 -03:00
fiatjaf
e17995d427
authHandler bugfix from ben at nostr:nevent1qqsy9nka36av9ukvkyq42626t7gkyu4rdkgsu0c785kprup3a2694ngkkwvrk
2026-02-01 16:52:53 -03:00
fiatjaf
5efcbbfddb
relay options passed to pool should take the relay sometimes.
2026-01-11 17:47:32 -03:00
fiatjaf
3335c29389
relay: auth handler; pool: rename auth handler.
2026-01-08 18:54:19 -03:00
fiatjaf
97424e363a
allow using a custom http client.
...
fixes nostr:nevent1qvzqqqqx25pzqm8ksn7p6aak225sed38vlzngtuwl50tf0e8ahzuzkhpmuahzgzdqyd8wumn8ghj7cmpvd5x2v3wwpexjmtpdshxuet59amrzqg4waehxw309aex2mrp0yhxgctdw4eju6t09uqzq8r9r4par63whq6px0af5uxtkkx0psydtamq6rdcva248l27l2szensns3
2025-12-18 12:03:42 -03:00
fiatjaf
c20ca669cd
nip77: more interface fixes to prevent channel deadlock.
2025-11-13 16:12:10 -03:00
fiatjaf
c2ab9d082c
*connection to be an integral part of *Relay.
2025-11-12 09:47:26 -03:00
fiatjaf
1c43f0d666
relay wasn't taking CustomHandler and NoticeHandler from options.
2025-11-11 23:49:00 -03:00
fiatjaf
e1fbd09407
fix iterator cancelation in relay.QueryEvents()
2025-10-17 19:32:23 -03:00
fiatjaf
b67e3092b0
release a goroutine that could leak in some conditions.
2025-09-07 19:01:43 -03:00
fiatjaf
80d0546ce6
we should be doing this since years ago: force an EOSE if the relay refuses to give us one.
2025-08-25 22:42:05 -03:00
fiatjaf
69c0981b51
address closeMutex deadlock by canceling the relay connection context on doClose().
2025-08-23 10:08:45 -03:00
fiatjaf
31a590ee4f
fix sending on close channel with yet another mutex.
2025-08-23 09:16:12 -03:00
fiatjaf
5d42b2f857
nest okcallbacks so they're called one by one.
2025-08-06 15:13:55 -03:00
fiatjaf
83c34daa8b
OK callbacks that still work even if the same event is published twice.
2025-07-30 15:06:30 -03:00
fiatjaf
6592319774
stop exposing connection, more debugLog calls and properly fail subscriptions when a relay dies.
2025-07-13 14:21:15 -03:00
fiatjaf
9f8b810882
fix main relay context being canceled instead of just the dial context.
2025-07-11 13:01:04 -03:00
fiatjaf
7289da9c72
improve/refactor websocket connections hoping this will fix the undetected disconnections we're seeing.
...
this commit also remove all the sonic envelope parsing and reintroduces filters in REQ as a slice instead of as a singleton.
why? well, the sonic stuff wasn't really that fast, it was a little bit but only got fast enough once I introduced unsafe conversions between []byte and string and did weird unsafe reuse of []byte in order to save the values of tags, which would definitely cause issues in the future if the caller wasn't aware of it (and even if they were, like myself).
and the filters stuff is because we abandoned the idea of changing NIP-01 to only accept one filter per REQ.
2025-07-10 22:58:37 -03:00
fiatjaf
28f85c9ea3
fix sending request header.
2025-05-30 10:09:03 -03:00
pippellia-btc
0853405c03
probably fixing race condition.
2025-05-07 10:34:05 -03:00
fiatjaf
15c6093c9b
define a nostr.Kind type for event kinds, make adjustments everywhere and fix some horrible bugs with mmm, lmdb and badger querying and deleting.
2025-04-20 11:15:41 -03:00
fiatjaf
f7884cea4f
wait, Querier can just return an iter like eventstore, it's ok.
2025-04-16 03:06:27 -03:00
fiatjaf
5b8954461f
it never ends.
2025-04-16 02:59:47 -03:00
fiatjaf
2b5b646a62
a big bundle of conversions and other changes.
2025-04-15 17:13:57 -03:00
fiatjaf
b4268d649c
a bunch of [32]byte conversions. still more needed.
2025-04-14 17:47:53 -03:00
fiatjaf
dad99b226c
relay: fix unsafe overwriting of event buffer that affected parsed pubkeys, ids, content.
2025-04-07 15:56:36 -03:00
fiatjaf
cc23d81e80
pool's .FetchManyReplaceable() and amends to previous commit.
2025-03-12 00:49:58 -03:00
fiatjaf
441f94563f
WithCheckDuplicateReplaceable() and helper functions for efficient replaceable event matching.
2025-03-12 00:19:41 -03:00
fiatjaf
cecc71cd81
fix and improve envelope stuff again, deal with messages as strings on all envelope parsing steps.
2025-03-12 00:18:11 -03:00
fiatjaf
5bfaed2740
docstrings for many functions.
2025-03-04 11:42:44 -03:00
fiatjaf
17431dee59
do not close relay connection when ping fails because some relays just do not pong.
2025-01-25 00:26:38 -03:00
fiatjaf
3e1c0ddc7e
fix pinging relays: use the main relay context, not the relay connection temporary context.
2025-01-17 14:08:54 -03:00
fiatjaf
06a15fdaab
follow list fetching test and related changes and fixes.
...
- make BatchedSubManyEose() use a single duplicate id index and use it for replaceable loaders;
- fixes parsing follow entry from kind:3 events (and others);
- adds a "cause" to most cancelation errors in relay/pool;
- remove the inherent cache from dataloader (we have our own hopefully);
- increase max frame size we can read from any websocket to 2**18 (262k), which gives over 2000 item lists.
2025-01-17 13:44:51 -03:00
fiatjaf
febf022124
add some basic sdk tests, fix saving hints (normalize urls), checkduplicates arg order, kvdb stuff and other things.
2025-01-16 17:39:16 -03:00