You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Capitalized "Finality Providers"
- Corrected "Babbylon"
- Changed "Process the block..." to "Processes the block..."
multiple instances in singular form for consistency
- Changed "It:" to "it:" for consistent capitalization after sentence breaks
Copy file name to clipboardExpand all lines: docs/developers/bsns/op_stack_chains/op_stack_chains.mdx
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ The design involves the following main components:
23
23
}}
24
24
/>;
25
25
26
-
-**Finality provider:** a daemon program that receives BTC stake and keeps
26
+
-**Finality Provider:** a daemon program that receives BTC stake and keeps
27
27
submitting finality signatures over L2 blocks to the finality contract on Babylon.
28
28
- It connects to a Babylon node to query its voting power.
29
29
- It connects to the finality contract via the Babylon node for submitting
@@ -33,45 +33,45 @@ finality signatures.
33
33
Upon a new L2 block in the OP-stack chain, It:
34
34
35
35
- Gets the L2 block metadata.
36
-
- Queries Babbylon Genesis to determine whether it has voting power at this L2 block height.
36
+
- Queries Babylon Genesis to determine whether it has voting power at this L2 block height.
37
37
- If yes, sign and submit a finality signature to the finality contract.
38
-
-**Finality contract:** a CosmWasm smart contract that maintains all finality signatures submitted from OP-stack finality providers.
39
-
- It will be deployed on the Babbylon Genesis.
40
-
- It will query Babylon to determine the finality provider’s status and voting power.
38
+
-**Finality contract:** a CosmWasm smart contract that maintains all finality signatures submitted from OP-stack Finality Providers.
39
+
- It will be deployed on Babylon Genesis.
40
+
- It will query Babylon Genesis to determine the Finality Provider’s status and voting power.
41
41
42
42
Upon a finality signature, the finality contract verifies it and identifies equivocation:
43
43
44
44
- If invalid, reject.
45
45
- If valid and non-conflicting with any existing ones, accept.
46
-
- If valid but conflicting with an existing finality signature, it emits an event so anyone can slash the finality provider and the BTC stake under it.
46
+
- If valid but conflicting with an existing finality signature, it emits an event so anyone can slash the Finality Provider and the BTC stake under it.
47
47
-**Finality gadget**: a daemon program that keeps tallying all finality signatures for L2 blocks and serves RPC to allow querying the BTC-voting quorum of those blocks.
48
-
- It connects to a Babylon node for querying the voting power of finality providers.
48
+
- It connects to a Babylon node for querying the voting power of Finality Providers.
49
49
- It connects to the finality contract via the Babylon node for querying finality signatures.
50
50
- It connects to an RPC of the OP stack chain to get L2 block metadata.
51
51
52
-
Upon a new L2 block in the OP-stack chain, It:
52
+
Upon a new L2 block in the OP-stack chain, it:
53
53
54
54
- Queries the finality contract to get all finality signatures over this L2 block.
55
-
- Queries Babylon to get all finality providers’ BTC delegations for this chain and use the L2 block’s timestamp to determine the voting power distribution among all its finality providers at the time of this block.
56
-
- Tallies finality signatures and determine whether the L2 block receives a quorum.
57
-
- If this L2 block receives a quorum and its parent block is also BTC staking-finalized, mark it BTC staking-finalized and store it in the finality gadget’s local database.
55
+
- Queries Babylon to get all Finality Providers’ BTC delegations for this chain and use the L2 block’s timestamp to determine the voting power distribution among all its Finality Providers at the time of this block.
56
+
- Tallies finality signatures and determines whether the L2 block receives a quorum.
57
+
- If this L2 block receives a quorum and its parent block is also BTC staking-finalized, marks it as BTC staking-finalized and stores it in the finality gadget’s local database.
58
58
-**OP node with finality gadget:** a modified OP node that enforces BTC-voting quorum before finalizing L2 blocks.
59
59
- It connects to the finality gadget for querying consecutive BTC-voting quorums to determine the finalization status of the L2 blocks.
60
60
- It notifies OP-geth about the L2 blocks’ finalization status to move the L2 finalized block head.
61
61
62
62
Upon a new L2 block derived from L1 batch transactions, the OP node does the following:
63
63
64
-
-Process the block in its derivation pipeline and perform various validation checks.
64
+
-Processes the block in its derivation pipeline and performs various validation checks.
65
65
- Before the last step to mark the block finalized, it queries the finality gadget to check if the block is BTC staking-finalized.
66
-
- If yes, mark this L2 block finalized and output it in the derivation pipeline.
66
+
- If yes, marks this L2 block finalized and outputs it in the derivation pipeline.
67
67
68
68
## Implementation
69
69
70
70
We have finished the reference implementation. The codebases include:
71
71
72
72
-[babylon](https://github.com/babylonlabs-io/babylon): Babylon node with BTC staking integration support to OP-stack
73
-
-[finality-provider](https://github.com/babylonlabs-io/finality-provider/tree/base/consumer-chain-support): The finality provider program
74
-
-[btc-staker](https://github.com/babylonlabs-io/btc-staker/tree/base/consumer-chain-support): The BTC staker program
73
+
-[finality-provider](https://github.com/babylonlabs-io/finality-provider/tree/base/consumer-chain-support): The Finality Provider program
74
+
-[btc-staker](https://github.com/babylonlabs-io/btc-staker/tree/base/consumer-chain-support): The BTC Staker program
75
75
-[babylon-contract](https://github.com/babylonlabs-io/babylon-contract): The CosmWasm contracts, including the finality contract for OP-stack chains.
76
76
-[finality-gadget](https://github.com/babylonlabs-io/finality-gadget): The finality gadget program. It can be used by OP node or user as an SDK or run as a standalone daemon program.
77
77
-[optimism](https://github.com/babylonlabs-io/optimism/tree/feat/babylon-rfc): The fork of OP Stack codebase that installs finality-gadget.
@@ -80,7 +80,7 @@ We have finished the reference implementation. The codebases include:
80
80
81
81
We have developed local deployment scripts for the OP stack integration.
82
82
83
-
-https://github.com/Snapchain/babylon-deployment for spinning up a OP stack chain integrating with Babylon Euphrates devnet
83
+
-https://github.com/Snapchain/babylon-deployment for spinning up an OP stack chain integrating with Babylon Euphrates devnet
84
84
-https://github.com/Snapchain/op-chain-deployment for spinning up the entire stack (OP stack chain + ETH L1 + Babylon + Bitcoin)
0 commit comments