libconsensus and bitcoin development process



Summary:

In a discussion on the Bitcoin-dev mailing list, it was suggested that companies can maintain forks of Bitcoin Core unnecessarily when a different architecture could do what they need without including new logic in the codebase itself. The goal is to have a more modular, reusable, and maintainable codebase where new functionality can be plugged in easily. However, bitcoind's design is still too monolithic and adding a new feature requires the code to be touched all over the place, potentially breaking base node functionality. Therefore, if possible, functionality should be built without changing bitcoind's code at all. One example of this is Monero's 'simplewallet', which is a command-line utility wallet that communicates with the node software and remembers where it was in the chain. An index could be implemented entirely externally in a similar way while fully handling reorgs. To achieve this, it is suggested that a library communicate with the node and offer functionality abstractly similar to 'git pull'. The 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.


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