Hello devs,
Shared new code for bitcoin backbone available on the website (
bitcoinbackbone.org). Biggest
changes from the latest release has been mostly working on compact-block BIP152 support, of
which most of the groundwork is present, outbound tx synchronization and a lot of internal
circuitry due to the native multi-process architecture (and some other minors on addr mngt).
Currently, bitcoin backbone is leveraging a homemade C interface to deal with the deeper
libbitcoinkernel encapsulated consensus code. Idea is of course to update the consensus
code to the newer version, though for now in terms of flexibility using a homemade interface
has a lot of advantages.
I had a look on the libbitcoinkernel as you're finding in v0.30. I have no strong opinion
on yet on the level of granularity around the btck_ChainstateManager abstraction. So far,
being able to access lower levels is very useful, most notably for debugging and checking
the internal state of your chain state manager, and knowing on which branch it is.
Yet, already coming to my mind, I'm thinking there are 2 interface extensions that could
be useful, or at least worthy to consider. The first one is 1) being able to verify header
consensus structure on their own. In bitcoin backbone, I have a block-daemon managing block
relay and sanitizing the headers as they're coming it's useful (the libbitcoinkernel would
be re-linked in the binary, but not stateful).
A second extension would be able to validate a transaction in its wholeness for all consensus checks
during mempool processing. Same backbone has its own mempool process (i.e mempool-daemon).
I'm leaving for design broodings if it's interesting to be able to confirm atomically a chain of unconfirmed
txn back to their origin coinbase or deeply buried UTXO.
Still very much a toy, though at least it starts to have its own testing framework.
Keep building.
Cheers,
Antoine
OTS hash: e2d9f01c29660767860789d3e134e8d7048a2e50b673bf6b453cd9786580083f