nimbus-eth1 icon indicating copy to clipboard operation
nimbus-eth1 copied to clipboard

Block witness generation / verification and stateless execution

Open bhartnett opened this issue 1 year ago • 1 comments

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.

bhartnett avatar Jun 08 '24 16:06 bhartnett

Here is the PR which removed this code for the time being: https://github.com/status-im/nimbus-eth1/pull/2295

bhartnett avatar Jun 08 '24 16:06 bhartnett

Issue created for the merkle stateless client task here.

bhartnett avatar Jun 19 '25 15:06 bhartnett