Skip to content

Feature Gate: Accounts Lt Hash #3333

@brooksprumo

Description

@brooksprumo

SIMD

https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0215-accounts-lattice-hash.md

Description

The accounts lt hash is a lattice-based hash of all the accounts. This is an accumulator-style hash of the total account state that can be updated incrementally for each block. The accounts lt hash will enable us to remove the merkle-based accounts hash calculations.

This feature gate does the following:

  • Mixes in the accounts lt hash into the bank hash
  • Removes the Epoch Accounts Hash from the bank hash (and removes its calculation)
  • At feature activation, calculate the accounts lt hash (unless already calculated)
  • At startup, calculate the accounts lt hash (unless already got it from the snapshot)

The accounts lt hash is stored in each bank. During bank freeze, its value is updated.

Feature ID

LtHaSHHsUge7EWTPVrmpuexKz6uVHZXZL6cgJa7W7Zn
LTHasHQX6661DaDD4S6A2TFi6QBuiwXKv66fB1obfHq

Activation Method

Single Core Contributor

Deployment Considerations

  • Partitioned Epoch Rewards should be activated before this one. (Done; now activated on all clusters)
  • A super majority of the stake, and known validators, should already been running with --accounts-db-experimental-accumulator-hash. (Done; now default 'on' in v2.2.14+)
    • Ideally running v2.2.15+, as this includes a fix for leaders.
  • SIMD-267, Feature Gate: Sets rent_epoch to a constant in the VM #5542, must be activated before this one.

Minimum Beta Version

v2.2.6

Minimum Stable Version

v2.2.6

Testnet Activation Epoch

7891

Devnet Activation Epoch

8932

Mainnet-Beta Activation Epoch

8043

Footnotes

  1. testnet transaction signature 38XmxJDKm64Yr3jd4LepryitMNH3V2pGmq7TVCR83MempRSC4vnizFe6CfH1bjs5BkqrcKGuKfFjX8RfMWg53E1C

  2. devnet transaction signature 3HmXQsEJdKvLMsnXRJwWoBYocB2d6YfEgmysFijGennzWbAtoCDmq5bQW1S5ipoKpAExr6o8dWt36hnbgN4K3cY6

  3. mainnet-beta transaction signature 2oMeVCm2icKnVrvPM3qiP5ZowoseVyh56dhdwPg4YRFs2GvDVACDgPrKg5v4NhLM5rRVKjeoKwKzrKKU6qD6Zdp3

Metadata

Metadata

Assignees

Labels

feature-gatePull Request adds or modifies a runtime feature gate

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions