-
Notifications
You must be signed in to change notification settings - Fork 36
Description
The bitcoind
/ electrsd
crates have been enormously helpful for our integration testing, and we (Lexe) think they could be very useful in production as well.
Our interest in a production-grade bitcoind
/electrs
Rust harnesses: Due to the headaches of managing bash scripts / config files / systemd service files and whatnot, we actually decided to write our production (as well as testnet, dev, regtest etc) orchestration code in pure Rust, so that we could handle all of our argument shuttling in a strongly-typed language, resulting in a sharp reduction in deployment errors. Cleaning up bitcoind
and electrsd
to be "production-grade" software would allow us to extend our current paradigm to the deployment of these services as well, and allows bitcoind / electrsd arguments to be programmatically configurable in production. We also have an internal framework which centralizes things like CLI arguments, config files, and environment variables, so exposing Rust hooks into a bitcoind
/electrs
harness allows us to reuse this system as well.
So, I wanted to start a discussion on this. Some questions:
- Is anyone else interested in this?
- What is the current readiness of the
bitcoind
/electrsd
crates from a "production" standpoint, and what work would need to be done to accomplish this? - Is it better to pursue this development goal under this repository, or should interested parties add these capabilities in a permanent fork which does not have the intention of being merged back upstream? (Similar to the romanz/Blockstream electrsd fork situation). In other words, are the requirements of a "production-ready" vs integration test-oriented
bitcoind
/electrs
harness so different that it would be better to develop them in separate repositories? (My hunch is this is not so).
Especially interested in your thoughts @RCasatta.