erigontech / erigon

Ethereum implementation on the efficiency frontier https://erigon.gitbook.io
GNU Lesser General Public License v3.0
3.15k stars 1.13k forks source link

experimental: MPT block witness for Erigon 3 #12847

Open antonis19 opened 6 days ago

antonis19 commented 6 days ago

Experimental eth_getWitness RPC call implementation that computes the block witness for the MPT.

This works roughly along the following lines:

This implementation is currently incomplete and still lacks support for the following cases which will be future work:

The code currently works correctly in 85% of the blocks of a small test chain of 161 blocks, for the unsupported cases mentioned above the RPC method will throw a root hash mismatch error.

I am proposing to merge the current PR even though the implementation is incomplete, so that we can incrementally add these features, and to avoid arduous merges or rebasing with main.

awskii commented 2 days ago

@antonis19 do we need https://github.com/erigontech/erigon/pull/12783 then?

antonis19 commented 2 days ago

@awskii nope, just closed that PR.