You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We've been iterating rapidly, which has led us to rely on dependencies we can now remove. This change will enable faster compilation times, more hardened codebase, and lower resource usage.
My initial thoughts would be to create a tiny core process for the consensus client with extremely minimal dependencies that's separate from the wallet service.
Dropping dependencies: reqwest, jsonrpsee and tokio which have large dependency trees. We can replace these with a tiny RPC server and client. No large dependencies such as TLS stack ... etc (if such functionality is desired, they could throw it behind a proxy).
Lock-free: The core process should be almost entirely lock-free and single-threaded except for the block fetcher. This can be achieved with a single reader/writer core process. If higher throughput is desired (e.g. if you're running a public facing server), multiple reader core processes can be launched using SO_REUSEPORT, letting the Linux kernel balance load across them (inspired by knot resolver design). Removing locks and tokio should greatly simplify the codebase.
Spaced: The spaced process can handle launching both spaces_wallet and spaces_core as child processes.
The text was updated successfully, but these errors were encountered:
We've been iterating rapidly, which has led us to rely on dependencies we can now remove. This change will enable faster compilation times, more hardened codebase, and lower resource usage.
My initial thoughts would be to create a tiny
core
process for the consensus client with extremely minimal dependencies that's separate from the wallet service.Dropping dependencies: reqwest, jsonrpsee and tokio which have large dependency trees. We can replace these with a tiny RPC server and client. No large dependencies such as TLS stack ... etc (if such functionality is desired, they could throw it behind a proxy).
Lock-free: The
core
process should be almost entirely lock-free and single-threaded except for the block fetcher. This can be achieved with a single reader/writercore
process. If higher throughput is desired (e.g. if you're running a public facing server), multiple readercore
processes can be launched usingSO_REUSEPORT
, letting the Linux kernel balance load across them (inspired byknot
resolver design). Removing locks and tokio should greatly simplify the codebase.Spaced: The
spaced
process can handle launching bothspaces_wallet
andspaces_core
as child processes.The text was updated successfully, but these errors were encountered: