py-evm
py-evm copied to clipboard
Create scripts/gethimport.py
What was wrong?
Nothing was wrong, per say, but it wasn't previously possible to get a full-syncing trinity node this far:

How was it fixed?
I wrote a script with a few helpful subcommands which can be used to create a trinity database, bootstrapping off an already-synced geth node.
To-Do
- [x] Why is the build failing while building snappy? (needed for decoding ancient blocks)
- [x] Appease lint and such
- [ ] Break into multiple PRs
- [ ] Remove the code which iterates over the state trie? It's too slow to be practical except for very early blocks.
- [ ] Support simulating a full sync, starting from genesis, by also importing the genesis state when creating a trinity database. This depends on moving the EIP1085 code over from trinity -> py-evm, so it probably doesn't belong in this PR.
- [ ] Figure out how to test any of this without committing large example geth databases to the repo.
- [ ] Clean up commit history
- [ ] Add entry to the release notes
- [x] Find a cute animal pic
- [x] Add a command to compact the database. If the database is not compacted it will compact itself, freezing your process for an uncomfortably long amount of time.
- [ ] Document how to use this script to build a trinity database to reproduce the above screenshot
- [x] Remove
import_block_flame.svg - [x] Apply some bug fixes I made on my server, but not locally.
- [x] Rebase onto #1891
- [ ] Make sure this is modular enough that a wrapper script in trinity could call it
Cute Animal Picture
A hermit crab swapping out shells:
