Official Go implementation of the Ethereum protocol
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Martin HS
459bb4a647
core/state: move state log mechanism to a separate layer ( #30569 )
...
This PR moves the logging/tracing-facilities out of `*state.StateDB`,
in to a wrapping struct which implements `vm.StateDB` instead.
In most places, it is a pretty straight-forward change:
- First, hoisting the invocations from state objects up to the statedb.
- Then making the mutation-methods simply return the previous value, so
that the external logging layer could log everything.
Some internal code uses the direct object-accessors to mutate the state,
particularly in testing and in setting up state overrides, which means
that these changes are unobservable for the hooked layer. Thus, configuring
the overrides are not necessarily part of the API we want to publish.
The trickiest part about the layering is that when the selfdestructs are
finally deleted during `Finalise`, there's the possibility that someone
sent some ether to it, which is burnt at that point, and thus needs to
be logged. The hooked layer reaches into the inner layer to figure out
these events.
In package `vm`, the conversion from `state.StateDB + hooks` into a
hooked `vm.StateDB` is performed where needed.
---------
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
4 weeks ago
..
asm
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
bloombits
all: fix typos in comments ( #29873 )
6 months ago
forkid
all: clean up goerli flag and config ( #30289 )
3 months ago
rawdb
all: get rid of custom MaxUint64 and MaxUint64 ( #30636 )
1 month ago
state
core/state: move state log mechanism to a separate layer ( #30569 )
4 weeks ago
stateless
beacon, core, eth, miner: integrate witnesses into production Geth ( #30069 )
2 months ago
tracing
eth/tracers: various fixes ( #30540 )
1 month ago
txpool
beacon/engine, core/txpool, eth/catalyst: add engine_getBlobsV1 API ( #30537 )
1 month ago
types
common: drop BigMin and BigMax, they pollute our dep graph ( #30645 )
1 month ago
vm
core/state: move state log mechanism to a separate layer ( #30569 )
4 weeks ago
.gitignore
Renamed `chain` => `core`
10 years ago
bench_test.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
block_validator.go
build: update to golangci-lint 1.61.0 ( #30587 )
1 month ago
block_validator_test.go
beacon, core, eth, miner: integrate witnesses into production Geth ( #30069 )
2 months ago
blockchain.go
core/state: move state log mechanism to a separate layer ( #30569 )
4 weeks ago
blockchain_insert.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
blockchain_reader.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
blockchain_repair_test.go
core, ethdb/pebble: run pebble in non-sync mode ( #30573 )
1 month ago
blockchain_sethead_test.go
core, ethdb/pebble: run pebble in non-sync mode ( #30573 )
1 month ago
blockchain_snapshot_test.go
core, ethdb/pebble: run pebble in non-sync mode ( #30573 )
1 month ago
blockchain_test.go
all: get rid of custom MaxUint64 and MaxUint64 ( #30636 )
1 month ago
bloom_indexer.go
core: preallocate batch size in bloomIndexer ( #25289 )
2 years ago
chain_indexer.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
chain_indexer_test.go
all: improve some error strings ( #29842 )
6 months ago
chain_makers.go
core: enable EIP-2935 in chain maker ( #30575 )
1 month ago
chain_makers_test.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
dao_test.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
error.go
cmd, core, params, trie: add verkle access witness gas charging ( #29338 )
7 months ago
events.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
evm.go
all: use big.Sign to compare with zero ( #29490 )
8 months ago
gaspool.go
core, miner: revert block gas counter in case of invalid transaction ( #26799 )
2 years ago
gen_genesis.go
core: go fmt ( #29544 )
7 months ago
genesis.go
all: implement EIP-7002 & EIP-7251 ( #30571 )
1 month ago
genesis_alloc.go
all: clean up goerli flag and config ( #30289 )
3 months ago
genesis_test.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
headerchain.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
headerchain_test.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
mkalloc.go
accounts, cmd/geth, core: close opened files ( #29598 )
7 months ago
rlp_test.go
core: move genesis alloc types to core/types ( #29003 )
9 months ago
sender_cacher.go
all: refactor txpool into it's own package in prep for 4844
2 years ago
state_prefetcher.go
all: stateless witness builder and (self-)cross validator ( #29719 )
5 months ago
state_processor.go
core/state: move state log mechanism to a separate layer ( #30569 )
4 weeks ago
state_processor_test.go
all: get rid of custom MaxUint64 and MaxUint64 ( #30636 )
1 month ago
state_transition.go
common: drop BigMin and BigMax, they pollute our dep graph ( #30645 )
1 month ago
stateless.go
beacon, core, eth, miner: integrate witnesses into production Geth ( #30069 )
2 months ago
txindexer.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
txindexer_test.go
core: use in-memory freezer for tests ( #29720 )
7 months ago
types.go
all: implement flat deposit requests encoding ( #30425 )
1 month ago