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
Copy file name to clipboardExpand all lines: proposals/XXXX-parent-bank-hash.md
+8-9Lines changed: 8 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
simd: 'XXXX'
2
+
simd: '0298'
3
3
title: Add Parent Bank Hash to Block Header
4
4
authors:
5
5
- Max Resnick
@@ -11,15 +11,15 @@ created: 2024-03-26
11
11
12
12
## Summary
13
13
14
-
This proposal adds the parent bank hash to the block header and introduces validity constraints to ensure the parent bank hash matches the expected value. This change enhances the security and integrity of the blockchain by providing an additional verification layer for block validity.
14
+
This proposal adds the parent bank hash to the block header and introduces validity constraints to ensure the parent bank hash matches the expected value. This change is part of the broader set of SIMDs neccesary for async execution.
15
15
16
16
## Motivation
17
17
18
-
This proposal is neccesary for the initial rollout of asynchronous execution. Currently validators wait until they have finished executing the block before voting, causing delays on the critical path and getting in the way of longer term roadmap items like multiple concurrent proposers and shorter block times. Async execution requires voting before execution has finished which means that validators cannot include the `BankHash` in their votes and must therefore vote only on the blockID. If we remove `BankHash` from votes without any other changes then execution would not be a part of consensus at all, meaning if there is a bug in the runtime which causes a `BankHash` mismatch it could be difficult to identify quickly and resolve. This proposal moves consensus on the `BankHash` back one slot by adding the `BankHash` of the parent block to the first FEC set of each block so that we still have consensus on execution state eventually.
18
+
This proposal is neccesary for the initial rollout of asynchronous execution. Currently validators wait until they have finished executing the block before voting, causing delays on the critical path and getting in the way of longer term roadmap items like multiple concurrent proposers and shorter block times. Async execution requires voting before execution has finished which means that validators cannot include the `BankHash` in their votes and must therefore vote only on the `blockID`. If we remove `BankHash` from votes without any other changes then execution would not be a part of consensus at all, meaning if there is a bug in the runtime which causes a `BankHash` mismatch it could be difficult to identify quickly and resolve. This proposal moves consensus on the `BankHash` back one slot by adding the `BankHash` of the parent block to the first FEC set of each block so that we still have consensus on execution state eventually.
19
19
20
20
## New Terminology
21
21
22
-
Block Header: This is an umbrella term for information contained in the first FEC set of each block including blockID, parent blockID, parent Bank Hash etc...
22
+
Block Header: This is an umbrella term for information contained in the first FEC set of each block including `blockID`, parent `blockID`, parent Bank Hash etc...
23
23
24
24
## Detailed Design
25
25
@@ -54,10 +54,9 @@ The feature can be activated at any time before or after the Alpenglow rollout.
54
54
55
55
This change will be implemented behind a feature flag and activated through the feature activation program. The activation will require:
56
56
57
-
1. Implementation of the new block header structure
58
-
2. Updates to block validation logic
59
-
3. Updates to block production logic
60
-
4. Updates to block replay logic
57
+
1. Implementation of the new block header structure in shreds and the BlockStore
58
+
2. Updates to block production logic to include the additional information
59
+
3. Updates to block replay logic to verify the BankHash correctly corresponds to the parent's bank state
61
60
62
61
## Alternatives Considered
63
62
@@ -85,4 +84,4 @@ This change is not backwards compatible and requires a feature flag for activati
0 commit comments