Direct Integration with Bitcoin

Milestone accomplished! Protocol integration between Bitcoin Adapter and BTC System Component

Our engineering teams have successfully accomplished a major milestone this week by having the protocol between the Bitcoin Adapter in the networking layer and the BTC System Component in the execution layer working! That is, the BTC System Component can request blocks from the Adapter and the Adapter matches the request with its prefetched blocks and provides a new Bitcoin block in case of a match. The new block is processed by the System Component.

The block request by the BTC System Component comprises all block hashes in the view the System Component has of the Bitcoin blockchain. The Adapter responds with a Bitcoin block in case it has a block that fits “on top” of a block the System Component has in its local view.

This protocol-level integration has been done with a single Adapter that is connected to the BTC System Component “directly” and not through the IC protocol stack. This means that the core part of the Bitcoin-related functionality is working now in these two main components, but the communication mechanism is not the one we intend to have in the final system.

The next steps will be to tackle the integration into the protocol stack to have the requests and responses integrate with the IC protocol stack. This will also enable the submission of outgoing transactions. Some of the work on the foundation for the next steps, e.g., the extension of the consensus layer, has been done already.