mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-12 01:41:36 +00:00
core/state: fix test
This commit is contained in:
parent
3b1338e980
commit
91b3543b61
2 changed files with 16 additions and 10 deletions
|
|
@ -32,21 +32,21 @@ package state
|
|||
// with mutated states from preceding transactions in the block.
|
||||
//
|
||||
// - Tracking Layer: Finally, the readerTracker wraps the execution reader to
|
||||
// capture all state accesses made during a specific transaction. These individual
|
||||
// access are subsequently merged to construct a comprehensive access list
|
||||
// capture all state reads made during a specific transaction. These individual
|
||||
// reads are subsequently merged to construct a comprehensive access list
|
||||
// for the entire block.
|
||||
//
|
||||
// The architecture can be illustrated by the diagram below:
|
||||
|
||||
// [ Block Level Access List ] <────────────────┐
|
||||
// ▲ │ (Merge)
|
||||
// [ Block Level Read List ] <────────────────┐
|
||||
// ▲ │ ( Aggregate )
|
||||
// │ │
|
||||
// ┌───────┴───────┐ ┌───────┴───────┐
|
||||
// │ readerTracker │ │ readerTracker │ (Access Tracking)
|
||||
// │ readerTracker │ │ readerTracker │ (State read tracking)
|
||||
// └───────┬───────┘ └───────┬───────┘
|
||||
// │ │
|
||||
// ┌──────────────┴──────────────┐ ┌──────────────┴──────────────┐
|
||||
// │ ReaderWithBlockLevelAL │ │ ReaderWithBlockLevelAL │ (Unified View)
|
||||
// │ ReaderWithBlockLevelAL │ │ ReaderWithBlockLevelAL │
|
||||
// │ (Pre-state + Mutations) │ │ (Pre-state + Mutations) │
|
||||
// └──────────────┬──────────────┘ └──────────────┬──────────────┘
|
||||
// │ │
|
||||
|
|
@ -62,6 +62,12 @@ package state
|
|||
// │ (State & Contract Code) │
|
||||
// └─────────────────────────────┘
|
||||
|
||||
// Note: The block producer, which is responsible for generating the block
|
||||
// along with the block-level access list, does not maintain the internal
|
||||
// hierarchy (e.g., PrefetchStateReader or ReaderWithBlockLevelAL).
|
||||
// Instead, it directly utilizes the readerTracker, wrapped around the
|
||||
// base reader, to construct the access list.
|
||||
|
||||
import (
|
||||
"maps"
|
||||
"sync"
|
||||
|
|
|
|||
|
|
@ -164,12 +164,12 @@ type noopCodeReader struct{}
|
|||
|
||||
func (r *noopCodeReader) Has(addr common.Address, codeHash common.Hash) bool { return false }
|
||||
|
||||
func (r *noopCodeReader) Code(addr common.Address, codeHash common.Hash) ([]byte, error) {
|
||||
return nil, nil
|
||||
func (r *noopCodeReader) Code(addr common.Address, codeHash common.Hash) []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *noopCodeReader) CodeSize(addr common.Address, codeHash common.Hash) (int, error) {
|
||||
return 0, nil
|
||||
func (r *noopCodeReader) CodeSize(addr common.Address, codeHash common.Hash) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func TestReaderWithTracker(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue