Closed gballet closed 2 years ago
btw, it's totally possible to reconstruct the tree, my explorer code does it (a bug is always possible, of course)
so either it's a bug in the way rust-verkle reconstructs the tree, or in the way go-verkle produces the proof in that case.
Closing this issue as its a deduplication of #50
I am not yet sure if the error is with
rust-verkle
orgo-verkle
, I'm brain-dumping here.I have a running testnet in which geth produces blocks, and I am verifying them with rust-verkle to make sure that the codebases are fully compatible.
I produce the following proof:
00000000090000000808080a0808080a0804000000bdab5fe8197dfb538e43e93b36bee12dc4b13a59bb88c96e9594b368e139c881a059443990023f4517419b00e286b52c979471c10034969ebb7ab86f7b6892d5c8f712f666f0daab3ac325f329f078f932afff9c7c970be57befaf4c6021576734854706d259fe6cb0e9fa626a8fb708fb03654aca32d003ca4078a07d7ae09d9f2b622162addd376bc0a7dcf01b8caf1e55cd10ab26f3d8f178ba3142183a43e7d77e98b9a74bf6b082682af1a0fd0d94d095c8f5cd97dbaf3c74ab32eaafbd06b9f6a3e317f60800768c7bd92482fa3b51f6cb9456fa9aa5e24a62a4c49faa13851e163c021e1eb096798cdc18ae42c637e8f96c075b627beb18013515f14984d3e47ea1df829209b850a0964e124b4da2605e881e2ba2f5e09a45672e6ca838c5ccd1a2ceb5d5ba629a0bbc8b9e1f6300debb4e6cb495c5faabe61afeb40744253e682305b5822d56ec0fb0d55338dc4fdf49803c3550a8294ebe366fec53a4cd218d32337b6c7c8b3d1d30920e9cc9aea232064ba63aba36c8a4a6e3daa07eb548b47406c09e2b619b6b9f02725ccd01c3e2ae60a461cdbe8033415d610e215070c9927f21a4b0f0c6cdf9122b2d69727d51cc6e9ae6fbcefe97936b87dbd312abd0e84942309a19d0da051f6faf1b953bbfd6b8452737b0e1d64a2f329be67a86bc4759c8430c625e21e5fa8d7f4a229c02cc8115d4f51960d8eae6fb9947169fa5ae5b3a9fbe2783bcb51fdbfbf9a828a469e08c9832d5f647848df3483c34f50e682fa271bad4e866ce04d8dc196a4135c51a534191d835998f6a6c70974a2e6444c9f85b8f314c510c929cc700ab58e7544babb1360cc2a5a7438e25a4b97603284fb60925486ffd7a8885e9bfe6ecfc0dc00ed9eddedfe96e78e60db0bec41442c042c826326c760e9f3cf6dff85b8a1cf319b9e984ef0c96ee8253e6e9762dc4d466d615304ec658d7397ddf2f6bf97a52ef70905c953be6746a18
Note that there are 9 "extension status" descriptors.
The associated (keys, values) are shown below. There are 10 different stems, but two stems use the same proof of absence (path
0x69...
). All the blocks that don't verify seem to have the same feature (there's 500+ of them so far, only checked a dozen).It's quite hard to see why the verification in
rust-verkle
fails, would you have some insights on how to figure out if this is indeed the problem?