Oddbean new post about | logout
 Bitcoin consensus is very fickle.
It's not defined in a specification, but the first implementation, now called Bitcoin Core, is the defacto spec by implementation.

For example, they changed the database used in the software, and even that triggered a hard fork! 

So if you would want to build your own node from scratch, you have to implement all the quirks of Bitcoin Core, including some bugs.

For example libbitcoin is another implementation of Bitcoin from scratch, but this took decades to implement by the most genius bitcoiner I know off.

Since the libkernel is extracted from Bitcoin Core, it has all the quirks and bugs included, so now devs can more easily build their own custom node with custom features.