libconsensus and bitcoin development process



Summary:

The email conversation between Wladimir J. van der Laan and Peter Todd via bitcoin-dev discusses the issue of maintaining forks of Bitcoin Core unnecessarily, which could be resolved by a more modular and maintainable codebase. The goal is to make it easier to plug in new functionality and rebase work for new features built on top of it. Bitcoind's design is still too monolithic and adding new features requires touching the code all over the place, which increases risk and review time. The ideal solution is to build functionality without changing bitcoind's code at all or to change the code in as few places as possible, integrating with signal notification. Wladimir's long-term vision of bitcoind is a P2P node with validation and blockchain store, with a couple of data sources that can be subscribed to or pulled from. He cites Monero's 'simplewallet' as an example of it done right, which communicates with the node software, remembers where it was in the chain, and processes changes to the chain state since its last invocation when it refreshes. It can run an arbitrary number of simplewallets against one node daemon, and unlike bitcoind's wallet, it doesn't need to run as always-on daemon itself. An index could be implemented entirely externally in a similar way while fully handling reorgs. To achieve this, a library that communicates with the node is needed, offering functionality abstractly similar to 'git pull'.


Updated on: 2023-06-10T22:29:56.170401+00:00