Commit Graph

50 Commits

Author SHA1 Message Date
c69b338402 wip 2024-08-29 14:08:43 -04:00
6bfd69473d wip 2024-08-29 14:08:43 -04:00
82aea124f0 wip 2024-08-29 14:08:43 -04:00
a142af6b74 wip 2024-08-29 14:08:43 -04:00
b5953c2da7 wip 2024-08-29 14:08:43 -04:00
0ade447926 wip 2024-08-29 14:08:43 -04:00
c7cb8285ea bring static files into regular build process 2024-08-29 14:08:43 -04:00
881ec3da06 web wip 2024-08-29 14:08:43 -04:00
34750699df Merge pull request #95 from alexgleason/nip11-limitation
Add NIP-11 limitations
2024-07-18 23:39:19 -04:00
30982c3f6c Merge pull request #100 from fiatjaf/nip70
implement NIP-70: protected events
2024-07-18 23:38:44 -04:00
1b6292303d update supported nips list. 2024-04-09 08:20:11 -03:00
42b28b9482 implement NIP-70, protected events. 2024-04-08 16:26:32 -03:00
4021651d34 Add NIP-11 icon setting 2024-03-24 14:54:21 -07:00
527dc14a86 Add NIP-11 limitations 2023-12-19 17:21:21 -06:00
87acec91c3 Add nodeinfo support 2023-12-19 12:16:16 -06:00
b22e515a71 feature/freebsd-support-one: main freebsd adjustments 2023-10-24 03:31:54 -07:00
b3e59566c6 switch import to use WriterPipeline
- This makes it do the verification and writing in parallel
- Also, it will now flush periodically (default 1s) even if it has read
  fewer than N (default 10k) records from stdin. This lets import be used
  as a general-purpose non-relay event ingester. To do so, users must
  ensure that the stdout of their process they pipe into import is line
  buffered.
2023-09-26 16:03:09 -04:00
0d88747613 relay.negentropy.enabled config option: set to false to prevent processing negentropy messages 2023-09-22 14:49:35 -04:00
c9254adaf8 bugfix: handle malformed/old-format negentropy messages gracefully 2023-09-22 14:49:35 -04:00
4d0eef45f7 use negentropy protocol 0 2023-09-18 11:57:35 -04:00
b2a128d2f3 Normally when a plugin blocks an event, it will log a message. Especially when using plugins in stream, router, etc, this might be too verbose. In order to silence these logs, return an empty string for msg (or no msg at all). 2023-09-10 09:53:30 -04:00
90494cb8b3 bugfix with plugin receivedAt time and sourceType 2023-09-10 09:53:15 -04:00
f81f628dc5 use uWebSockets toStringView() 2023-09-06 15:16:39 -04:00
108ebbfaff router 2023-09-05 23:41:07 -04:00
98f1020ef3 re-org plugins 2023-09-05 23:35:27 -04:00
93330c4cbc remove lookbehind feature from plugins 2023-09-05 23:35:27 -04:00
42fe1f16ca WSConnection clean shutdown, fix hubTrigger ownership (it's deleted by the event loop) 2023-08-16 13:38:13 -04:00
35270c57ad efficiency: not necessary to look up Event table in export 2023-08-14 06:20:35 -04:00
6b8981e1db sync improvements and incompatible upgrade
* New Negentropy protocol: Syncs with older versions of strfry will break (sorry!)
* Bi-directional frame size limits: fixes a bug when syncing very large DBs where the client side was near empty
* sync command now politely tells server it can release Negentropy resources as soon as reconcile complete
2023-08-12 00:45:51 -04:00
d189cdb349 correctly detect and report when syncs are too large, fix logging 2023-08-12 00:45:51 -04:00
206b14a473 sync optimisations, DBQuery no longer loads eventPayload
- It is now up to the caller to do so
- QueryScheduler now can optionally not bother to ensure that the events are fresh
2023-07-29 01:14:38 -04:00
ca0449286c Stop WSConnection from calling ::exit(), so that the sync command can flush its writes first
This fixes a rare race condition that caused a segfault on exit:

We call ::exit() which runs the atexit handler, which destroys the LMDB environment. However, there was another thread running that still had pending events to write, so as the environment was being destroyed, it tried to use the environment to write the events.
2023-07-26 20:24:55 -04:00
0fe929ffcb make bulk export commands gracefully exit on SIGPIPE (for example, if piped to head) 2023-07-25 00:39:05 -04:00
80915f969d If a client disconnects before its pending EVENT write messages have been processed, drop those messages instead of trying to write them 2023-07-21 07:46:37 -04:00
6d8aeaa881 setting rejectEphemeralEventsOlderThanSeconds larger than ephemeralEventsLifetimeSeconds did not work because events were then considered expired 2023-07-21 06:23:03 -04:00
f792eb6a5b make default NIP-11 pubkey and contact empty strings, to silence warnings with default config 2023-07-21 06:21:30 -04:00
1ffcde4ba3 config to log reason for invalid event rejection (default true)
- can be disabled to silence excessive logging
2023-07-21 06:20:29 -04:00
42d5101316 Warn when NIP-11 pubkey is in incorrect format (#52) 2023-07-20 18:03:40 -04:00
0d21dc3255 limit on events that can be processed by a sync 2023-07-20 17:45:00 -04:00
4d832684a5 default value for frame-size-limit 2023-06-12 08:58:29 -04:00
7dab0a7406 normalise logging 2023-06-12 08:58:17 -04:00
a3b4e7baf5 frame size limit for negentropy syncs 2023-06-11 23:44:33 -04:00
c18ff8099c remove relay__negentropy__maxFilterLimit for now
- this was causing problems on big DBs
- need more reliable way of enforcing limits
2023-06-10 01:34:16 -04:00
40c3d6156a log disconnection reasons 2023-06-10 00:46:46 -04:00
01e6421f89 landing page 2023-06-09 01:49:20 -04:00
62b2b3096f move relay config into relay app's golpe.yaml 2023-06-06 01:51:41 -04:00
d2889bc491 allow writePolicy plugins to filter events downloaded via sync 2023-06-06 01:06:43 -04:00
abb488a570 zero downtime restarts 2023-06-05 16:32:35 -04:00
c2f9d61e91 update docs and list of supported NIPs 2023-06-05 12:19:57 -04:00
03ef0958fc apps refactor 2023-06-05 11:39:21 -04:00