Commit Graph

26 Commits

Author SHA1 Message Date
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
12b75889c2 Fix missing block router bug 2022-02-28 12:10:40 -06:00
Mononaut
3aba5e3ea7 Improve mempool resync, Core reconnection. 2022-02-20 15:35: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
245543ec9b Squash bugs. Update READMEs & docker config 2022-02-18 20:56:09 -06:00
Mononaut
9a630adf3e Refactor highlight caching & color management 2022-02-18 18:38:21 -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
95cabcf041 Serve block data over http
Avoid sending large block data messages over websocket,
which block transaction updates, especially on lower
bandwidth connections.

Instead, only send the block id over websocket, and
then fetch over http with good caching
2022-02-13 14:38:46 -06:00
Mononaut
89a7ef5af6 Add currency selector to settings sidebar
Resolves #11
2022-01-31 13:50:43 -06:00
Mononaut
8f86a7a6fd Add proper instructions 2022-01-30 12:51:15 -06:00
Aaron Dewes
59127705f5 Add log dir to the repo 2022-01-28 02:26:12 -05:00
Aaron Dewes
3f63145d9f Clean up Dockerfiles
Use up-to-date nginx
Run builds on the amd64 architecture (This breaks builds on a Pi, but can simply be removed, it was added because it's much faster)
Copy package lockfile into container
Turn some steps into one
2022-01-28 02:23:13 -05:00
Mononaut
be85d5d853 Dedicated RPC process, wait for ibd on startup 2022-01-23 16:55:10 -06:00
Mononaut
a343ec1bc6 Docker config, compatibility & env var support 2022-01-23 16:54:04 -06:00
Mononaut
13c9858c68 Fix donation overlay bug, deployment notes 2021-12-31 22:08:56 -06:00
Mononaut
12118c93a3 Separate donation logic from tx streaming server 2021-12-24 10:04:11 -06:00
Mononaut
f5e9d46910 Move bitcoinex server dependency into repo 2021-12-02 17:13:13 -06:00
Mononaut
3a733e26b9 Add licenses and readme 2021-12-02 17:04:00 -06:00
Mononaut
739b8518ef Prep server for monorepo 2021-12-02 17:00:19 -06:00