Statediffing service v0.0.2 at v1.9.11
Pre-release
Pre-release
This is an internal release to enable us to work with the statediffing code using go modules. This release is rebased on top of master branch go-etheruem v1.9.11. Notice that the release tag has been updated to directly track the base geth version and also provide versioning for the statediffing code.
Changes to the statediff builder:
- Fix major bug in diffing, due to mapping nodes to
common.BytesToHash(nodePath)
- Adjust to properly handle account and storage slot deletions and their side-effects
- Enable filtering of storage leaf keys in storage tries in addition to the address filtering in the state trie
- Enable turning on/off intermediate node inclusion at both the state and storage level
- Represent said deletion events with a new "Removed" diff node type
- Add new builder method for extracting entire state at a given height
- Create new unit tests on mainnet block data
- Expand previous unit tests to include tests for account and storage slot removal and their side-effects, new filtering, and more
Changes to the statediff service and api:
- Fix bug that wouldn't allow
StateDiffAt
requests at block 0 - Statediff builder params are no longer set at node initialization through the CLI, instead subscribers/requesters provide their own params through the ws and http endpoints
- Add new http endpoint (StateTrieAt) that allows requester to fetch all state and storage trie nodes at a provided height
- Clients can specify what other block data to include in the state object payload through the params they provide: block (header, uncles, and tx), receipts, and/or total difficulty