Port nocapd to Deno and rename [bullmq->pqueue, lmdb -> sqlite] #774
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There's a bug on production agents that relate to LMDB silently failing during update once the db reaches a certain size. This results in a diminishing reporting rate, at about 5 relays a day. (for example, in cursory tests I found that the current number of (known) relays online using current logic is approximately 1040, but most monitors are reporting 900 relays, where some monitors are reporting relays online that others aren't. It has been confirmed that this is not due to network conditions, as isolated tests the hosts can indeed connect to the relays they are not reporting.
Fed up with Node, as well as the silent peculiarities of LMDB and BullMQ, I am abandoning everything that brings me dispair.
There are some increased overhead and performances issues with this change, particularly with sqlite (roughly 1000x slower).
But overall, will be easier to maintain and more reliable, and becomes a stability update, quality of life update (for me) and much needed code refactor that passively kills all technical debt.
Already have it about 90% of the way there, just need to reenter bundler hell because
@nostrwatch/nocap
relies onws
and Deno andws
has all kinds of unhandled errors in Deno.