forked from ethereum-optimism/op-geth
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
op-geth operates two TBC instances, a lightweight (header-only) instance which it uses to track Bitcoin consensus as known by the Hemi protocol based on L2 blocks, and a full instance which synchronizes with the P2P network and is used to index the Bitcoin chain. Hemi creates "Bitcoin Attributes Deposited" transactions which communicate new Bitcoin headers to be "known" by the Hemi protocol. The protocol uses these headers to maintain a complete, lightweight view of Bitcoin consensus that is synchronized across all Hemi nodes regardless of their view of Bitcoin's P2P network. When Hemi's lightweight view is advanced by new information as part of the Bitcoin derivation process, Hemi's embedded full node proceeds to index along the canonical tip of the lightweight view, always staying 2 blocks behind the known tip to prevent a data withholding attack against Hemi's state transition function. If the full node does not have the correct full blocks to advance its indexers to the delayed tip behind the lightweight view, it waits for these blocks to become available. The state of the full BTC node indexers must be identical across all Hemi nodes at a given L2 height so that hVM precompile calls are determinstic, otherwise nodes would calculate EVM state transitions incorrectly and cause a state divergence. Bitcoin Attributes Deposited transactions can only be created by the Sequencer - similar to other System transactions ([Ethereum] Attributes Deposited and PoP Payout). For now, a default starting Bitcoin testnet header is configured and will be used by default if not overridden, but the hVM Phase 0 activation height MUST be overridden. This update also provides bug-fixes for existing precompiles which were activated on Hemi Testnet prior to this update which makes hVM state deterministic across the Hemi network.
- Loading branch information
1 parent
83dd8a6
commit 6a4242c
Showing
25 changed files
with
3,208 additions
and
398 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.