mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-20 13:44:31 +00:00
## Why this should be merged Allows for a drop-in replacement of `snapshot.Tree` (i.e. one that uses block hashes instead of state roots). This is intended as a temporary solution while we investigate having the state root affected by the block hash to remove path ambiguity. ## How this works Introduction of: 1. `state.SnapshotTree` interface to match methods required on `snapshot.Tree` as used by `state.StateDB`; and 2. `stateconf` package for variadic options plumbed by `StateDB.Commit()` through to `SnapshotTree.Update()`. Although variadic (to maintain function call-signature compatibility) only the `stateconf.WithUpdatePayload(any)` is expected to be used. Recipients of the options can access the payload with `stateconf.ExtractUpdatePayload()`. ## How this was tested Unit test demonstrating propagation of `stateconf.UpdateOption` payload. |
||
|---|---|---|
| .. | ||
| context.go | ||
| conversion.go | ||
| difflayer.go | ||
| difflayer_test.go | ||
| disklayer.go | ||
| disklayer_test.go | ||
| generate.go | ||
| generate_test.go | ||
| holdable_iterator.go | ||
| holdable_iterator_test.go | ||
| iterator.go | ||
| iterator_binary.go | ||
| iterator_fast.go | ||
| iterator_test.go | ||
| journal.go | ||
| metrics.go | ||
| snapshot.go | ||
| snapshot_test.go | ||
| utils.go | ||