nimbus-eth1
nimbus-eth1 copied to clipboard
Block witness generation / verification and stateless execution
Prior work in Nimbus implemented both generation and verification of block witnesses based on the specs here: https://github.com/ethereum/portal-network-specs/blob/01a49a8c9bf08121ecde1b9270a6f2f679cb2568/witness.md
A backup of the stateless code is in this branch for future reference: https://github.com/status-im/nimbus-eth1/tree/stateless-backup. At some point we may want to re-enable these features.
The AccountCache / AccountLedger holds a data structure called the WitnessCache which records every touched account and storage slot for each block. After executing a block of transactions the code supports getting the keys and building a block witness from these keys.
The idea is that these generated witnesses would be shared by block producers and used by stateless clients in order to verify blocks without having to store the state locally.
Here is the PR which removed this code for the time being: https://github.com/status-im/nimbus-eth1/pull/2295
Issue created for the merkle stateless client task here.