Published on: 2016-01-13T22:47:44+00:00
In an email conversation between Eric Voskuil and Jorge Timón, they discussed the development phases for a public blockchain interface. Timón plans to create a C++ interface that aligns better with Bitcoin Core internals. In the third phase, he aims to refine the storage interface by defining C interfaces using structs of function pointers instead of classes. The goal is to separate the consensus code from chain.o and coins.o so that they are not part of the consensus building package used for libbitcoinconsensus and Bitcoin Core.There was a disagreement between Timón and Luke Dashjr regarding the implementation of libbitcoinconsensus. Dashjr advocated for a storage-dependent version, while Timón believed in implementing both versions - one with a common store implementation and another allowing alternative implementations with custom storage. Timón was concerned that forcing users into a specific uniform storage would limit adoption.In a recent update, Timón shared that the goal for phase 2 of libconsensus encapsulation planning has changed. Instead of exposing only VerifyHeader(), the plan now is to build all the consensus critical code within the existing libconsensus library. This adjustment aims to make the project more feasible for a single Bitcoin Core release cycle. Timón also provided an outline for the upcoming phases, including refining the storage interfaces, renaming files, and making Bitcoin Core use libbitcoinconsensus through its generic C API.Timón discussed how exposing VerifyScript() through a C API solidified dependencies outside of the existing libbitcoinconsensus library. The plan is to gradually move all the necessary files listed in a Github pull request, and Timón encouraged others to get involved in this process.In a mailing list post, Timón further elaborated on the plan to decouple libconsensus from Bitcoin Core. The change in strategy involves building all the consensus critical code within the existing libconsensus library in phase 2. This will simplify the future exposure of VerifyHeader(), VerifyTx(), and VerifyBlock(). The subsequent phases include refining storage interfaces, renaming files, and using libbitcoinconsensus solely through its generic C API in Bitcoin Core.The work in progress branch for the project can be found on GitHub, and Timón intends to create an issue to move the necessary files one by one. They encouraged others to participate in this straightforward task that can be easily executed correctly.
Updated on: 2023-08-01T17:34:18.183186+00:00