Author: Jorge Timón 2015-08-29 23:25:22
Published on: 2015-08-29T23:25:22+00:00
The importance of modularization in Bitcoin's code is often disregarded, but it has a positive impact in the long term. Modularization allows more people to contribute with code and review, reduces the risks associated with each change, and enables more alternative code bases to be implemented on top of the basic ones without fear of consensus bugs. The lack of attention towards modularization PRs is an issue, as reviewers are usually more interested in changes that add or remove functionality in the short term. Jorge Timón, a contributor to Bitcoin, suggests that people who think modularization is a high priority should join and review each other's PRs on the subject. He focuses on three modularization areas: chainparams, consensus, and policy. Other contributors like Wladimir, Pieter, Cory, and Jonas Schnelli also deeply care about modularization. Eric Lombrozo has been pushing for greater modularization since he first got into Bitcoin. He believes that system-wide modularization is essential for resolving serious political challenges. Lombrozo thinks that if the community focused on specifying core protocol layers and interfaces, we could open up more competition on all the other things that are separate from the consensus layer. Tamas Blummer, another Bitcoin developer, believes that modularization can lead to better engineering in the sense of software engineering. Blummer thinks that quality is achieved at a very high cost and is hard to uphold over generations of developers. He believes that enterprises have sufficient resources to solve business problems even at magnitudes higher cost than hobbyists would bear. Blummer would likely use an extended libconsensus but does not think there was a dependency on that for enterprise development. He plans for the C API to interface with external storage by passing a function pointer to it. Storage and validation are non-trivially interconnected, but separation can be done.
Updated on: 2023-06-10T03:40:59.457920+00:00