erigon-pulse/cmd
Jason Yellick 80530e10a9
Add storage proof support to eth_getProof (#7202)
This PR completes the implementation of `eth_getProof` by adding support
for storage proofs.

Because storage proofs are potentially overlapping, the existing
strategy of simply aggregating all proofs together into a single result
was challenging. Instead, this commit rewires things to introduce a
ProofRetainer, which aggregates proofs and their corresponding nibble
encoded paths in the trie. Once all of the proofs have been aggregated,
the caller requests the proof result, which then iterates over the
aggregated proofs, placing each into the relevant proof array into the
result.

Although there are tests for `eth_getProof` as an RPC and for the new
`ProofRetainer` code, the code coverage for the proof generation over
complex tries is lacking. But, since this is not a new problem I'll plan
to follow up this PR with an additional one adding more coverage into
`turbo/trie`.

---------

Co-authored-by: Jason Yellick <jason@enya.ai>
2023-04-05 03:01:31 +00:00
..
abigen attempt to fix TestGolangBindings (#7041) 2023-03-07 06:14:35 +00:00
bootnode CL lightclient to create memdb in the tmpdir which gets cleaned up on… (#6829) 2023-02-11 20:44:51 +00:00
devnet remove simd lib, because it doesn't work with ghcr.io/goreleaser/goreleaser-cross (which producing release binaries) (#7229) 2023-03-31 05:07:43 +00:00
downloader Downloader main loop wait on close (#7082) 2023-03-13 02:12:30 +00:00
ef-tests-cl Fork-choice graph oriented implementation (#7212) 2023-03-29 16:16:45 +00:00
erigon cmd: initialize config before logger (#6251) 2022-12-09 18:04:47 +07:00
erigon-cl remove lru package alias (#7251) 2023-04-04 04:02:23 +00:00
erigon-el Remove BSC support in Erigon (step 1) (#7246) 2023-04-03 14:46:21 +00:00
erigon-el-mock Added tool for processing for all mainnet beacon blocks (#7095) 2023-03-17 12:37:51 +00:00
erigoncustom Upgrade urfave/cli to v2 (#6047) 2022-11-14 17:33:57 +01:00
evm evm use shared db 2023-04-04 11:32:40 +07:00
hack Drop Default from GenesisBlock* functions (#7147) 2023-03-20 15:44:22 +00:00
integration move aura epoch data from chainDB to auraDB. remove epochReader parameter from consensus interface (#7250) 2023-04-04 03:30:07 +00:00
lightclient remove lru package alias (#7251) 2023-04-04 04:02:23 +00:00
observer e3: read files list from db (#6833) 2023-02-13 05:17:01 +00:00
p2psim Upgrade urfave/cli to v2 (#6047) 2022-11-14 17:33:57 +01:00
pics Break dependency of ethcfg package to core/consensus/etc... move genesis struct to 'types' package (#7206) 2023-03-29 07:27:06 +00:00
prometheus grafana remove datasource uid (#7247) 2023-04-03 11:59:41 +00:00
release fix(release): http-https redirect working (#7176) 2023-03-25 03:37:58 +00:00
rlpdump rename (#1978) 2021-05-20 19:25:53 +01:00
rpcdaemon Add storage proof support to eth_getProof (#7202) 2023-04-05 03:01:31 +00:00
rpctest E3: trace_filter to support of pos (#6909) 2023-02-20 09:42:40 +00:00
sentinel remove lru package alias (#7251) 2023-04-04 04:02:23 +00:00
sentry Break dependency of ethcfg package to core/consensus/etc... move genesis struct to 'types' package (#7206) 2023-03-29 07:27:06 +00:00
state move aura epoch data from chainDB to auraDB. remove epochReader parameter from consensus interface (#7250) 2023-04-04 03:30:07 +00:00
txpool Break dependency of ethcfg package to core/consensus/etc... move genesis struct to 'types' package (#7206) 2023-03-29 07:27:06 +00:00
utils Remove BSC support in Erigon (step 1) (#7246) 2023-04-03 14:46:21 +00:00
verkle enable more linters #954 (#7179) 2023-03-25 05:13:27 +00:00