Commit Graph

12 Commits

Author SHA1 Message Date
Mononaut
91cbad347c Boolean output spend status when indexing disabled 2022-05-18 03:13:26 +00:00
Mononaut
0e6c8159af Handle transaction floods 2022-03-05 10:24:24 -06:00
Mononaut
685e355fa7 Batch RPC requests for transaction prevouts 2022-03-03 23:19:24 -06:00
Mononaut
48a3204055 Use Logger 2022-03-03 18:33:38 -06:00
Mononaut
0c48d0b233 Clear RPC server bottleneck
Parallelizes the RPC GenServer
2022-03-03 18:09:37 -06:00
Mononaut
dc6286bd39 Fix prevout inflation concurrency bug
- Replaces Hackney with Finch for http requests, to improve concurrent
RPC handling under high load
- Rips out obsolete elixometer instrumentation
- Adds handling for failed prevout inflation
- Fail inflation step fast
2022-03-02 23:42:31 -06:00
Mononaut
561cc30aa6 API server startup tweaks for umbrel release 2022-02-19 23:39:13 -06:00
Mononaut
c0703a7a21 Keep retrying failed mempool sync 2022-02-19 22:53:22 -06:00
Mononaut
bd9d11818d Refactor API server supervision tree
- Migrate mempool agent to a GenServer
- ZMQ sockets handled by separate GenServers
- Mempool & socket servers under one_for_all supervisor
- Improve error handling
2022-02-19 21:43:48 -06:00
Mononaut
e845157610 Refactor API/Core bridge & mempool tracking.
API:
- Better RPC handling (cache credentials)
- Process transaction prevouts in dedicated Tasks
- Consume ZMQ sequence msgs
- Track mempool count precisely
- Cache prevouts for mempool transactions
- Send mempool count with every client msg, instead of reconstructing client-side
- Only send block ids over websocket, let clients fetch the full block data via http

Client:
- Simplify transaction queue to avoid setTimeouts
  - improves experience in background tabs
  - no longer need to hold back txs, as duplicates are now handled API-side
- Use API-supplied mempool count, instead of tracking it client-side
- Make mempoolCount a Svelte spring store, so updates transition smoothly
2022-02-18 18:07:58 -06:00
Mononaut
14a1c54352 Extend txs and blocks with prevouts and fees
Fetch prevouts for solo and block transactions,
and calculate input values & tx fees.

Naive initial implementation with no caching,
so block processing is sloooooooooooooow.
2022-02-13 22:48:40 -06:00
Mononaut
be85d5d853 Dedicated RPC process, wait for ibd on startup 2022-01-23 16:55:10 -06:00