Skip to content

Commit 1eec90c

Browse files
committed
simd number
1 parent 2484bdb commit 1eec90c

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

proposals/XXXX-parent-bank-hash.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
simd: 'XXXX'
2+
simd: '0298'
33
title: Add Parent Bank Hash to Block Header
44
authors:
55
- Max Resnick
@@ -11,15 +11,15 @@ created: 2024-03-26
1111

1212
## Summary
1313

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.
1515

1616
## Motivation
1717

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.
1919

2020
## New Terminology
2121

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...
2323

2424
## Detailed Design
2525

@@ -54,10 +54,9 @@ The feature can be activated at any time before or after the Alpenglow rollout.
5454

5555
This change will be implemented behind a feature flag and activated through the feature activation program. The activation will require:
5656

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
6160

6261
## Alternatives Considered
6362

@@ -85,4 +84,4 @@ This change is not backwards compatible and requires a feature flag for activati
8584
4. Update block production logic
8685
5. Add tests for new validation rules
8786
6. Deploy to testnet
88-
7. Activate feature on mainnet-beta
87+
7. Activate feature on mainnet-beta

0 commit comments

Comments
 (0)