-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
account_hash_ignore_slot behaves incorrectly at genesis #32800
Comments
Discussed this with @jeffwashington -- Since this has no impact on devnet, testnet, or mainnet, no immediate action required. It only affects new clusters, but is only a cosmetic issue. Resolving this would probably require large changes to ledger bootstrapping. Thus, the best way forward is to declare this behavior "correct" :) Once the feature gate is activated, and the legacy behavior is removed, this will automatically fix itself. |
@jeffwashington On further investigation, the problem goes deeper: Both hash versions are shared in the genesis slots. I'm not sure whether it's deterministic, but the pattern seems to be the following: Native programs and sysvars use the new hash version, and features use the old hash version. I'll report if I can match this behavior in Firedancer. |
OK, pretty sure it's non-deterministic. I'll try to fix this upstream. |
Genesis bin is corrupted, see solana-labs/solana#32800
fyi #33692 |
Fixes solana-labs#32800 rebase debug-master: save this bincode helper, empty for error case debug-master: lock down public keys debug-master: save this base64 fix invoke context update bash scripts add json printer remove single threads debug-master: add printer debug-master: hashes debug-master: new logging debug-master: save stuff away debug-master: save core debug-master: save updates debug-master: dump per slot Fix build
Fixes solana-labs#32800 rebase debug-master: save this bincode helper, empty for error case debug-master: lock down public keys debug-master: save this base64 fix invoke context update bash scripts add json printer remove single threads debug-master: add printer debug-master: hashes debug-master: new logging debug-master: save stuff away debug-master: save core debug-master: save updates debug-master: dump per slot Fix build
Fixes solana-labs#32800 rebase debug-master: save this bincode helper, empty for error case debug-master: lock down public keys debug-master: save this base64 fix invoke context update bash scripts add json printer remove single threads debug-master: add printer debug-master: hashes debug-master: new logging debug-master: save stuff away debug-master: save core debug-master: save updates debug-master: dump per slot Fix build
Fixes solana-labs#32800 rebase debug-master: save this bincode helper, empty for error case debug-master: lock down public keys debug-master: save this base64 fix invoke context update bash scripts add json printer remove single threads debug-master: add printer debug-master: hashes debug-master: new logging debug-master: save stuff away debug-master: save core debug-master: save updates debug-master: dump per slot Fix build
Problem
Feature
account_hash_ignore_slot
removes the slot field from the BLAKE3 accounts hash.On Solana Labs v1.17 test ledgers, this feature is activated by default (meaning there is a genesis account for the sysvar).
At slot 0, the bank's accounts delta hash is constructed from the hashes of all genesis accounts.
But even though this feature is active at the genesis slot, it uses the old method (before feature activation) to compute the genesis account hashes.
Proposed Solution
The text was updated successfully, but these errors were encountered: