-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial implementation of era1 + export + verify #1998
Conversation
I'm just curious if you verify the checksums do not match? I actually haven't checked any impls to verify if this is actually an issue in practice or just theory. |
Yes, the checksums do not match. My era1 verification code can however perfectly read (snappy decode works fine) the geth created era1 files and verify them (accumulator creation, txRoot, ommersHash and receiptsRoot checks). |
Okay fantastic. I never really came up with an appropriate solution to the checksum issue. I think it is still valuable to provide per-client because of how fast it can be verified. But it is good to know the accumulator is in agreement. |
392015b
to
c82f570
Compare
One more issue was noticed when decoding the later geth era1 files, fixed here: status-im/nim-eth#672 |
c82f570
to
8f4b8d9
Compare
I've noticed another issue when decoding the edit: Upon reading the era1 spec better, it seems it is specified that way: |
How much slower is The thing which should match is the decoded, not encoded, version. |
76adf66
to
f78f20c
Compare
This first version is ready to be merged if status-im/nimbus-eth2#5866 gets in. Has been tested manually by exporting some of the biggest (in data size) eras. And also the latest, incomplete era. Exporting of era1 files does take very long (due to the current architecture) and is thus not that practical to use for the full range. |
Initial implementation of era1 + export and verify command in the existing eth_data_exporter.
+ clean-up of some comments.
+ fix bug for reading last (incomplete) Era1 file
f78f20c
to
43bafc3
Compare
This has now also been tested on an era1 file generated with the latest (corrected) version in go-ethereum (ethereum/go-ethereum#28959). |
Initial implementation of era1 + export and verify command in the existing eth_data_exporter.
Implementation of era1 file format as currently described in: ethereum/go-ethereum#26621
Main issue currently is: 3c67911#diff-1948da0f3a7cfa79607319be10ae226dae3c9d9bbbd6ff35faea52df948c571cR40-R43
Other TODOs:
Regarding the exportEra1 command: The export happens by requesting the block data over EL json-rpc API. So it is not directly integrated in Nimbus. This is done because it is difficult to currently get Nimbus EL to sync until merge point on mainnet, and with this architecture it is/should be compatible with other clients. Downside is that it will obviously be slower than directly accessing the db.