1
0
Fork 0
forked from forks/go-ethereum
go-ethereum-modded-tocallarg/core
Guillaume Ballet af9a3a1a03
core/state, core/vm: update stateless gas costs to follow the verkle-gen-7 testnet (#31014)
Adding values to the witness introduces a new class of issues for
computing gas: if there is not enough gas to cover adding an item to the
witness, then the item should not be added to the witness.

The problem happens when several items are added together, and that
process runs out of gas. The witness gas computation needs a way to
signal that not enough gas was provided. These values can not be
hardcoded, however, as they are context dependent, i.e. two calls to the
same function with the same parameters can give two different results.

The approach is to return both the gas that was actually consumed, and
the gas that was necessary. If the values don't match, then a witness
update OOG'd. The caller should then charge the `consumed` value
(remaining gas will be 0) and error out.

Why not return a boolean instead of the wanted value? Because when
several items are touched, we want to distinguish which item lacked gas.

---------

Signed-off-by: Guillaume Ballet <3272758+gballet@users.noreply.github.com>
2025-05-15 20:43:52 +08:00
..
filtermaps logs(indexer)Clean up log format in head index progress messages (#31761) 2025-05-05 10:09:58 +08:00
forkid params: add prague timestamp for mainnet (#31535) 2025-04-17 10:46:00 +02:00
history core: initialize history pruning in BlockChain (#31636) 2025-04-15 14:32:46 +02:00
rawdb all: create global hasher pool (#31769) 2025-05-09 13:52:40 +08:00
state core/state, core/vm: update stateless gas costs to follow the verkle-gen-7 testnet (#31014) 2025-05-15 20:43:52 +08:00
stateless beacon, core, eth, miner: integrate witnesses into production Geth (#30069) 2024-09-20 16:43:42 +03:00
tracing core/tracing: stringer for gas and nonce change reasons (#31234) 2025-02-28 12:53:56 +01:00
txpool core/txpool/legacypool: fix data race of pricedList access (#31758) 2025-05-04 10:16:33 +08:00
types core/types: reduce allocations in tx.EffectiveGasTip (#31598) 2025-05-09 12:56:00 +02:00
vm core/state, core/vm: update stateless gas costs to follow the verkle-gen-7 testnet (#31014) 2025-05-15 20:43:52 +08:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core, ethdb: introduce database sync function (#31703) 2025-05-08 19:10:26 +08:00
block_validator.go core/types: create block's bloom by merging receipts' bloom (#31129) 2025-02-13 18:05:58 +01:00
block_validator_test.go core: initialize history pruning in BlockChain (#31636) 2025-04-15 14:32:46 +02:00
blockchain.go core: use unix time to check fork readiness (#31800) 2025-05-14 09:26:08 +08:00
blockchain_insert.go metrics: add chain/mgasps to track gas usage rate (#31753) 2025-05-10 08:27:27 +08:00
blockchain_reader.go core: reduce load on txindexer from API (#31752) 2025-05-05 10:07:55 +08:00
blockchain_repair_test.go core, ethdb: introduce database sync function (#31703) 2025-05-08 19:10:26 +08:00
blockchain_sethead_test.go core, ethdb: introduce database sync function (#31703) 2025-05-08 19:10:26 +08:00
blockchain_snapshot_test.go core, ethdb: introduce database sync function (#31703) 2025-05-08 19:10:26 +08:00
blockchain_test.go core, ethdb: introduce database sync function (#31703) 2025-05-08 19:10:26 +08:00
chain_makers.go core: fail execution if system call fails to execute (#31639) 2025-04-19 13:42:54 +02:00
chain_makers_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
dao_test.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
error.go core, eth/downloader: implement pruning mode sync (#31414) 2025-04-03 15:16:35 +02:00
events.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
evm.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
gaspool.go core, miner: revert block gas counter in case of invalid transaction (#26799) 2023-03-07 05:23:52 -05:00
gen_genesis.go core: go fmt (#29544) 2024-04-16 15:42:16 +03:00
genesis.go core: apply overrides to mainnet chainconfig (#31733) 2025-04-29 08:29:56 +02:00
genesis_alloc.go params: add hoodi testnet definition (#31406) 2025-03-18 12:07:49 +01:00
genesis_test.go params: add hoodi testnet definition (#31406) 2025-03-18 12:07:49 +01:00
headerchain.go core, ethdb: introduce database sync function (#31703) 2025-05-08 19:10:26 +08:00
headerchain_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
mkalloc.go accounts, cmd/geth, core: close opened files (#29598) 2024-04-30 15:47:21 +02:00
rlp_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
sender_cacher.go core: use sync.Once for SenderCacher initialization (#31029) 2025-01-16 14:36:45 +01:00
state_prefetcher.go core: implement in-block prefetcher (#31557) 2025-05-08 22:28:16 +08:00
state_processor.go core: fail execution if system call fails to execute (#31639) 2025-04-19 13:42:54 +02:00
state_processor_test.go ethclient: allow passing AuthorizationList to calls (#31198) 2025-04-23 21:01:03 +02:00
state_transition.go core/state, core/vm: update stateless gas costs to follow the verkle-gen-7 testnet (#31014) 2025-05-15 20:43:52 +08:00
stateless.go cmd/evm: improve block/state test runner (#30633) 2024-12-02 15:18:02 +01:00
txindexer.go core: reduce load on txindexer from API (#31752) 2025-05-05 10:07:55 +08:00
txindexer_test.go core: reduce load on txindexer from API (#31752) 2025-05-05 10:07:55 +08:00
types.go all: implement flat deposit requests encoding (#30425) 2024-10-09 12:24:58 +02:00
verkle_witness_test.go core/tracing: state journal wrapper (#30441) 2025-02-05 13:58:25 +01:00