Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

all: struct-based live chain tracing #29189

Merged
merged 156 commits into from
Mar 22, 2024
Merged

Conversation

s1na
Copy link
Contributor

@s1na s1na commented Mar 7, 2024

This is an alternative to #27629. It refactors the whole logger infrastructure. Previously internally we were passing around the EVMLogger interface and tracers had to implement that interface. This PR changes it so that we pass pointer to a struct around internally. Tracer constructors will have to return an instance of the *tracing.Hooks struct. This necessitated some changes to the API. This is a breaking change to native tracers. But now it will be perfect and the interface will never change again (famous last words 😄).

Huge shutout to @maoueh!

@s1na
Copy link
Contributor Author

s1na commented Mar 20, 2024

As for testing: @maoueh confirmed that their regression test suite passes after they ported the firehose tracer to the new structure. Also I've been running the supply tracer s1na#21 for a week on mainnet. I can report there have been no errors and the supply diffs seem to be accurate with the low resolution data shown on ultrasound.money website.

// ToTransaction converts the arguments to a transaction.
// This assumes that setDefaults has been called.
func (args *TransactionArgs) ToTransaction() *types.Transaction {
return args.toTransaction()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, you can just export the method instead of adding this wrapper.

@s1na
Copy link
Contributor Author

s1na commented Mar 22, 2024

@fjl I managed to drop the directory package. Moved it into eth/tracers. I think that makes sense because thats the definition of a tracer that the API requires.

Copy link
Contributor

@fjl fjl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@fjl fjl merged commit 064f37d into ethereum:master Mar 22, 2024
3 checks passed
@fjl fjl added this to the 1.14.0 milestone Mar 22, 2024
shaspitz added a commit to primev/mev-commit-geth that referenced this pull request Apr 23, 2024
commit 94579932b18931115f28aa7f87f02450bda084c9
Author: Mario Vega <[email protected]>
Date:   Tue Apr 23 07:10:24 2024 -0600

    core/vm: fix Prague contracts (#29612)

    core/vm: fix prague contracts

commit 256d4b099cf540ba99181d6e746d4a1eaebef054
Author: Felföldi Zsolt <[email protected]>
Date:   Tue Apr 23 13:31:32 2024 +0200

    beacon/light: request finality update explicitly when necessary (#29567)

    This PR adds an extra mechanism to sync.HeadSync that tries to retrieve the latest finality update from every server each time it sends an optimistic update in a new epoch (unless we already have a validated finality update attested in the same epoch).

    Note that this is not necessary and does not happen if the new finality update is delivered before the optimistic update. The spec only mandates light_client_finality_update events when a new epoch is finalized. If the chain does not finalize for a while then we might need an explicit request that returns a finality proof that proves the same finality epoch from the latest attested epoch.

commit b2b0e1da8cac279bf0466885d1abdc5d93402f41
Author: haoran <[email protected]>
Date:   Tue Apr 23 18:09:42 2024 +0800

    all: fix various typos (#29600)

    * core: fix typo

    * rpc: fix typo

    * snap: fix typo

    * trie: fix typo

    * main: fix typo

    * abi: fix typo

    * main: fix field comment for basicOp

commit 709e0b399712f113a907936b9f73da8c33afd3f1
Author: Aaron Chen <[email protected]>
Date:   Tue Apr 23 18:08:02 2024 +0800

    metrics: remove librato (#29624)

commit 0e380ddaf7d9ccba87d3a3688a3fb419b562451c
Author: HAOYUatHZ <[email protected]>
Date:   Tue Apr 23 18:06:25 2024 +0800

    miner: fix typos (#29625)

commit 853e0c23f36579423dbac8b4bcb9eeedb53daa9b
Author: Martin HS <[email protected]>
Date:   Tue Apr 23 10:33:36 2024 +0200

    eth/catalyst, trie/pathdb: fix flaky tests (#29571)

    This change fixes three flaky tests `TestEth2AssembleBlock`,`TestEth2NewBlock`, `TestEth2PrepareAndGetPayload` and `TestDisable`.

    ---------

    Co-authored-by: Gary Rong <[email protected]>

commit acd1eaae2c5006dd7f5ae42455bc7f61e5471013
Author: rjl493456442 <[email protected]>
Date:   Tue Apr 23 01:00:42 2024 +0800

    core: remove bad block checks (#29609)

commit e6689fe090cc56cb3f0c1948c5e5356ea1d20c1e
Author: Felföldi Zsolt <[email protected]>
Date:   Mon Apr 22 13:19:42 2024 +0200

    beacon/light/sync: print error log if checkpoint retrieval fails (#29532)

    Co-authored-by: Felix Lange <[email protected]>

commit 1ec7af261223d6dad9370ee8263f86347b190bab
Author: Ryan Schneider <[email protected]>
Date:   Mon Apr 22 03:17:06 2024 -0700

    eth: Add eth_blobBaseFee RPC and blob fields to eth_feeHistory (#29140)

    Co-authored-by: lightclient <[email protected]>
    Co-authored-by: Felix Lange <[email protected]>

commit c2dfe7a0c7321615e2524f1c677266de26d30d05
Author: Péter Szilágyi <[email protected]>
Date:   Mon Apr 22 12:56:54 2024 +0300

    go.mod: update golang/x repos (#29604)

commit 82b0dec7135b281c1b03064d50959dc992c2f94f
Author: Felix Lange <[email protected]>
Date:   Mon Apr 22 10:31:17 2024 +0200

    eth/filters: remove support for pending logs (#29574)

    This change removes support for subscribing to pending logs.

    "Pending logs" were always an odd feature, because it can never be fully reliable. When support for it was added many years ago, the intention was for this to be used by wallet apps to show the 'potential future token balance' of accounts, i.e. as a way of notifying the user of incoming transfers before they were mined. In order to generate the pending logs, the node must pick a subset of all public mempool transactions, execute them in the EVM, and then dispatch the resulting logs to API consumers.

commit ad3d8cb12a368ea901a2b36b0708480065235308
Author: xiaodong <[email protected]>
Date:   Mon Apr 22 16:13:03 2024 +0800

    cmd/geth: remove unused parameter (#29602)

commit 28ccb2bbf82af487da856d459d4daaa7c0d9b064
Author: Aaron Chen <[email protected]>
Date:   Sun Apr 21 17:14:13 2024 +0800

    build: fix string compare for SortFunc (#29595)

commit 98f504f69fad798c03ad43a1fc40f243d2fc8215
Author: bugmaker9371 <[email protected]>
Date:   Sun Apr 21 17:13:36 2024 +0800

    p2p/discover: fix test error messages (#29592)

commit 2e06fbd409d64a400c19d26d7af383f868e34f11
Author: Marius van der Wijden <[email protected]>
Date:   Fri Apr 19 13:46:43 2024 +0200

    core/vm: add KZG benchmark (#29583)

commit cce879b71b772ca9df83ada499127d6ca8e7c8f6
Author: Mario Vega <[email protected]>
Date:   Fri Apr 19 02:07:52 2024 -0600

    tests: define cancun-to-prague at 15K chainconig (#29557)

    tests: add cancun->prague config

commit 81349ff6e53a5bcb7adee210274171c22ae64053
Author: ids <[email protected]>
Date:   Fri Apr 19 15:58:14 2024 +0800

    eth/catalyst: fix typo (#29580)

commit 823719b9e1b72174cd8245ae9e6f6f7d7072a8d6
Author: Martin HS <[email protected]>
Date:   Thu Apr 18 09:08:25 2024 +0200

    core/vm: enable bls-precompiles for Prague (#29552)

    enables the bls-contracts on the "Prague" config, so that the testing-team can activate them to make tests.

commit b5902cf595b3d83f6fa96b5a501213daec169f15
Author: rjl493456442 <[email protected]>
Date:   Thu Apr 18 14:48:50 2024 +0800

    core: remove unused fields (#29569)

commit 5f9514530818c4436238d4740111bd699470f0f1
Author: ucwong <[email protected]>
Date:   Thu Apr 18 07:21:23 2024 +0100

    eth/ethconfig: regenerate autogen files (#29559)

    eth/ethconfig/gen_config.go : go generate fix

commit 0da69e84c0d481e42f60cecc1562c208525117eb
Author: Felföldi Zsolt <[email protected]>
Date:   Wed Apr 17 17:07:28 2024 +0200

    beacon/blsync: proceed with empty finalized hash if proof is not expected soon (#29449)

    * beacon/blsync: proceed with empty finalized hash if proof is not expected soon

    * Update beacon/blsync/block_sync.go

    Co-authored-by: Felix Lange <[email protected]>

    * beacon/blsync: fixed linter warning

    * Update beacon/blsync/block_sync.go

    Co-authored-by: lightclient <[email protected]>

    ---------

    Co-authored-by: Felix Lange <[email protected]>
    Co-authored-by: lightclient <[email protected]>

commit 1e9bf2a09ed3d82ac1aa69750a556f3ce127721d
Author: Aaron Chen <[email protected]>
Date:   Wed Apr 17 19:55:31 2024 +0800

    core/state: fix bug in statedb.Copy and remove unnecessary preallocation (#29563)

    This change removes an unnecessary preallocation and fixes a flaw with no-op copies of some parts of the statedb

commit 74e8d2da97aacc2589d39584f6af74cb9d62ee3f
Author: Aaron Chen <[email protected]>
Date:   Wed Apr 17 14:24:30 2024 +0800

    trie/utils: simplify codeChunkIndex (#29480)

    minor simplification to the code

commit 27de7dec658839722c8d84963d0a9b0c09a25d25
Author: rjl493456442 <[email protected]>
Date:   Wed Apr 17 13:52:08 2024 +0800

    ethdb/pebble: print warning log if pebble performance degrades (#29478)

commit 92da96b7d5400f006774e15d154f5fa8ea1ebd9f
Author: Devon Bear <[email protected]>
Date:   Tue Apr 16 08:57:57 2024 -0400

    core/vm: refactor push-functions to use `min` builtin (#29515)

    * optimize-push

    * revert push1 change

    * Update instructions.go

    * core/vm: go format

    * core/vm: fix nit

    ---------

    Co-authored-by: Felix Lange <[email protected]>
    Co-authored-by: Martin Holst Swende <[email protected]>
    Co-authored-by: Péter Szilágyi <[email protected]>

commit 0a5102881975120b5d321e40c325edba778314d8
Author: persmor <[email protected]>
Date:   Tue Apr 16 21:44:00 2024 +0900

    all: fix various typos (#29542)

    * core/rawdb: fix typos

    * accounts/abi: fix typos

    * metrics: fix typo

    * beacon: fix typo

    * crypto: fix typo

    * rpc: fix typo

    * rpc: fix typo

commit 5ffd940b7e67ba7bb3810a9ed234b5dc45c23cdb
Author: ucwong <[email protected]>
Date:   Tue Apr 16 13:42:16 2024 +0100

    core: go fmt (#29544)

commit 65e32d47ea336b56d6c4bcfe212c11e8f38032bf
Author: ucwong <[email protected]>
Date:   Tue Apr 16 13:32:50 2024 +0100

    go.mod: clean up indirection (#29553)

commit 72f69366de1d09fbe4738982fec9948ed5a69892
Author: Chris Ziogas <[email protected]>
Date:   Tue Apr 16 15:31:19 2024 +0300

    c.d/utils: rename vmtrace.config to vmtrace.jsonconfig (#29554)

    rename vmtrace.config to vmtrace.jsonconfig

    for consinstency with t8ntool trace.jsonconfig

commit fadd9d8b81324b0d4405de2837ac9939b2cef6c5
Author: law wang <[email protected]>
Date:   Tue Apr 16 17:21:20 2024 +0800

    eth/catalyst: fix log (#29549)

    log:output the correct variable

    Co-authored-by: steven <[email protected]>

commit f437307877f4c8e423f787de5c9636b985d322f5
Author: Marius van der Wijden <[email protected]>
Date:   Tue Apr 16 10:53:43 2024 +0200

    core/vm: update gascosts for BLS12-381 + use gnark instead of kilic (#29441)

    This PR updates the bls contracts from our internal implementation which is an unmaintained fork of the kilic library to the gnark-crypto library that is actively maintained by consensys.

    It also updates the gas-costs according to the EIP

commit 71c78bf56da29dc8b85cddc9da09eabf18131ee8
Author: Darioush Jalali <[email protected]>
Date:   Tue Apr 16 01:38:25 2024 -0700

    rpc: close Clients in tests (#29512)

commit e4ecaf89cf5ee6233094f738c4978020fe63e237
Author: Marcus Baldassarre <[email protected]>
Date:   Tue Apr 16 04:37:18 2024 -0400

    rpc: implement Unwrap() for wsHandshakeError (#29522)

commit d3c4466edd43fff9ac30162073795d8776070c5d
Author: rjl493456442 <[email protected]>
Date:   Tue Apr 16 15:05:36 2024 +0800

    core, eth/protocols/snap, trie: fix cause for snap-sync corruption, implement gentrie (#29313)

    This pull request defines a gentrie for snap sync purpose.

    The stackTrie is used to generate the merkle tree nodes upon receiving a state batch. Several additional options have been added into stackTrie to handle incomplete states (either missing states before or after).

    In this pull request, these options have been relocated from stackTrie to genTrie, which serves as a wrapper for stackTrie specifically for snap sync purposes.

    Further, the logic for managing incomplete state has been enhanced in this change. Originally, there are two cases handled:

    -    boundary node filtering
    -    internal (covered by extension node) node clearing

    This changes adds one more:

    - Clearing leftover nodes on the boundaries.

    This feature is necessary if there are leftover trie nodes in database, otherwise node inconsistency may break the state healing.

commit ef5ac3fb7ae5bf41a465cc32845631f01ff823ef
Author: Martin HS <[email protected]>
Date:   Mon Apr 15 17:35:35 2024 +0200

    eth/filters: enforce topic-limit early on filter criterias (#29535)

    This PR adds a limit of 1000 to the "inner" topics in a filter-criteria

commit 67422e2a565784edaeade7d3bb747dc13f6863cf
Author: Seungbae Yu <[email protected]>
Date:   Mon Apr 15 21:58:17 2024 +0900

    p2p/nat: fix typos in comments (#29536)

commit 84b12df09e0a67e99a3943f26ccf1b6e6c19a85a
Author: Martin HS <[email protected]>
Date:   Mon Apr 15 14:54:51 2024 +0200

    core/rawdb: add sanity-limit to header accessor (#29534)

commit 3705acd1a97b2cc9bbb092b326a9d8cfbc42037a
Author: yudrywet <[email protected]>
Date:   Mon Apr 15 14:40:42 2024 +0800

    cmd/utils: fix typo in comment (#29528)

commit b179b7b8e7c9cac7ac21da385dbedc9f24ce3755
Author: Abirdcfly <[email protected]>
Date:   Mon Apr 15 14:34:31 2024 +0800

    all: remove duplicate word in comments (#29531)

    This change removes some duplicate words in in comments

commit bd91810462187086b2715fd343aa427e181d89a2
Author: forestkeeperio.eth <[email protected]>
Date:   Thu Apr 11 05:06:49 2024 -0600

    cmd: fix some typos in readmes (#29405)

    * Update README.md

    updated for readability

    * Update rules.md

    Updated for readability and typos

commit b9010f3e872492c1513c853cb5f3f8ce03eff2b5
Author: Newt6611 <[email protected]>
Date:   Thu Apr 11 16:30:15 2024 +0800

    rpc: fix comment grammar (#29507)

commit 9dcf8aae4742cc4220065489a5bdcf045c398616
Author: rjl493456442 <[email protected]>
Date:   Wed Apr 10 17:02:45 2024 +0800

    eth/protocols/snap: skip retrieval for completed storages (#29378)

    * eth/protocols/snap: skip retrieval for completed storages

    * eth/protocols/snap: address comments from peter

    * eth/protocols/snap: add comments

commit 34aac1d7562bf141fe6da1d4f3cdea8819e7b23b
Author: Aaron Chen <[email protected]>
Date:   Tue Apr 9 18:14:30 2024 +0800

    all: use big.Sign to compare with zero (#29490)

commit f202dfdd478467ffa44217fe414ec8c31a793dff
Author: Sina M <[email protected]>
Date:   Tue Apr 9 12:12:02 2024 +0200

    core/tracing: add changelog (#29388)

    Co-authored-by: Matthieu Vachon <[email protected]>

commit 0bbd88bda04698c457077318ae8442e2611ea3b0
Author: Bin <[email protected]>
Date:   Tue Apr 9 14:51:54 2024 +0800

    all: use timer instead of time.After in loops, to avoid memleaks (#29241)

    time.After is equivalent to NewTimer(d).C, and does not call Stop if the timer is no longer needed. This can cause memory leaks. This change changes many such occations to use NewTimer instead, and calling Stop once the timer is no longer needed.

commit 1126c6d8a57f1b7d9af0b39ac52f6eeb435f66f9
Author: rjl493456442 <[email protected]>
Date:   Tue Apr 9 14:37:18 2024 +0800

    core: add txlookup lock (#29343)

    This change adds a lock to the transaction lookup cache, to avoid the case where reorgs make the lookup return inconsistent results.

commit 3caf617dcdee9fc1d2e9070bfdba370b20231884
Author: cui <[email protected]>
Date:   Tue Apr 9 14:33:36 2024 +0800

    core/vm: move bls precompiles to correct addresses (#29445)

    core: make bls precompiled contract use the correct address as in eip

commit f447de936c31e6a64470f3c102da85f245fe9640
Author: Mohanson <[email protected]>
Date:   Tue Apr 9 14:27:13 2024 +0800

    rlp: replace reflect.PtrTo with reflect.PointerTo (#29488)

    reflect.PtrTo has been deprecated and superseded by reflect.PointerTo

commit 70bf94c34e4a6320c865a90cbfeec38a0aef7378
Author: Aaron Chen <[email protected]>
Date:   Tue Apr 9 14:22:53 2024 +0800

    internal, signer/core: replace path.Join with filepath.Join (#29489)

commit c170cc0ab0a1f60adcde80d0af8e3050ee19da93
Author: rjl493456442 <[email protected]>
Date:   Mon Apr 8 21:48:37 2024 +0800

    core/vm: reject contract creation if the storage is non-empty (#28912)

    This change implements EIP-7610, which rejects the contract deployment if the destination has non-empty storage.

commit 3c75c64e6bbf64f842c6f725a595713262c2f8fe
Author: seayyyy <[email protected]>
Date:   Mon Apr 8 19:02:56 2024 +0800

    core: fix typo (#29438)

commit c3465cb5ba94e8ee4153319416db9484406084ee
Author: Sina M <[email protected]>
Date:   Mon Apr 8 13:01:22 2024 +0200

    core: fix dev mode genesis difficulty (#29469)

    The dev mode is nowadays in Merge-mode from genesis, hence the difficulty of the first block should be zero.

commit ed4bc7f27ba071403484240fa71b4878c4ca9756
Author: Aaron Chen <[email protected]>
Date:   Mon Apr 8 18:59:17 2024 +0800

    all: replace fmt.Errorf() with errors.New() if no param required (#29472)

commit cfc7d06cc91122f44d09592ddc616fb189bc4ca4
Author: Aaron Chen <[email protected]>
Date:   Mon Apr 8 18:58:37 2024 +0800

    signer/core/apitypes: use slices.Contains (#29474)

commit 0dc09da7db47de4a9a9eb6ea335e2e367fae6015
Author: imalasong <[email protected]>
Date:   Mon Apr 8 17:29:49 2024 +0800

    all: replace path.Join with filepath.Join (#29479)

    * core/rawdb: replace file.Join with filepath.Join

    Signed-off-by: xiaochangbai <[email protected]>

    * internal/build: replace file.Join with filepath.Join

    Signed-off-by: xiaochangbai <[email protected]>

    ---------

    Signed-off-by: xiaochangbai <[email protected]>

commit 7aafad2233b676b7beaf56e89f82360704d669d0
Author: Martin HS <[email protected]>
Date:   Sat Apr 6 12:22:55 2024 +0200

    core/vm: better error-info for vm errors (#29354)

commit 8876868bb831cef307d7e72c6848bd0943ba1e24
Author: Roberto Bayardo <[email protected]>
Date:   Sat Apr 6 03:17:41 2024 -0700

    log: default JSON log handler should log all verbosity levels (#29471)

    Co-authored-by: lightclient <[email protected]>

commit ccb76c01d7b1ce4d77d2bb309419cc78f42659ca
Author: Aaron Chen <[email protected]>
Date:   Sat Apr 6 18:16:25 2024 +0800

    eth/tracers: use slices.Contains (#29461)

commit 74995bf8a169bb9d07333e56623ea039b8664710
Author: Aaron Chen <[email protected]>
Date:   Sat Apr 6 18:05:06 2024 +0800

    all: use slices.Contains (#29459)

    Co-authored-by: Felix Lange <[email protected]>

commit cc348a601ee816d6c0e2c4d7246c810f3b61e798
Author: georgehao <[email protected]>
Date:   Sat Apr 6 17:09:30 2024 +0800

    common/prque: fix godoc comments (#29460)

    Co-authored-by: Felix Lange <[email protected]>

commit 4458905f261d5d9ba5fda3d664f9bb80346ab404
Author: Martin HS <[email protected]>
Date:   Fri Apr 5 21:01:39 2024 +0200

    signer/core/apitypes: fix apitypes breakage due to bitrotted PR (#29470)

commit 7ee9a6e89f59cee21b5852f5f6ffa2bcfc05a25f
Author: Martin HS <[email protected]>
Date:   Fri Apr 5 19:29:44 2024 +0200

    signer: implement blob txs sendtxargs, enable blobtx-signing (#28976)

    This change makes it possible to sign blob transactions

commit 35fcf9c52b806d2a7eba0da4f65c97975200a2b2
Author: Felföldi Zsolt <[email protected]>
Date:   Thu Apr 4 16:30:27 2024 +0200

    beacon/types: enforce fork order based on known forks list (#29380)

    Co-authored-by: Felix Lange <[email protected]>

commit 15ff066a24964ea16742420abecc7e4ae5e9bce0
Author: Aaron Chen <[email protected]>
Date:   Thu Apr 4 21:52:38 2024 +0800

    trie/utils: change Div+Mod to DivMod (#29413)

    * trie/utils: change Div+Mod to DivMod

    * trie/utils: gofmt

commit e3bdd84e9881041e6004ebc3e78c1211d58ebe83
Author: Péter Szilágyi <[email protected]>
Date:   Thu Apr 4 16:51:10 2024 +0300

    core/txpool: repair the limbo Billy too on unclean shutdowns (#29451)

commit a851e39cbecf116ef2dc64f0b37b0300dc762931
Author: lmittmann <[email protected]>
Date:   Thu Apr 4 15:50:31 2024 +0200

    core/types: use new atomic types in caches (#29411)

    * use generic atomic types in tx caches

    * use generic atomic types in block caches

    * eth/catalyst: avoid copying tx in test

    ---------

    Co-authored-by: lmittmann <[email protected]>
    Co-authored-by: Felix Lange <[email protected]>

commit 9cb8de87037be7c38343b2f84c534887e7525c5d
Author: lightclient <[email protected]>
Date:   Thu Apr 4 06:26:10 2024 -0400

    internal/debug: convert legacy log level value in debug_verbosity (#29356)

commit 9dfe728909bc7ff0709c69d3f090804d2516652c
Author: cui <[email protected]>
Date:   Thu Apr 4 18:24:49 2024 +0800

    p2p/discover: using slices.Contains (#29395)

commit 8bd03341689c992d633f3988b3a7fbc15aec75e6
Author: guangwu <[email protected]>
Date:   Thu Apr 4 18:20:54 2024 +0800

    crypto/signify: close tmp key file in test (#29444)

commit 2e0c5e05ba355a722eb6eb9bc338de4949eee20d
Author: cui <[email protected]>
Date:   Thu Apr 4 18:19:48 2024 +0800

    p2p/dnsdisc: using clear builtin func (#29418)

    Co-authored-by: Felix Lange <[email protected]>

commit eea0acc54959df779189dbfc972578ae56ac4d33
Author: cui <[email protected]>
Date:   Thu Apr 4 17:59:54 2024 +0800

    log: using maps.Clone (#29392)

commit 6b39e9236c278d9c4722505bb88a769fd21ca4b8
Author: cui <[email protected]>
Date:   Thu Apr 4 17:58:44 2024 +0800

    beacon/engine: using slices.Contains (#29396)

commit 1f8f1377e62d2ca8aba04f0df7772ed665662bf7
Author: Marius Kjærstad <[email protected]>
Date:   Thu Apr 4 11:00:27 2024 +0200

    build: upgrade -dlgo version to Go 1.22.2 (#29448)

commit 7bb3fb1481acbffd91afe19f802c29b1ae6ea60c
Author: cui <[email protected]>
Date:   Wed Apr 3 14:08:52 2024 +0800

    eth: simplify peer counting logic (#29420)

commit dfb3d46098520e90811c6ada3f8e142789c25832
Author: Ng Wei Han <[email protected]>
Date:   Wed Apr 3 03:18:28 2024 +0800

    p2p: add inbound and outbound peers metric (#29424)

commit a83e57666d5a691883ab2890b63bda1b2c3e1c64
Author: cui <[email protected]>
Date:   Wed Apr 3 03:17:34 2024 +0800

    eth/fetcher: using slices.Contains (#29383)

commit 12dcc162d05e87b6492c065458f2d7310b3cf791
Author: cui <[email protected]>
Date:   Tue Apr 2 21:45:25 2024 +0800

    common/lru: use clear builtin (#29399)

commit ab6419ccd8b11e041e27f8865f59ab111a2c6161
Author: cui <[email protected]>
Date:   Tue Apr 2 20:56:12 2024 +0800

    core/state: use maps.Clone (#29365)

    core: using maps.Clone

commit fe0bf325a68504292f910240f8da6243defffa71
Author: rjl493456442 <[email protected]>
Date:   Tue Apr 2 20:25:06 2024 +0800

    cmd/evm: reopen the statedb for dumping (#29437)

commit 0bd03dbc5597175d79067270c0710604cba489cf
Author: cui <[email protected]>
Date:   Tue Apr 2 17:25:57 2024 +0800

    eth/filter: using atomic.Pointer instead of atomic.Value (#29435)

commit e63f992fed51d5a576ea2890cd7eb3000c9e6884
Author: Miles Chen <[email protected]>
Date:   Tue Apr 2 17:25:19 2024 +0800

    rpc: fix ipc max path size (#29385)

commit 31e63fcf66188504e0b1941059394cf5df49bc17
Author: cui <[email protected]>
Date:   Tue Apr 2 16:47:15 2024 +0800

    rlp: using maps.Clone (#29434)

commit fde90443a4af0c8a0c0d7bdaf833a223de560cb3
Author: carehabit <[email protected]>
Date:   Tue Apr 2 15:05:53 2024 +0800

    log: replace the outdated link (#29412)

commit 8c5576b1ac89473c7ec15c9b03d1ca02e9499dcc
Author: Delweng <[email protected]>
Date:   Mon Apr 1 20:53:56 2024 +0800

    eth/tracers: fix base fee and set blob fee in tests (#29376)

    Signed-off-by: jsvisa <[email protected]>
    Co-authored-by: Sina Mahmoodi <[email protected]>

commit 6c9f7029823cac48291558aa0a76cbd653830f51
Author: cui <[email protected]>
Date:   Mon Apr 1 11:45:56 2024 +0800

    core/types: using maps.Clone (#29398)

commit c39d00e316943fa613f10ceff262482ea3aa2c65
Author: cui <[email protected]>
Date:   Mon Apr 1 11:42:50 2024 +0800

    trie: using maps.Clone (#29419)

commit a3829178af6cec64d6def9131b9340a3328cc4fc
Author: Brandon Liu <[email protected]>
Date:   Fri Mar 29 00:35:40 2024 +0800

    eth/tracers/js: consistent name for method receivers (#29375)

commit 0183c7ad8225f82e2c23b9bc6329c19d7f0269c5
Author: cui <[email protected]>
Date:   Thu Mar 28 21:09:21 2024 +0800

    eth/tracers/logger: using maps.Equal (#29384)

    Co-authored-by: Felix Lange <[email protected]>

commit 7481398a2471f52de277627cc473190f0c2569c8
Author: cui <[email protected]>
Date:   Thu Mar 28 19:13:41 2024 +0800

    core/state: using slices.Clone (#29366)

commit 3754a6cc922f88f50ed0479cfb836676936384d3
Author: cui <[email protected]>
Date:   Thu Mar 28 19:07:38 2024 +0800

    p2p/dnsdisc: using maps.Copy (#29377)

commit 3b77e0ff4bcce8c0c9f18f23625a6fe69d17bbed
Author: rjl493456442 <[email protected]>
Date:   Thu Mar 28 19:06:57 2024 +0800

    core: remove unused code (#29381)

commit 7aba6511b0cbe910a0db9d345487d2c6ef301e53
Author: cui <[email protected]>
Date:   Thu Mar 28 19:06:44 2024 +0800

    ethdb/dbtest: replace reflect.DeepEqual with slices.Equal (#29382)

commit 767b00b0b514771a663f3362dd0310fc28d40c25
Author: Sina M <[email protected]>
Date:   Wed Mar 27 16:12:57 2024 +0100

    t8ntool: add optional call frames to json logger (#29353)

    Adds a flag `--trace.callframes` to t8n which will log info when entering or exiting a call frame in addition to the execution steps.

    ---------

    Co-authored-by: Mario Vega <[email protected]>

commit fa5019de196274afd2426d300cab01d60b2a0c56
Author: crazeteam <[email protected]>
Date:   Wed Mar 27 20:16:29 2024 +0800

    accounts/keystore: fix typos in comments (#29336)

commit 8bb8f23bb25ab69cfb7065d7dbb3fd6e5f6227a8
Author: Pawan Dhananjay <[email protected]>
Date:   Wed Mar 27 17:45:57 2024 +0530

    beacon/engine: Fix json param name in GetClientVersionV1 (#29351)

    Fix json param name

commit 304879da20200f6912d241ccd471e140d3487093
Author: rjl493456442 <[email protected]>
Date:   Wed Mar 27 09:35:33 2024 +0800

    eth/protocols/snap: check storage root existence for hash scheme (#29341)

commit da7469e5c44feec120555c8f697f75b94b2884bb
Author: Guillaume Ballet <[email protected]>
Date:   Tue Mar 26 21:25:41 2024 +0100

    core: add an end-to-end verkle test (#29262)

    core: add a simple verkle test

    triedb, core: skip hash comparison in verkle

    core: remove legacy daoFork logic in verkle chain maker

    fix: nil pointer in tests

    triedb/pathdb: add blob hex

    core: less defensive

    Co-authored-by: Ignacio Hagopian <[email protected]>
    Co-authored-by: Martin HS <[email protected]>
    Co-authored-by: Gary Rong <[email protected]>

commit 723b1e36ad6a9e998f06f74cc8b11d51635c6402
Author: Aaron Chen <[email protected]>
Date:   Wed Mar 27 04:01:28 2024 +0800

    all: fix mismatched names in comments (#29348)

    * all: fix mismatched names in comments

    * metrics: fix mismatched name in UpdateIfGt

commit 58a3e2f1802eb7dd8e893a6a7be7f009edeeffd8
Author: jwasinger <[email protected]>
Date:   Tue Mar 26 07:21:39 2024 -0700

    core/state: perform updates before deletions when mutating tries (#29201)

    This addresses an edge-case (detailed in the code comment) where the computation of the intermediate trie root would force the unnecessary resolution of a hash node. The change makes it so that when we process changes from a block, we first process trie-updates and afterwards process trie-deletions.

commit 1dd898c24e85980a3ba9fcc203f00a3ea2f060d6
Author: Martin HS <[email protected]>
Date:   Tue Mar 26 15:04:15 2024 +0100

    tests: fix panic via state test runner using json logger (#29349)

    * tests: fix panic via state test runner using json logger

    * tests: also invoke OnTxEnd

commit f2a6ac17b255fe037bf528bc8368e61051cd4df4
Author: Aaron Chen <[email protected]>
Date:   Tue Mar 26 19:26:44 2024 +0800

    eth/catalyst: fix flaw in withdrawal-gathering in simulated beacon (#29344)

    return after reaching maxCount

commit 738b5a586e329965539877434b695bb61015d4c7
Author: Matthieu Vachon <[email protected]>
Date:   Tue Mar 26 00:01:13 2024 -0400

    Removes some leftover `err` check (#29339)

    Before, `ToMessage` was returning both the resulting `Message` and an error while no error is returned now.

    Those error checks were probably leftover from the past.

commit 100c0f47debad7924acefd48382bd799b67693cf
Author: Felföldi Zsolt <[email protected]>
Date:   Mon Mar 25 20:28:55 2024 +0100

    beacon/blsync: fixed blsync command line params (#29335)

commit eda9cb7b362b02c9c4550d77385997ed86981757
Author: Felix Lange <[email protected]>
Date:   Mon Mar 25 20:27:50 2024 +0100

    beacon/light/api: improve handling of event stream setup failures (#29308)

    The StartHeadListener method will only be called once. So it can't just make one attempt
    to connect to the eventsource endpoint, it has to keep trying. Note that once the stream
    is established, the eventsource implementation itself will keep retrying.

commit 5cea7a6230a6f070dd484aa6d883605f148445a4
Author: Roberto Bayardo <[email protected]>
Date:   Mon Mar 25 10:03:44 2024 -0700

    ethclient/simulated: clean up Node resources when simulated backend is closed (#29316)

commit 14cc967d1964d3366252193cadd4bfcb4c927ac1
Author: Martin HS <[email protected]>
Date:   Mon Mar 25 07:50:18 2024 +0100

    all: remove dependency on golang.org/exp (#29314)

    This change includes a leftovers from https://github.com/ethereum/go-ethereum/pull/29307
    - using the [new `slices` package](https://go.dev/doc/go1.21#slices) and
    - using the [new `cmp.Ordered`](https://go.dev/doc/go1.21#cmp) instead of exp `constraints.Ordered`

commit ae470044878f15beb67eb7e66c117c9ad48f3a7b
Author: deterclosed <[email protected]>
Date:   Mon Mar 25 10:16:44 2024 +0800

    eth: fix typo (#29320)

commit 6f1fb0c29ff25318e688c15581d0c28dcefb75ce
Author: Nathan <[email protected]>
Date:   Sun Mar 24 20:51:34 2024 +0800

    metrics/influxdb: skip float64-precision-dependent tests on arm64 (#29047)

    metrics/influxdb: fix failed cases caused by float64 precision on arm64

commit 064f37d6f67a012eea0bf8d410346fb1684004b4
Author: Sina M <[email protected]>
Date:   Fri Mar 22 18:53:53 2024 +0100

    eth/tracers: live chain tracing with hooks (#29189)

    Here we add a Go API for running tracing plugins within the main block import process.

    As an advanced user of geth, you can now create a Go file in eth/tracers/live/, and within
    that file register your custom tracer implementation. Then recompile geth and select your tracer
    on the command line. Hooks defined in the tracer will run whenever a block is processed.

    The hook system is defined in package core/tracing. It uses a struct with callbacks, instead of
    requiring an interface, for several reasons:

    - We plan to keep this API stable long-term. The core/tracing hook API does not depend on
      on deep geth internals.
    - There are a lot of hooks, and tracers will only need some of them. Using a struct allows you
       to implement only the hooks you want to actually use.

    All existing tracers in eth/tracers/native have been rewritten to use the new hook system.

    This change breaks compatibility with the vm.EVMLogger interface that we used to have.
    If you are a user of vm.EVMLogger, please migrate to core/tracing, and sorry for breaking
    your stuff. But we just couldn't have both the old and new tracing APIs coexist in the EVM.

    ---------

    Co-authored-by: Matthieu Vachon <[email protected]>
    Co-authored-by: Delweng <[email protected]>
    Co-authored-by: Martin HS <[email protected]>

commit 38eb8b3e20bf237a78fa57e84fa63c2d05a44635
Author: George Ma <[email protected]>
Date:   Fri Mar 22 20:29:12 2024 +0800

    all: fix docstrings (#29311)

commit d9bde37ac3a5a9569a0c0a35f8c872932d640802
Author: Martin HS <[email protected]>
Date:   Fri Mar 22 13:17:59 2024 +0100

    log: use native log/slog instead of golang/exp (#29302)

commit 6490d9897ab00290d188b1893d1874e977fb4c66
Author: rjl493456442 <[email protected]>
Date:   Fri Mar 22 20:12:10 2024 +0800

    cmd, triedb: implement history inspection (#29267)

    This pull request introduces a database tool for inspecting the state history.
    It can be used for either account history or storage slot history, within a
    specific block range.

    The state output format can be chosen either with

    - the "rlp-encoded" values (those inserted into the merkle trie)
    - the "rlp-decoded" value (the raw state value)

    The latter one needs --raw flag.

commit f46fe62c5d1d25ce0e9869ecbaf0e5722d2bc2f5
Author: Darioush Jalali <[email protected]>
Date:   Fri Mar 22 04:38:24 2024 -0700

    triedb/hashdb: Avoid setting db.cleans on Close (#29309)

commit 14eb8967be7acc54c5dc9a416151ac45c01251b6
Author: Martin HS <[email protected]>
Date:   Thu Mar 21 13:50:13 2024 +0100

    all: use min/max/clear from go1.21 (#29307)

commit bca6c407098fefc757c263ae2da6aeff719e17ca
Author: Felix Lange <[email protected]>
Date:   Wed Mar 20 19:22:44 2024 +0100

    beacon/blsync: support for deneb fork (#29180)

    This adds support for the Deneb beacon chain fork, and fork handling
    in general, to the beacon chain light client implementation.

    Co-authored-by: Zsolt Felfoldi <[email protected]>

commit 04bf1c802ffe9dfc34c34b3e666ee15e96b4a203
Author: Martin HS <[email protected]>
Date:   Wed Mar 20 15:22:52 2024 +0100

    eth/protocols/snap, internal/testlog: fix dataraces (#29301)

commit 8f7fbdfedcbaca2a2bffb00badc75c03d58052ec
Author: Marius van der Wijden <[email protected]>
Date:   Wed Mar 20 14:58:47 2024 +0100

    core: refactor consensus interface (#29283)

    This PR modifies the consensus interface to wrap the body fields.

commit 0444388c746f99186e086f8ea733ea45e91918ac
Author: Aaron Chen <[email protected]>
Date:   Wed Mar 20 21:51:05 2024 +0800

    core/txpool/blobpool: calculate log1.125 faster (#29300)

commit 78c102dec5f1c7b5256c466df4421b4818bfe0e6
Author: rjl493456442 <[email protected]>
Date:   Wed Mar 20 20:11:30 2024 +0800

    core: skip the check the statefulness of head block in repair (#29245)

commit 22ac46cbdbd0601d2c59a74bb29fb0ceb34dddaa
Author: imalasong <[email protected]>
Date:   Wed Mar 20 20:09:46 2024 +0800

    Makefile: update PHONY directive (#29296)

commit 9a7e6ce6f593d1284512032d5757a85a15e6d636
Author: Martin HS <[email protected]>
Date:   Wed Mar 20 10:38:30 2024 +0100

    cmd/evm: fix flag-mismatch from #29290 (#29298)

commit de08f3d62552531f3fb2fc3a64a4bfdb962900eb
Author: Martin HS <[email protected]>
Date:   Wed Mar 20 09:12:58 2024 +0100

    cmd/evm: make staterunner always output stateroot to stderr (#29290)

    This changes makes it so that when `evm statetest` executes, regardless of whether `--json` is specified or not, the stateroot is printed on `stderr` as a `jsonl` line. This enables speedier execution of testcases in goevmlab, in cases where full execution op-by-op is not required.

commit 0ceac8d00e3067b6bb7ddc79670383295ddf7d6d
Author: georgehao <[email protected]>
Date:   Wed Mar 20 15:51:45 2024 +0800

    metrics: fix docstrings (#29279)

commit 45b88abbde92eab99bab6ac1e55aa88bccccfe80
Author: miles <[email protected]>
Date:   Wed Mar 20 15:49:38 2024 +0800

    all: fix typos (#29288)

commit 6f929a0762be92130588779a8535ed0e3fc58d87
Author: zgfzgf <[email protected]>
Date:   Wed Mar 20 15:46:50 2024 +0800

    core/asm: minor code-clarification (#29293)

commit 4c1b57856f0f5ebccb6edb83ab755ab114500078
Author: buddho <[email protected]>
Date:   Tue Mar 19 22:23:55 2024 +0800

    miner: modify header before checking time-based fields (#29242)

    The Prepare-method of consensus engine might modify the time-field in a header, so it should be called prior to checks that rely on it

commit eda9c7e36f120a3e4feb3dfa9472084e88e35054
Author: Tien Nguyen <[email protected]>
Date:   Tue Mar 19 20:05:31 2024 +0700

    accounts/abi/bind: check invalid chainID first (#29275)

commit 6b3d4d068ac720de1c2edab7d1e1a1311811d747
Author: bitcoin-lightning <[email protected]>
Date:   Tue Mar 19 21:05:06 2024 +0800

    beacon/light/sync: fix typo in comment (#29256)

commit ac6060a4c61b99743173c8c88ea1f8f68f6cdbfc
Author: Aaron Chen <[email protected]>
Date:   Tue Mar 19 18:25:30 2024 +0800

    log: replace tmp with bytes.Buffer.AvailableBuffer (#29287)

commit 15eb9773f9b99c29f3cd17be4e4bbd1bf1b48bb7
Author: rjl493456442 <[email protected]>
Date:   Tue Mar 19 10:50:08 2024 +0800

    triedb/pathdb: improve tests (#29278)

commit ab49f228ad6f37ba78be66b34aa5fee740245f57
Author: Martin HS <[email protected]>
Date:   Mon Mar 18 17:36:50 2024 +0100

    all: update to go version 1.22.1 (#28946)

    Since Go 1.22 has deprecated certain elliptic curve operations, this PR removes
    references to the affected functions and replaces them with a custom implementation
    in package crypto. This causes backwards-incompatible changes in some places.

    ---------

    Co-authored-by: Marius van der Wijden <[email protected]>
    Co-authored-by: Felix Lange <[email protected]>

commit c6119247271220ce89e76e1b1b2eaeaaa8fbd9d1
Author: Martin HS <[email protected]>
Date:   Mon Mar 18 08:13:55 2024 +0100

    go.mod: update protobuf (#29270)

commit ba2dd9385c2a51134e520083dc732787a813b107
Author: SanYe <[email protected]>
Date:   Fri Mar 15 17:46:22 2024 +0800

    accounts/abi/bind: remove unused err set and check (#29269)

    accounts/abi: remove unused err set and check

commit 40cac1d0e2cb37e769c3928cc477efb41124bb60
Author: Martin HS <[email protected]>
Date:   Fri Mar 15 10:44:41 2024 +0100

    eth/catalyst: prettier output on bad new payloads (#29259)

    When we receive a bad NewPayload, we currently emit a lot of data to the logging facilities. This PR makes it so we print less data.

commit 95715fdb0317dc7d6ebbec702fe78257380c95a1
Author: shivhg <[email protected]>
Date:   Fri Mar 15 14:37:47 2024 +0530

    eth/downloader, graphql: fix typos (#29243)

commit cffb7c8604d299ac21e0a9714205cc7b52faa501
Author: Haotian <[email protected]>
Date:   Fri Mar 15 16:14:31 2024 +0800

    params: use the same variable name as EIP-4788 (#29195)

    In https://eips.ethereum.org/EIPS/eip-4788 the name `BEACON_ROOTS_ADDRESS` is used. This change makes geth use the same variable name to avoid confusion.

commit d28adb61bf8445f9de58612155c308e5ac3b197a
Author: John Xu <[email protected]>
Date:   Thu Mar 14 21:38:11 2024 +0800

    cmd/emv/internal/t8ntool: fix shadowing of `excessBlobGas` (#29263)

    fix(t8n): unexpected `excessBlobGas` shadowed

commit 20d3e0ac06ef2ad2f5f6500402edc5b6f0bf5b7c
Author: Ng Wei Han <[email protected]>
Date:   Thu Mar 14 17:32:49 2024 +0800

    cmd/devp2p: fix decoding of raw RLP ENR attributes (#29257)

commit 3c26ffeb2968907f68d41faab757dacdcb280941
Author: Haotian <[email protected]>
Date:   Thu Mar 14 07:26:46 2024 +0800

    eth/catalyst: remove error return in delayPayloadImport (#29043)

    Co-authored-by: tmelhao <[email protected]>

commit 57308beecf7040391aee6c3102587063501f6825
Author: Bin <[email protected]>
Date:   Thu Mar 14 07:25:42 2024 +0800

    go.mod: update golang.org/x/crypto from v0.17.0 to v0.21.0 (#29228)

commit f3d18d64bf4c026740ee6c8ae8949a8c19391b49
Author: Martin HS <[email protected]>
Date:   Wed Mar 13 18:12:23 2024 +0100

    tests, appveyor: only execute one in four permutations on CI (#29220)

    tests, appveyor: only execute one in four permutations when flag -short is used

    Also enable -short flag on all appveyor builds (also ubuntu)

commit c170fa277cbf2a9faf9f35665f1ba8f34f94062a
Author: rjl493456442 <[email protected]>
Date:   Wed Mar 13 19:39:30 2024 +0800

    core: improve chain rewinding mechanism (#29196)

    * core: improve chain rewinding mechanism

    * core: address comment

    * core: periodically print progress log

    * core: address comments

    * core: fix comment

    * core: fix rewinding in path

    * core: fix beyondRoot condition

    * core: polish code

    * core: polish code

    * core: extend code comment

    * core: stop rewinding if chain is gapped or genesis is reached

    * core: fix broken tests

commit b80643b7370075262fd6dfad7ae8aa77710e2ef1
Author: Justin Dhillon <[email protected]>
Date:   Tue Mar 12 23:54:40 2024 -0700

    accounts/usbwallet, common/bitutil: fix broken links in docs (#29078)

    fixes some links in documentation

commit d5bacfa4def558a4c7b261c1a9fbfdbfc295e491
Author: Martin HS <[email protected]>
Date:   Wed Mar 13 07:51:46 2024 +0100

    crypto/kz4844: pass blobs by ref (#29050)

    This change makes use of the following underlying changes to the kzg-libraries in order to avoid passing large things on the stack:

    - c-kzg: https://github.com/ethereum/c-kzg-4844/pull/393 and
    - go-kzg: https://github.com/crate-crypto/go-kzg-4844/pull/63

commit eff424cc302152f3914e3f9c8b49efe92e33353f
Author: Sina M <[email protected]>
Date:   Wed Mar 13 07:40:02 2024 +0100

    eth/tracers: fix concurrency issue for JS-tracing a block (#29238)

    This change fixes a concurrency-issue where JS-tracers were accessing the block-ctx GetHash function in a in parallel, which is not safe.

commit 758fce71fab5289e3af711b1fa21a541c77cc435
Author: Felix Lange <[email protected]>
Date:   Tue Mar 12 19:23:24 2024 +0100

    p2p: fix race in dialScheduler (#29235)

    Co-authored-by: Stefan <[email protected]>

commit 6c76b813df6d53b86fac17471e9a31afd20c481e
Author: Marius van der Wijden <[email protected]>
Date:   Tue Mar 12 14:29:35 2024 +0100

    miner: add additional log (#29193)

    Adds a debug level log if the payload building failed for whatever reason

commit 4bd55a064ccc804127de09397273d16966fe8a37
Author: Aaron Chen <[email protected]>
Date:   Tue Mar 12 20:05:31 2024 +0800

    common/math: copy result in Exp (#29233)

    common/math: does not change base parameter

commit 99bbbc0277e34fc3a31512a345ba20874ae98e18
Author: Shiming Zhang <[email protected]>
Date:   Tue Mar 12 19:12:37 2024 +0800

    internal/build, rpc: add missing HTTP response body Close() calls (#29223)

    Co-authored-by: Felix Lange <[email protected]>

commit 89cefe240fd22b01e413786e18ad35263c93a61f
Author: Bin <[email protected]>
Date:   Tue Mar 12 17:00:34 2024 +0800

    cmd: use package filepath over path for file system operations (#29227)

    Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.

    Package path implements utility routines for manipulating slash-separated paths.

    The path package should only be used for paths separated by forward slashes, such as the paths in URLs

commit 4e1116f9c513961b62dff146a7cce069fe7a36b0
Author: San Ye <[email protected]>
Date:   Tue Mar 12 16:49:53 2024 +0800

     crypto/bn256/cloudflare: fix noescape-directive (#29222)

commit ebf9e11af2ff701d0961623e817d37b421b96802
Author: guangwu <[email protected]>
Date:   Mon Mar 11 18:17:16 2024 +0800

    beacon/light/request: fix typos (#29216)

commit fa4ade8ecb4e37687b464fdab6986c01cc1e50c2
Author: Sina Mahmoodi <[email protected]>
Date:   Mon Mar 11 11:05:48 2024 +0100

    core: fix deprecation comment for GenesisAccount (#29218)

    core: fix deprecation comment

commit 00c21128ef62be54bef798f3220f79ae2297be66
Author: Lee Bousfield <[email protected]>
Date:   Mon Mar 11 05:05:17 2024 -0500

    core/txpool/blobpool: return ErrAlreadyKnown for duplicate txs (#29210)

    Signed-off-by: Lee Bousfield <[email protected]>

commit b393ad8d29fe002fe6c0329a09d7715b00030c79
Author: Péter Szilágyi <[email protected]>
Date:   Mon Mar 11 10:06:57 2024 +0200

    cmd, core, metrics: always report expensive metrics (#29191)

    * cmd, core, metrics: always report expensive metrics

    * core, metrics: report block processing metrics as resetting timer

    * metrics: update reporter tests

commit 3dc549b3d75af790e78ef2d7f63a947efb9b0e95
Author: Kero <[email protected]>
Date:   Mon Mar 11 03:01:26 2024 +0800

    p2p/simulations/adapters: fix error messages in TestTCPPipeBidirections (#29207)

commit e31709db6570e302557a9bccd681034ea0dcc246
Author: Haotian <[email protected]>
Date:   Fri Mar 8 19:15:52 2024 +0800

    console: fix the wrong error msg of datadir testcase (#29183)

commit d35c8f0c25d3b5781e016252625b582c9553601a
Author: colin <[email protected]>
Date:   Fri Mar 8 19:13:46 2024 +0800

    ethclient/gethclient: add blob transaction fields in toCallArg (#29198)

commit c41105ce80f12f60ec4bf6c65c4c59c6bf4a86e7
Author: Sebastian Stammler <[email protected]>
Date:   Fri Mar 8 00:01:31 2024 +0100

    log: add Handler getter to Logger interface (#28793)

    log: Add Handler getter to Logger interface

commit cd490608e344e388edd7ef3dd323968d706ccf8c
Author: hyhnet <[email protected]>
Date:   Fri Mar 8 05:56:19 2024 +0800

    all: fix typos in comments (#29186)

commit 3bebabbd036d4f550e32bb20a92bf7da6e6a2797
Author: cuinix <[email protected]>
Date:   Fri Mar 8 05:25:08 2024 +0800

    accounts: remove redundant string conversion (#29184)

commit aadcb886753079d419f966a3bc990f708f8d1c3b
Author: Felföldi Zsolt <[email protected]>
Date:   Wed Mar 6 17:50:22 2024 +0100

    cmd/blsync, beacon/light: beacon chain light client (#28822)

    Here we add a beacon chain light client for use by geth.

    Geth can now be configured to run against a beacon chain API endpoint,
    without pointing a CL to it. To set this up, use the `--beacon.api` flag. Information
    provided by the beacon chain is verified, i.e. geth does not blindly trust the beacon
    API endpoint in this mode. The root of trust are the beacon chain 'sync committees'.

    The configured beacon API endpoint must provide light client data. At this time, only
    Lodestar and Nimbus provide the necessary APIs.

    There is also a standalone tool, cmd/blsync, which uses the beacon chain light client
    to drive any EL implementation via its engine API.

    ---------

    Co-authored-by: Felix Lange <[email protected]>

commit d8e0807da22eb922539d15b0d5d01ccdd58b1267
Author: Marius van der Wijden <[email protected]>
Date:   Wed Mar 6 13:45:03 2024 +0100

    miner: refactor the miner, make the pending block on demand (#28623)

    * miner: untangle miner

    * miner: use common.hash instead of *types.header

    * cmd/geth: deprecate --mine

    * eth: get rid of most miner api

    * console: get rid of coinbase in welcome message

    * miner/stress: get rid of the miner stress test

    * eth: get rid of miner.setEtherbase

    * ethstats: remove miner and hashrate flags

    * ethstats: remove miner and hashrate flags

    * cmd: rename pendingBlockProducer to miner.pending.feeRecipient flag

    * miner: use pendingFeeRecipient instead of etherbase

    * miner: add mutex to protect the pending block

    * miner: add mutex to protect the pending block

    * eth: get rid of etherbase mentions

    * miner: no need to lock the coinbase

    * eth, miner: fix linter

    ---------

    Co-authored-by: Martin Holst Swende <[email protected]>
    Co-authored-by: Péter Szilágyi <[email protected]>

commit 6e379b6fc776668c9a7db6d5b014d0dd89d7118d
Author: Delweng <[email protected]>
Date:   Wed Mar 6 20:36:12 2024 +0800

    eth/tracers: prestate tracer add blob fee (#29168)

    * eth/tracers: prestate balance add blob fee

    Signed-off-by: jsvisa <[email protected]>

    * eth/tracers: prestate test support blob tx

    Signed-off-by: jsvisa <[email protected]>

    * eth/tracers: add prestate blob tx test

    Signed-off-by: jsvisa <[email protected]>

    ---------

    Signed-off-by: jsvisa <[email protected]>

commit a90fe84971183aa0b6c40d71c6586ae3f2eda4c8
Author: Undefinedor <[email protected]>
Date:   Wed Mar 6 18:55:44 2024 +0800

    accounts: remove deprecated function NewPlaintextKeyStore (#29171)

commit e73f55365c458c5185a493935b65dd96bacf6933
Author: Martin HS <[email protected]>
Date:   Wed Mar 6 11:31:50 2024 +0100

    accounts/usbwallet: update hid library (#29176)

commit a000acb61114c2a3a74c065f2e61b4d6bca3ae46
Author: Andrei Kostakov <[email protected]>
Date:   Wed Mar 6 11:53:12 2024 +0200

    rpc: add more test cases for arg types (#29006)

commit 899bb88a4ba19af2d8fe4874561a9d55355acf48
Author: Martin HS <[email protected]>
Date:   Wed Mar 6 10:32:17 2024 +0100

    accounts/usbwallet: revert #28945 (#29175)

commit 588c5480fd1f355a39d3f52a5507ab9d0da334c9
Author: Tom <[email protected]>
Date:   Wed Mar 6 13:23:35 2024 +0800

    internal/ethapi: delete needless error check (#29127)

commit 66e1a6ef496e001abc7ae7433282251a557deb2c
Author: Devon Bear <[email protected]>
Date:   Tue Mar 5 09:15:02 2024 -0500

    go.mod: bump pebble db to official release (#29038)

    bump pebble

commit f4d53133f6e4b13f0dbcfef3bc45e9650d863b73
Author: Péter Szilágyi <[email protected]>
Date:   Tue Mar 5 16:13:28 2024 +0200

    consensus, cmd, core, eth: remove support for non-merge mode of operation (#29169)

    * eth: drop support for forward sync triggers and head block packets

    * consensus, eth: enforce always merged network

    * eth: fix tx looper startup and shutdown

    * cmd, core: fix some tests

    * core: remove notion of future blocks

    * core, eth: drop unused methods and types

commit 9a0fa8093ca5f7b896c3f7e849f7ca532d24e2a6
Author: Marius van der Wijden <[email protected]>
Date:   Tue Mar 5 14:52:44 2024 +0100

    node: remove test which doesn't do a lot (#29159)

    * node: fix test if directory already exists

    * node: remove test

commit 9e129efd7b43242fb5e605065713c27d615e753d
Author: zhiqiangxu <[email protected]>
Date:   Tue Mar 5 21:48:27 2024 +0800

    core: remove useless assignments (#29065)

commit a970295956d602c348dccce034712c14aedce5e0
Author: cui <[email protected]>
Date:   Tue Mar 5 21:45:17 2024 +0800

    rlp: using unsafe.Slice instead of SliceHeader (#29067)

    Co-authored-by: Felix Lange <[email protected]>

commit a6d6e8ac410170eb1085b9e7b0388b1c67f95548
Author: Undefinedor <[email protected]>
Date:   Tue Mar 5 21:44:23 2024 +0800

    rpc: remove deprecated method "Notifier.Closed" (#29162)

commit dfa6c5e9c80e0965d0476909afc26e87aa199e6a
Author: Delweng <[email protected]>
Date:   Tue Mar 5 21:37:26 2024 +0800

    internal/jsre: format blob fields from hexdecimal to int  (#29166)

    * internal/jsre: format receipt.{blobGasPrice,blobGasUsed} to int

    Signed-off-by: jsvisa <[email protected]>

    * internal/jsre: format tx.maxFeePerBlobGas to int

    Signed-off-by: jsvisa <[email protected]>

    * internal/jsre: format blob* in block

    Signed-off-by: jsvisa <[email protected]>

    ---------

    Signed-off-by: jsvisa <[email protected]>

commit 96bf23f1ea95d29a32abe8fe2992b86e892b6c4c
Author: Martin HS <[email protected]>
Date:   Tue Mar 5 14:32:47 2024 +0100

    accounts/usbwallet: use updated hid (only) library (#28945)

    * accounts/usbwallet: use updated hid (only) library

    * deps: update karalabe/hid

commit 7b81cf6362b3bb52762b823edf2a31bbbed4aa84
Author: rjl493456442 <[email protected]>
Date:   Tue Mar 5 21:31:55 2024 +0800

    core/state, trie/triedb/pathdb: remove storage incomplete flag (#28940)

    As SELF-DESTRUCT opcode is disabled in the cancun fork(unless the
    account is created within the same transaction, nothing to delete
    in this case). The account will only be deleted in the following
    cases:

    - The account is created within the same transaction. In this case
    the original storage was empty.

    - The account is empty(zero nonce, zero balance, zero code) and
    is touched within the transaction. Fortunately this kind of accounts
    are not-existent on ethereum-mainnet.

    All in all, after cancun, we are pretty sure there is no large contract
    deletion and we don't need this mechanism for oom protection.

commit e199319fd680aa4b135147f0480549a1c7d95350
Author: buddho <[email protected]>
Date:   Tue Mar 5 17:47:56 2024 +0800

    rlp: remove a moot todo (#29154)

commit d89d7ebdec27d8c8fed217767e2f17b09b5460a0
Author: zhiqiangxu <[email protected]>
Date:   Tue Mar 5 16:47:58 2024 +0800

    core: initialize `gasRemaining` with `=` instead of `+=` (#29149)

    initialize gasRemaining with = instead of +=

commit 9b3ceb2137df125dd0f6957a362e9f08d6c41b66
Author: Vie <[email protected]>
Date:   Tue Mar 5 15:33:52 2024 +0800

    core/types: reuse signtx (#29152)

    * core/types: reuse signtx

    * core/types: inline signtx

commit 5d5b384efd0acabe4d808c46fce9700114d2046f
Author: Domino Valdano <[email protected]>
Date:   Mon Mar 4 12:58:25 2024 -0800

    .mailmap: remove invalid email address (#29163)

commit 19607d1a10d37542ba13ab9db48cf4e501715cce
Author: Andrei Silviu Dragnea <[email protected]>
Date:   Mon Mar 4 20:21:43 2024 +0100

    eth/tracers: Fix prestateTracer pre nonce on contract creation (#29099)

    The prestateTracer was reporting an inaccurate nonce for the contract being created in
    post EIP-158 transactions. Correct nonce is 0, due to the issue nonce was being reported as 1.

commit ca473b81cbe4a96cde4e8424c49b15ab304787bb
Author: rjl493456442 <[email protected]>
Date:   Mon Mar 4 22:25:53 2024 +0800

    core: use finalized block as the chain freeze indicator (#28683)

    * core: use finalized block as the chain freeze indicator

    * core/rawdb: use max(finality, head-90k) as chain freezing threshold

    * core/rawdb: fix tests

    * core/rawdb: fix lint

    * core/rawdb: address comments from peter

    * core/rawdb: fix typo

commit a97d622588c2b71557c6222b95d487f51b46bd78
Author: Felix Lange <[email protected]>
Date:   Mon Mar 4 14:07:41 2024 +0100

    cmd/devp2p: fix commandHasFlag (#29091)

    It got broken in some update of the cli library, and thus bootnodes weren't
    being configured automatically for some of the discovery commands.

commit 35cebc16877c4cfbf48b883ab3bfa02b9100a87a
Author: psogv0308 <[email protected]>
Date:   Mon Mar 4 19:03:53 2024 +0900

    triedb/pathdb: changed the test code to check for verifying state (#29150)

    Co-authored-by: this-is-iron <[email protected]>

commit 679a27a2b36d4f86e6b49c49c0d51c47a7ef6145
Author: buddho <[email protected]>
Date:   Mon Mar 4 17:31:18 2024 +0800

    all: use EmptyUncleHash, EmptyCodeHash instead of raw value (#29134)

commit 5a1e8a6547d6606c7ff1e3f3841fbb1c9f205282
Author: cui <[email protected]>
Date:   Mon Mar 4 17:30:15 2024 +0800

    core: delete unused ErrMaxInitCodeSizeExceeded (#29062)

commit b408b3e5fece3524bf7721ac8dd8d9a898f571a8
Author: yzb <[email protected]>
Date:   Mon Mar 4 17:24:24 2024 +0800

    accounts/abi: delete duplicate error check (#29136)

commit a732ad036488e3d5db33928f0155ffd66e08c08d
Author: yzb <[email protected]>
Date:   Mon Mar 4 17:16:05 2024 +0800

    p2p: remove unused argument 'flags' (#29132)

commit 00905f7dc406cfb67f64cd74113777044fb886d8
Author: Undefinedor <[email protected]>
Date:   Sun Mar 3 04:42:50 2024 +0800

    all: remove redundant import aliases (#29144)

commit 0b1438c3df5da5551e89dddc683d65f4d48ad3d6
Author: Péter Szilágyi <[email protected]>
Date:   Sat Mar 2 22:39:22 2024 +0200

    eth: make transaction propagation paths in the network deterministic (#29034)

    * eth: make transaction propagation paths in the network deterministic

    * eth: avoid potential division by 0

    * eth: make tx propagation dependent on local node id too

    * eth: fix review comments

commit 0a2f33946b95989e8ce36e72a88138adceab6a23
Author: Sina Mahmoodi <[email protected]>
Date:   Thu Feb 29 13:17:32 2024 +0100

    eth/catalyst: update simulated beacon for cancun (#28829)

    * eth/catalyst: update simulated beacon for cancun

    * validate blob hashes

    * compute hashes from commitment

    * fix beacon root and payload version

    * check commitment conversion

    * fix random attr

    * flip dev to cancun

commit 865e1e9f577f4fa804d0246f82cbcedc27db9bf6
Author: Péter Szilágyi <[email protected]>
Date:   Thu Feb 29 12:40:59 2024 +0200

    cmd/utils, core/rawdb, triedb/pathdb: flip hash to path scheme (#29108)

    * cmd/utils, core/rawdb, triedb/pathdb: flip hash to path scheme

    * graphql: run tests in hash mode as the chain maker needs it

commit db4cf6916606e07d908af44e405257925dd9265e
Author: yzb <[email protected]>
Date:   Thu Feb 29 17:56:46 2024 +0800

    all: replace fmt.Errorf() with errors.New() if no param required (#29126)

    replace-fmt-errorf

    Co-authored-by: [email protected] <[email protected]>

commit 28d55218f7d793c184f4220a16a60e309caa70af
Author: Ng Wei Han <[email protected]>
Date:   Thu Feb 29 17:56:17 2024 +0800

    cmd/geth: parseDumpConfig should not return closed db (#29100)

    * cmd: parseDumpConfig should not return closed db

    * fix lint

commit dbc27a199f411fc620eeb8589fd75a144f83ee8c
Author: cui fliter <[email protected]>
Date:   Thu Feb 29 17:29:06 2024 +0800

    all: fix function names in docs (#29128)

    Signed-off-by: cui fliter <[email protected]>

commit 1883438964a7a4c68cee1de619526e8bc1e68b30
Author: lightclient <[email protected]>
Date:   Wed Feb 28 11:59:16 2024 -0700

    eth/catalyst: return invalid payload attributes instead of invalid parms for bad fcu payload (#29115)

commit 9986a69c25452ff0e7ce323446b215e2d0075185
Author: buddho <[email protected]>
Date:   Thu Feb 29 01:38:21 2024 +0800

    internal/ethapi: pass in accesslist in test (#29089)

    Co-authored-by: Sina Mahmoodi <[email protected]>

commit 5bae14f9df498243091078fc8d3ea6ab99669087
Author: rjl493456442 <[email protected]>
Date:   Wed Feb 28 20:40:28 2024 +0800

    triedb/pathdb: fix panic in recoverable (#29107)

    * triedb/pathdb: fix panic in recoverable

    * triedb/pathdb: add todo

    * triedb/pathdb: rename

    * triedb/pathdb: rename

commit 49623bd4697f5b333ae977968186d0717f918927
Author: rjl493456442 <[email protected]>
Date:   Wed Feb 28 20:23:52 2024 +0800

    core, triedb/pathdb: calculate the size for batch pre-allocation (#29106)

    * core, triedb/pathdb: calculate the size for batch pre-allocation

    * triedb/pathdb: address comment

commit 170fcd80c6f5d07d7d839e895765de193c34a8b3
Author: Péter Szilágyi <[email protected]>
Date:   Wed Feb 28 10:01:52 2024 +0200

    params: being major version bump cycle

commit 02d77c98f9e1efaf3fede313b0e9183dc54562b6
Author: cui <[email protected]>
Date:   Wed Feb 28 15:25:12 2024 +0800

    core: using math.MaxUint64 instead of 0xffffffffffffffff (#29094)

commit 57d2b552c74dbd03b9909e6b8cd7b3de1f8b40e9
Author: Péter Szilágyi <[email protected]>
Date:   Tue Feb 27 13:53:30 2024 +0200

    params: begin v1.13.15 cycle

commit 9038ba69428a6ecada1f2acace6981854482748b
Author: Péter Szilágyi <[email protected]>
Date:   Tue Feb 27 13:50:30 2024 +0200

    params: release Geth v1.13.14

commit 51b479e56459d663a12f95fd8eaba82716c0d5ce
Author: Roberto Bayardo <[email protected]>
Date:   Tue Feb 27 03:27:50 2024 -0800

    core/txpool: elevate the 'already reserved' error into a constant (#29095)

    declare the 'already reserved' error in errors.go

commit 5a0f468f8cb15b939bd85445d33c614a36942a8e
Author: Andrei Silviu Dragnea <[email protected]>
Date:   Tue Feb 27 10:29:12 2024 +0100

    eth/tracers: Fix callTracer logs on onlyTopCall == true (#29068)

commit 45a272c7b96cb260528bbc2e31d657488f97c4b0
Author: Delweng <[email protected]>
Date:   Tue Feb 27 00:34:45 2024 +0800

    core/txpool: no need to log loud rotate if no local txs (#29083)

    * core/txpool: no need to run rotate if no local txs

    Signed-off-by: jsvisa <[email protected]>

    * Revert "core/txpool: no need to run rotate if no local txs"

    This reverts commit 17fab173883168c586d57ca9c05dfcbd9e7831b4.

    Signed-off-by: jsvisa <[email protected]>

    * use Debug if todo is empty

    Signed-off-by: jsvisa <[email protected]>

    ---------

    Signed-off-by: jsvisa <[email protected]>

commit 63aaac81007ad46b208570c17cae78b7f60931d4
Author: Péter Szilágyi <[email protected]>
Date:   Mon Feb 26 14:27:56 2024 +0200

    core/txpool/blobpool: reduce default database cap for rollout (#29090)

    xcore/txpool/blobpool: reduce default database cap for rollout

commit c1f59b98f6b0351339767d71953eb4eb5d19c496
Author: cui <[email protected]>
Date:   Mon Feb 26 20:22:13 2024 +0800

    eth/catalyst: remove variable in tx conversion loop (#29076)

commit 821d70240d191ff451a813287a377466337a3cee
Author: Justin Dhillon <[email protected]>
Date:   Mon Feb 26 02:03:59 2024 -0800

    cmd/clef: add spaces in README.md table (#29077)

    Add space after links in so they are clickable in vscode.

commit 8bca93e82c59d04f23b0237292d17fe728f20a5b
Author: maskpp <[email protected]>
Date:   Mon Feb 26 18:02:18 2024 +0800

    internal/ethapi: pass blob hashes to gas estimation (#29085)

commit edffacca8f97d23298636e225d477818e58eafe7
Author: cui <[email protected]>
Date:   Mon Feb 26 17:59:03 2024 +0800

    eth/catalyst: enable some commented-out testcases   (#29073)

commit 26724fc2aaf0cf8711c25ca664c0451f68d977fe
Author: Qt <[email protected]>
Date:   Mon Feb 26 17:25:35 2024 +0800

    p2p, log, rpc: use errors.New to replace fmt.Errorf with no parameters (#29074)

commit 32d4d6e6160432be1cb9780a43253deda7708ced
Author: Roberto Bayardo <[email protected]>
Date:   Mon Feb 26 01:06:52 2024 -0800

    core/txpool: reject blob txs with blob fee cap below the minimum (#29081)

    * make blobpool reject blob transactions with fee below the minimum

    * core/txpool: some minot nitpick polishes and unified error formats

    * core/txpool: do less big.Int constructions with the min blob cap

    ---------

    Co-authored-by: Péter Szilágyi <[email protected]>

commit 93c541ad563124e81d125c7ebe78938175229b2e
Author: Haotian <[email protected]>
Date:   Fri Feb 23 16:57:47 2024 +0800

    eth/catalyst: fix wrong error message of payloadV2 after cancun (#29049)

    * eth/catalyst: the same error format

    Signed-off-by: tmelhao <[email protected]>

    * eth/catalyst: wrong error message for payloadV2 post-cancun

    Signed-off-by: tmelhao <[email protected]>

    * eth/catalyst: parentBeaconBlockRoot -> parentBlockBeaconRoot

    Signed-off-by: tmelhao <[email protected]>

    * apply commit review

    Signed-off-by: tmelhao <[email protected]>

    ---------

    Signed-off-by: tmelhao <[email protected]>
    Co-authored-by: tmelhao <[email protected]>

commit b87b9b45331f87fb1da379c5f17a81ebc3738c6e
Author: colin <[email protected]>
Date:   Thu Feb 22 23:35:23 2024 +0800

    internal/ethapi:fix zero rpc gas cap in eth_createAccessList (#28846)

    This PR enhances eth_createAccessList RPC call to support scenarios where the node is launched with an unlimited gas cap (--rpc.gascap 0). The eth_createAccessList RPC call returns failure if user doesn't explicitly set a gas limit.

commit e47a7c22c40b9037049cb63d74eb1216aabdee60
Author: ArtificialPB <[email protected]>
Date:   Thu Feb 22 14:39:22 2024 +0100

    internal/ethapi: use overriden baseFee for gasPrice (#29051)

    eth_call and debug_traceCall allow users to override various block fields, among them base fee. However the overriden base fee was not considered for computing the effective gas price of that message, and instead base fee of the base block was used. This has been fixed in this commit.

commit b590cae89232299d54aac8aada88c66d00c5b34c
Author: Felix Lange <[email protected]>
Date:   Wed Feb 21 15:49:50 2024 +0100

    params: begin v1.13.14 release cycle

commit 3b4ede74443a15db27fddbb803a6b0cc4180ca75
Author: Felix Lange <[email protected]>
Date:   Wed Feb 21 15:44:02 2024 +0100

    params: release go-ethereum v1.13.13 stable

commit b47cf8fe1de4f97ce38417d8136a58812734a7a9
Author: Sina Mahmoodi <[email protected]>
Date:   Wed Feb 21 12:46:32 2024 +0100

    internal/ethapi: fix defaults for blob fields (#29037)

    Co-authored-by: Martin HS <[email protected]>

commit b9ca38b7358dbf7e236c624043bbab789a8d0389
Author: colin <[email protected]>
Date:   Wed Feb 21 16:00:01 2024 +0800

    core/txpool: fix typo (#29036)

    * fix typos

    * address comments

commit 79e340fb1276cd5f0bbdc3825f90090488e3b978
Author: Haotian <[email protected]>
Date:   Wed Feb 21 15:59:21 2024 +0800

    params: add cancun upgrade banner (#29042)

    params: add cancun banner

    Signed-off-by: tmelhao <[email protected]>
    Co-authored-by: tmelhao <[email protected]>

commit bba3fa9af9709ce6615d994edac7043e064fda0d
Author: buddho <[email protected]>
Date:   Tue Feb 20 19:42:48 2024 +0800

    core,eth,internal: fix typo (#29024)

commit 7f5e96dc6c0d70f793a6a41c059c5dd660357964
Author: buddho <[email protected]>
Date:   Tue Feb 20 18:08:56 2024 +0800

    core/txpool: fix typo (#29031)

commit f4852b8ddc8bef962d34210a4f7774b95767e421
Author: Péter Szilágyi <[email protected]>
Date:   Tue Feb 20 11:37:23 2024 +0200

    core/txpool, eth, miner: retrieve plain and blob txs separately (#29026)

    * core/txpool, eth, miner: retrieve plain and blob txs separately

    * core/txpool: fix typo, no farming

    * miner: farm all the typos

    Co-authored-by: Martin HS <[email protected]>

    ---------

    Co-authored-by: Martin HS <[email protected]>

commit ac0ff044606a663eeb47ef60ed5506f8427530…
jorgemmsilva pushed a commit to iotaledger/go-ethereum that referenced this pull request Jun 17, 2024
Here we add a Go API for running tracing plugins within the main block import process.

As an advanced user of geth, you can now create a Go file in eth/tracers/live/, and within
that file register your custom tracer implementation. Then recompile geth and select your tracer
on the command line. Hooks defined in the tracer will run whenever a block is processed.

The hook system is defined in package core/tracing. It uses a struct with callbacks, instead of
requiring an interface, for several reasons:

- We plan to keep this API stable long-term. The core/tracing hook API does not depend on
  on deep geth internals.
- There are a lot of hooks, and tracers will only need some of them. Using a struct allows you
   to implement only the hooks you want to actually use.

All existing tracers in eth/tracers/native have been rewritten to use the new hook system.

This change breaks compatibility with the vm.EVMLogger interface that we used to have.
If you are a user of vm.EVMLogger, please migrate to core/tracing, and sorry for breaking
your stuff. But we just couldn't have both the old and new tracing APIs coexist in the EVM.

---------

Co-authored-by: Matthieu Vachon <[email protected]>
Co-authored-by: Delweng <[email protected]>
Co-authored-by: Martin HS <[email protected]>
rjl493456442 pushed a commit that referenced this pull request Aug 6, 2024
The struct-based tracing added in #29189 seems to have caused an issue
with the benchmark `BenchmarkTracerStepVsCallFrame`. On master we see
the following panic:

```console
BenchmarkTracerStepVsCallFrame
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x40 pc=0x1019782f0]

goroutine 37 [running]:
github.com/ethereum/go-ethereum/eth/tracers/js.(*jsTracer).OnOpcode(0x140004c4000, 0x0, 0x10?, 0x989680, 0x1, {0x101ea2298, 0x1400000e258}, {0x1400000e258?, 0x14000155928?, 0x10173020c?}, ...)
        /Users/matt/dev/go-ethereum/eth/tracers/js/goja.go:328 +0x140
github.com/ethereum/go-ethereum/core/vm.(*EVMInterpreter).Run(0x14000307da0, 0x140003cc0d0, {0x0, 0x0, 0x0}, 0x0)
 ...
FAIL    github.com/ethereum/go-ethereum/core/vm/runtime 0.420s
FAIL
```

The issue seems to be that `OnOpcode` expects that `OnTxStart` has
already been called to initialize the `env` value in the tracer. The JS
tracer uses it in `OnOpcode` for the `GetRefund()` method.

This patch resolves the issue by reusing the `Call` method already
defined in `runtime_test.go` which correctly calls `OnTxStart`.
leeren pushed a commit to storyprotocol/story-geth that referenced this pull request Aug 16, 2024
…30257)

The struct-based tracing added in ethereum#29189 seems to have caused an issue
with the benchmark `BenchmarkTracerStepVsCallFrame`. On master we see
the following panic:

```console
BenchmarkTracerStepVsCallFrame
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x40 pc=0x1019782f0]

goroutine 37 [running]:
github.com/ethereum/go-ethereum/eth/tracers/js.(*jsTracer).OnOpcode(0x140004c4000, 0x0, 0x10?, 0x989680, 0x1, {0x101ea2298, 0x1400000e258}, {0x1400000e258?, 0x14000155928?, 0x10173020c?}, ...)
        /Users/matt/dev/go-ethereum/eth/tracers/js/goja.go:328 +0x140
github.com/ethereum/go-ethereum/core/vm.(*EVMInterpreter).Run(0x14000307da0, 0x140003cc0d0, {0x0, 0x0, 0x0}, 0x0)
 ...
FAIL    github.com/ethereum/go-ethereum/core/vm/runtime 0.420s
FAIL
```

The issue seems to be that `OnOpcode` expects that `OnTxStart` has
already been called to initialize the `env` value in the tracer. The JS
tracer uses it in `OnOpcode` for the `GetRefund()` method.

This patch resolves the issue by reusing the `Call` method already
defined in `runtime_test.go` which correctly calls `OnTxStart`.
davidtaikocha added a commit to taikoxyz/taiko-geth that referenced this pull request Oct 3, 2024
* params: release Geth v1.14.5

* params: begin v1.14.6 release cycle

* cmd/evm/internal/t8ntool: remove unused parameter (#29930)

* go.mod : tidy

* cmd/clef, cmd/evm: fix markdown issues in README (#29954)

* cmd/geth: remove unused param (#29952)

* p2p/discover: add missing lock when calling tab.handleAddNode (#29960)

* p2p: use package slices to sort in PeersInfo (#29957)

* core: initialize developer genesis beacon root contract with 0 balance (#29963)

* core, rlp: remove duplicated words (#29964)

* cmd, core: prefetch reads too from tries if requested (#29807)

* cmd/utils, consensus/beacon, core/state: when configured via stub  flag: prefetch all reads from account/storage tries, terminate prefetcher synchronously.

* cmd, core/state: fix nil panic, fix error handling, prefetch nosnap too

* core/state: expand prefetcher metrics for reads and writes separately

* cmd/utils, eth: fix noop collect witness flag

---------

Co-authored-by: Péter Szilágyi <[email protected]>

* core/state: rename all the AccessList receivers to 'al' (#29921)

rename all the receivers to 'al'

* ethconfig: regenerate config (#29970)

* cmd/devp2p: fix log output (#29972)

* .github: disable cache in actions run (#29926)

* p2p/simulations: update doc of HTTP endpoints (#29894)

* all: fix inconsistent receiver name and add lint rule for it (#29974)

* .golangci.yml: enable check for consistent receiver name

* beacon/light/sync: fix receiver name

* core/txpool/blobpool: fix receiver name

* core/types: fix receiver name

* internal/ethapi: use consistent receiver name 'api' for handler object

* signer/core/apitypes: fix receiver name

* signer/core: use consistent receiver name 'api' for handler object

* log: fix receiver name

* accounts: avoid duplicate regex compilation (#29943)

* fix: Optimize regular initialization

* modify var name

* variable change to private types

* core/state, eth/protocols, trie, triedb/pathdb:  remove unused error from trie Commit (#29869)

* core/state, eth/protocols, trie, triedb/pathdb:  remove unused error return from trie Commit

* move set back to account-trie-update block scoping for easier readability

* address review

* undo tests submodule change

* trie:  panic if BatchSerialize returns an error in Verkle trie Commit

* trie: verkle comment nitpicks

---------

Co-authored-by: Péter Szilágyi <[email protected]>

* beacon/light: fix shutdown issues (#29946)

* beacon/light/request: add server test for event after unsubscribe

* beacon/light/api: fixed double stream.Close()

* beacon/light/request: add checks for nil event callback function

* beacon/light/request: unlock server mutex while unsubscribing from parent

* trie/triedb: add Reader to backend interface (#29988)

* core/state/snapshot: add a missing lock (#30001)

* upgrade lock usage

* revert unnecessary change

* go.mod: update Pebble to sort out a deleted upstream dependency (#30010)

* log: fix some functions comments (#29907)

updates some docstrings
---------

Co-authored-by: rjl493456442 <[email protected]>

* trie, triedb/pathdb: prealloc capacity for map and slice (#29986)

* triedb/pathdb: use maps.Clone and maps.Keys (#29985)

* common/math: fix out of bounds access in json unmarshalling (#30014)


Co-authored-by: Martin Holst Swende <[email protected]>

* core/state/snapshot: acquire the lock on Release (#30011)

* core/state/snapshot: acquire the lock on release

* core/state/snapshot: only acquire read-lock when iterating

* cmd/geth, ethdb/pebble: improve database statistic (#29948)

* cmd/geth, ethdb/pebble: polish method naming and code comment

* implement db stat for pebble

* cmd, core, ethdb, internal, trie: remove db property selector

* cmd, core, ethdb: fix function description

---------

Co-authored-by: prpeh <[email protected]>
Co-authored-by: Gary Rong <[email protected]>

* trie: don't reset tracer at the end of Commit (#30024)

* trie: don't reset tracer at the end of Commit

* Update trie.go

---------

Co-authored-by: rjl493456442 <[email protected]>

* common: using `ParseUint` instead of `ParseInt` (#30020)

Since Decimal is defined as unsiged `uint64`, we should use `strconv.ParseUint` instead of `strconv.ParseInt` during unmarshalling.

---------

Co-authored-by: Martin Holst Swende <[email protected]>

* core/txpool/blobpool: change rw-lock to r-lock (#29989)

* trie/trienode: avoid unnecessary copy (#30019)

* avoid unnecessary copy

* delete the never used function ProofList

* eth/protocols/snap, trie/trienode: polish the code

---------

Co-authored-by: Gary Rong <[email protected]>

* p2p/rlpx: 2KB maximum size for handshake messages (#30029)


Co-authored-by: Felix Lange <[email protected]>

* core/state/snapshot: tiny fixes (#29995)

* Revert "core/state/snapshot: tiny fixes" (#30039)

Revert "core/state/snapshot: tiny fixes (#29995)"

This reverts commit e0e45dbc32501d7917edb07083aa1c34ab7b0fb4.

* p2p/discover: improve flaky revalidation tests (#30023)

* cmd/blsync: use debug.Setup for logging configuration (#30065)

* .github: add lightclient as codeowner to relevant packages (#30062)

* accounts/keystore: use t.TempDir in test (#30052)

* internal/debug: remove unnecessary log level assignment (#30044)

Log level is specified in L259 so it's unnecessary to specify it for handlers (L234, L236).

* all: stateless witness builder and (self-)cross validator (#29719)

* all: add stateless verifications

* all: simplify witness and integrate it into live geth

---------

Co-authored-by: Péter Szilágyi <[email protected]>

* core/txpool/blobpool: avoid use *map as parameter. (#30048)

* trie/trienode: remove unnecessary check in Summary (#30047)

* eth/tracers,trie: remove unnecessary check (#30071)

* trie: relocate state execution logic into pathdb package (#29861)

* triedb/pathdb: fix flaky test in pathdb (#29901)

* core/txpool/blobpool: improve newPriceHeap function (#30050)


Co-authored-by: Felix Lange <[email protected]>

* cmd/evm/internal/t8ntool: log writeTraceResult error message (#30038)

* all: replace division with right shift if possible (#29911)

* rpc: truncate call error data logs (#30028)


Co-authored-by: Felix Lange <[email protected]>

* accounts/usbwallet/trezor: upgrade to generate with protoc 27.1 (#30058)

* build:  add check for stale generated files (#30037)


Co-authored-by: Felix Lange <[email protected]>

* core/state: fix inconsistent verkle test error messages (#29753)

* accounts/abi: embed Go template instead of string literal (#30098)

refactor(accounts/abi): use embed pkg to split default template to file

* params: release Geth v1.14.6

* params: begin v1.14.7 release cycle

* params: release Geth v1.14.6

* build: upgrade -dlgo version to Go 1.22.5 (#30112)

* crypto: remove hardcoded value for secp256k1.N (#30126)

* go.mod: update uint256 to 1.3.0 (#30134)

* eth/catalyst: fix params in failure log (#30131)

* core/txpool/blobpool: revert #29989, WLock on Nonce (#30142)

* params: go-ethereum v1.14.7 stable

* params: begin v1.14.8 release cycle

* core/state: fix prefetcher for verkle (#29760)

* core/txpool/blobpool: use nonce from argument instead of tx.Nonce() (#30148)

This does not change the behavior here as the nonce in the argument is
tx.Nonce(). This commit helps to make the function easier to read and avoid
capturing the tx in the function.

* trie: add RollBackAccount function to verkle trees (#30135)

* p2p: fix ip change log parameter (#30158)

* cmd/utils: fix typo in flag description (#30127)

* core/types: don't modify signature V when reading large chainID (#30157)

* SECURITY.md: correct PGP key block formatting (#30123)

* all: simplify tests using t.TempDir() (#30150)

* eth/catalyst: fix (*SimulatedBeacon).AdjustTime() conversion (#30138)

* trie, triedb: remove unnecessary child resolver interface (#30167)

* core/txpool/legacypool: use maps.Keys and maps.Copy (#30091)

* core/state: don't compute verkle storage tree roots (#30130)

* core/rawdb, triedb, cmd: create an isolated disk namespace for verkle (#30105)

* core, triedb/pathdb, cmd: define verkle state ancient store

* core/rawdb, triedb: add verkle namespace in pathdb

* p2p/discover: remove type encPubkey (#30172)

The pubkey type was moved to package v4wire a long time ago. Remaining uses of
encPubkey were probably left in due to laziness.

* go.mod: upgrade to btcsuite/btcd/btcec v2.3.4 (#30181)

* ethdb: remove snapshot (#30189)

* eth/gasprice: remove default from config (#30080)

* eth/gasprice: remove default from config

* eth/gasprice: sanitize startPrice

* rpc: use stable object in notifier test (#30193)

This makes the test resilient to changes of types.Header -- otherwise the test needs to be
updated each time the header structure is modified.

* core/state: remove useless metrics (#30184)

Originally, these metrics were added to track the largest storage wiping.
Since account self-destruction was deprecated with the Cancun fork,
these metrics have become meaningless.

* rpc: show more error detail for `invalidMessageError` (#30191)

Here we add distinct error messages for network timeouts and JSON parsing errors.
Note this specifically applies to HTTP connections serving a single RPC request.

Co-authored-by: Felix Lange <[email protected]>

* core/tracing: update latest release version (#30211)

* core/txpool: use the cached address in ValidateTransactionWithState (#30208)

The address recover is executed and cached in ValidateTransaction already. It's
expected that the cached one is returned in ValidateTransaction. However,
currently, we use the wrong function signer.Sender instead of types.Sender which
will do all the address recover again.

* core/state: check db error after intermediate call (#30171)

This pull request adds an additional error check after statedb.IntermediateRoot,
ensuring that no errors occur during this call. This step is essential, as the call might
encounter database errors.

* cmd/utils: allow configurating blob pool from flags (#30203)

Currently, we have 3 flags to configure blob pool. However, we don't
read these flags and set the blob pool configuration in eth config
accordingly. This commit adds a function to check if these flags are
provided and set blob pool configuration based on them.

* core/state: fix SetStorage override behavior (#30185)

This pull request fixes the broken feature where the entire storage set is overridden.

Originally, the storage set override was achieved by marking the associated account
as deleted, preventing access to the storage slot on disk. However, since #29520, this
flag is also checked when accessing the account, rendering the account unreachable.

A fix has been applied in this pull request, which re-creates a new state object with all
account metadata inherited.

* triedb/pathdb: print out all trie owner and hash information (#30200)

This pull request explicitly prints out the full hash for debugging
purpose.

* beacon/types, cmd/devp2p, p2p/enr: clean up uses of fmt.Errorf (#30182)

* eth/tracers, internal/ethapi: remove unnecessary map pointer in state override (#30094)

* internal/ethapi: fix state override test (#30228)

Looks like #30094 became a bit stale after #30185 was merged and now we
have a stale ref to a state override object causing CI to fail on
master.

* p2p/nat: return correct port for ExtIP NAT (#30234)

Return the actually requested external port instead of 0 in the
AddMapping implementation for `--nat extip:<IP>`.

* p2p: fix flaky test TestServerPortMapping (#30241)

The test specifies `ListenAddr: ":0"`, which means a random ephemeral
port will be chosen for the TCP listener by the OS. Additionally, since
no `DiscAddr` was specified, the same port that is chosen automatically
by the OS will also be used for the UDP listener in the discovery UDP
setup. This sometimes leads to test failures if the TCP listener picks a
free TCP port that is already taken for UDP. By specifying `DiscAddr:
":0"`, the UDP port will be chosen independently from the TCP port,
fixing the random failure.

See issue #29830.

Verified using
```
cd p2p
go test -c -race
stress ./p2p.test -test.run=TestServerPortMapping
...
5m0s: 4556 runs so far, 0 failures
```

The issue described above can technically lead to sporadic failures on
systems that specify a listen address via the `--port` flag of 0 while
not setting `--discovery.port`. Since the default is using port `30303`
and using a random ephemeral port is likely not used much to begin with,
not addressing the root cause might be acceptable.

* p2p/discover: schedule revalidation also when all nodes are excluded (#30239)

## Issue

If `nextTime` has passed, but all nodes are excluded, `get` would return
`nil` and `run` would therefore not invoke `schedule`. Then, we schedule
a timer for the past, as neither `nextTime` value has been updated. This
creates a busy loop, as the timer immediately returns.

## Fix

With this PR, revalidation will be also rescheduled when all nodes are
excluded.

---------

Co-authored-by: lightclient <[email protected]>

* miner: remove outdated comment (#30248)

* eth/downloader: correct sync mode logging to show old mode (#30219)

This PR fixes an issue in the setMode method of beaconBackfiller where the
log message was not displaying the previous mode correctly. The log message
now shows both the old and new sync modes.

* all: remove deprecated protobuf dependencies (#30232)

The package `github.com/golang/protobuf/proto` is deprecated in favor
`google.golang.org/protobuf/proto`. We should update the codes to
recommended package.

Signed-off-by: Icarus Wu <[email protected]>

* accounts/abi/bind: add accessList support to base bond contract (#30195)

Adding the correct accessList parameter when calling a contract can
reduce gas consumption. However, the current version only allows adding
the accessList manually when constructing the transaction. This PR can
provide convenience for saving gas.

* internal/debug: remove memsize (#30253)

Removing because memsize will very likely be broken by Go 1.23. See
https://github.com/fjl/memsize/issues/4

* eth/downloader: gofmt (#30261)

Fixes a regression introduced in
https://github.com/ethereum/go-ethereum/pull/30219

* cmd/evm: don't overwrite sender account (#30259)

Fixes #30254 

It seems like the removed CreateAccount call is very old and not needed anymore.
After removing it, setting a sender that does not exist in the state doesn't seem to cause
an issue.

* eth/catalyst: get params.ExcessBlobGas but check with params.BlobGasUsed (#30267)

Seems it is checked with the wrong argument

Signed-off-by: jsvisa <[email protected]>

* params: remove unused les parameters (#30268)

* core/vm/runtime: ensure tracer benchmark calls `OnTxStart` (#30257)

The struct-based tracing added in #29189 seems to have caused an issue
with the benchmark `BenchmarkTracerStepVsCallFrame`. On master we see
the following panic:

```console
BenchmarkTracerStepVsCallFrame
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x40 pc=0x1019782f0]

goroutine 37 [running]:
github.com/ethereum/go-ethereum/eth/tracers/js.(*jsTracer).OnOpcode(0x140004c4000, 0x0, 0x10?, 0x989680, 0x1, {0x101ea2298, 0x1400000e258}, {0x1400000e258?, 0x14000155928?, 0x10173020c?}, ...)
        /Users/matt/dev/go-ethereum/eth/tracers/js/goja.go:328 +0x140
github.com/ethereum/go-ethereum/core/vm.(*EVMInterpreter).Run(0x14000307da0, 0x140003cc0d0, {0x0, 0x0, 0x0}, 0x0)
 ...
FAIL    github.com/ethereum/go-ethereum/core/vm/runtime 0.420s
FAIL
```

The issue seems to be that `OnOpcode` expects that `OnTxStart` has
already been called to initialize the `env` value in the tracer. The JS
tracer uses it in `OnOpcode` for the `GetRefund()` method.

This patch resolves the issue by reusing the `Call` method already
defined in `runtime_test.go` which correctly calls `OnTxStart`.

* ethclient: support networkID in hex format (#30263)

Some chains’ network IDs use hexadecimal such as Optimism ("0xa" instead
of "10"), so when converting the string to big.Int, we cannot specify
base 10; otherwise, it will encounter errors with hexadecimal network
IDs.

* core/vm: improved stack swap performance (#30249)

This PR adds the methods `Stack.swap1..16()` that faster than `Stack.swap(1..16)`. 

Co-authored-by: lmittmann <[email protected]>

* signer/core: improve performance of isPrimitiveTypeValid function (#30274) (#30277)

Precomputes valid primitive types into a map to use for validation, thus removing sprintf.

* core/vm: use uint64 in memory for indices everywhere (#30252)

Consistently use `uint64` for indices in `Memory` and drop lots of type
conversions from `uint64` to `int64`.

---------

Co-authored-by: lmittmann <[email protected]>

* build: upgrade -dlgo version to Go 1.22.6 (#30273)

* tests: fix TransactionTest to actually run (#30272)

Due to https://github.com/ethereum/tests/releases/tag/v10.1, the format
of the TransactionTest changed, but it was not properly addressed, causing the test
to pass unexpectedly.

---------

Co-authored-by: Martin Holst Swende <[email protected]>

* eth/downloader, core/types: take withdrawals-size into account in downloader queue (#30276)

Fixes a slight miscalculation in the downloader queue, which was not accurately taking block withdrawals into account when calculating the size of the items in the queue

* cmd/evm: fix evm basefee (#30281)

fixes #30279 -- previously we did not use the basefee from the genesis, and instead the defaults were used from `runtime.go/setDefaults`-function

* go.mod: update uint256 to 1.3.1 (#30280)

Release notes: https://github.com/holiman/uint256/releases/tag/v1.3.1

* beacon/engine, consensus/beacon: use params.MaximumExtraDataSize instead of hard-coded value (#29721)


Co-authored-by: Felix Lange <[email protected]>
Co-authored-by: Marius van der Wijden <[email protected]>
Co-authored-by: lightclient <[email protected]>

* p2p/simulations: remove packages (#30250)

Looking at the history of these packages over the past several years, there
haven't been any meaningful contributions or usages:
https://github.com/ethereum/go-ethereum/commits/master/p2p/simulations?before=de6d5976794a9ed3b626d4eba57bf7f0806fb970+35

Almost all of the commits are part of larger refactors or low-hanging-fruit contributions.
Seems like it's not providing much value and taking up team + contributor time.

* eth/protocols/snap: cleanup dangling account trie nodes due to incomplete storage (#30258)

This pull request fixes #30229.
 
During snap sync, large storage will be split into several pieces and
synchronized concurrently. Unfortunately, the tradeoff is that the respective
merkle trie of each storage chunk will be incomplete due to the incomplete
boundaries. The trie nodes on these boundaries will be discarded, and any
dangling nodes on disk will also be removed if they fall on these paths,
ensuring the state healer won't be blocked.

However, the dangling account trie nodes on the path from the root to the
associated account are left untouched. This means the dangling account trie
nodes could potentially stop the state healing and break the assumption that the
entire subtrie should exist if the subtrie root exists. We should consider the
account trie node as the ancestor of the corresponding storage trie node.

In the scenarios described in the above ticket, the state corruption could occur
if there is a dangling account trie node while some storage trie nodes are
removed due to synchronization redo.

The fixing idea is pretty straightforward, the trie nodes on the path from root
to account should all be explicitly removed if an incomplete storage trie
occurs. Therefore, a `delete` operation has been added into `gentrie` to
explicitly clear the account along with all nodes on this path. The special
thing is that it's a cross-trie clearing. In theory, there may be a dangling
node at any position on this account key and we have to clear all of them.

* params: release go-ethereum v1.14.8 stable

* params: begin v1.14.9 release cycle

* go.mod: remove github.com/julienschmidt/httprouter (#30290)

* build: run 'go mod tidy' check as part of lint (#30291)

* core/txpool/blobpool: fix error message (#30247)

the validation process only checks for 'less than', which is
inconsistent with the error output

* go.mod: upgrade to pebble v1.1.2 (#30297)

Includes a fix for MIPS32 support.

Pebble release:
https://github.com/cockroachdb/pebble/releases/tag/v1.1.2
Key fix for mips32:
https://github.com/cockroachdb/pebble/commit/9f3904a705d60b9832febb6c6494183d92c8f556
(also the only change from v1.1.1.

* core: only compute state root once (#30299)

This PR refactors the genesis initialization a bit, s.th. we only
compute the blockhash once instead of twice as before (during hashAlloc
and flushAlloc)

This will significantly reduce the amount of memory allocated during
genesis init

---------

Co-authored-by: Gary Rong <[email protected]>

* .golangci.yml: remove lint warning for TxLookupLimit

* eth/fetcher: always expect transaction metadata in announcement (#30288)

This pull request drops the legacy transaction retrieval support from before
eth68, adding the restrictions that transaction metadata must be provided
along with the transaction announment.

* eth/ethconfig: remove LES server config (#30298)

* eth/tracers/js: add coinbase addr to ctx (#30231)

Add coinbase address to javascript tracer context.

This PR adds the `coinbase` address to `jsTracer.ctx`, allowing access
to the coinbase address (fee receipient) in custom JavaScript tracers.

Example usage:

```javascript
result: function(ctx) {
  return toAddress(ctx.coinbase);
}
```

This change enables custom tracers to access coinbase address,
previously unavailable, enhancing their capabilities to match built-in
tracers.

* eth: dial nodes from discv5 (#30302)

Here I am adding a discv5 nodes source into the p2p dial iterator. It's
an improved version of #29533.

Unlike discv4, the discv5 random nodes iterator will always provide full
ENRs. This means we can apply filtering to the results and will only try
dialing nodes which explictly opt into the eth protocol with a matching
chain.

I have also removed the dial iterator from snap. We don't have an
official DNS list for snap anymore, and I doubt anyone else is running
one. While we could potentially filter for snap on discv5, there will be
very few nodes announcing it, and the extra iterator would just stall
the dialer.

---------

Co-authored-by: lightclient <[email protected]>

* beacon/light: handle endpoint URL more gracefully (#30306)

blsync was failing if the light endpoint it was provided ended with a
`/`. This change should handle the joining more gracefully.

* core: remove withdrawal length check for state processor (#30286)

The withdrawal length is already verified by the beacon consensus package, so the check in the state processor is a duplicate.

* vm: simplify error handling in `vm.EVM.create()` (#30292)

To allow all error paths in `vm.EVM.create()` to consume the necessary
gas, there is currently a pattern of gating code on `if err == nil`
instead of returning as soon as the error occurs. The same behaviour can
be achieved by abstracting the gated code into a method that returns
immediately on error, improving readability and thus making it easier to
understand and maintain.

* internal/build: include git-date on detached head (#30320)

When we are building in detached head, we cannot easily obtain the same information as we can if we're in non-detached head.

However, one thing we _can_ obtain is the git-hash and git-date. Currently, we omit to include the git-date into the build-info, which causes problem for reproducable builds which are on a detached head.

This change fixes it to include the date-info always.

* build: remove mantic from ppa builds (#30322)

removes ppa-build for ubuntu `mantic`

* gitignore: ignore upload-artefacts (#30325)

Our `WriteArchive`, used by ci builder, creates files in the repo root,in order to upload. After we've built the amd64-builds, we create the uploads, and cause the repo to be flagged as dirty for the remaining builds.

This change fixes it by adding the artefacts to gitignore. Closes #30324

* eth/catalyst: ensure period zero mode leaves no pending txs in pool (#30264)

closes #29475, replaces #29657, #30104 

Fixes two issues. First is a deadlock where the txpool attempts to reorg, but can't complete because there are no readers left for the new txs subscription. Second, resolves a problem with on demand mode where txs may be left pending when there are more pending txs than block space.

Co-authored-by: Martin Holst Swende <[email protected]>

* accounts/abi: handle ABIs with contract type parameter (#30315)

convert parameter of type contract to the basic `address` type
---------

Co-authored-by: Martin HS <[email protected]>

* core/rawdb: drop MigrateTable (#30331)

These are the leftovers from #24028.

* core/vm: reuse Memory instances (#30137)

This PR adds a sync.Pool to reuse instances of Memory in EVMInterpreter.

* build: attempt at reproducible builds (#30321)

This PR implements the conclusions from
https://github.com/ethereum/go-ethereum/issues/28987#issuecomment-2296075028,
that is:

Building with `--strip-all` as a ld-flag to the cgo linker, to remove
symbols. Without that, some spurious reference to a temporary file is
included into the kzg-related library.

Building with `--build-id=none`, to avoid putting a `build id` into the file.

* all: update to go version 1.23.0 (#30323)

This PR updates the version of go used in builds and docker to
1.23.0. Release notes: https://go.dev/doc/go1.23

More importantly, following our policy of maintaining the last two
versions (which now becomes 1.23 and 1.22), we can now make use of
the things that were introduced in 1.22: https://go.dev/doc/go1.22

Go 1.22 makes two changes to “for” loops.
- each iteration creates new variables, 
- for loops may range over integers

Other than that, some interesting library changes and other stuff.

* rpc: add timeout to rpc client Unsubscribe (#30318)

Fixes #30156

This adds a repro of the linked issue. I fixed it by adding a timeout
when issuing the call to unsubscribe.

* cmd/devp2p: require dns:read, dns:edit permissions for cloudflare deploy  (#30326)

This PR adds the `dns:read` and `dns:edit` permissions to the required
set of permissions checked before deploying an ENR tree to Cloudflare.
These permissions are necessary for a successful publish.

**Background**:
The current logic for `devp2p dns to-cloudflare` checks for `zone:edit`
and `zone:read` permissions. However, when running the command with only
these two permissions, the following error occurs:
```
wrong permissions on zone REMOVED-ZONE: map[#zone:edit:false #zone:read:true]
```

Adding `zone:read` and `zone:edit` to the API token led to a different
error:
```
INFO [08-19|14:06:16.782] Retrieving existing TXT records on pos-nodes.hardfork.dev
Authentication error (10000)
```

This suggested that additional permissions were required. I added
`dns:read`, but encountered another error:
```
INFO [08-19|14:11:42.342] Retrieving existing TXT records on pos-nodes.hardfork.dev
INFO [08-19|14:11:42.851] Updating DNS entries
failed to publish REMOVED.pos-nodes.hardfork.dev: Authentication error (10000)
```

Finally, after adding both `dns:read` and `dns:edit` permissions, the
command executed successfully with the following output:
```
INFO [08-19|14:13:07.677] Checking Permissions on zone REMOVED-ZONE
INFO [08-19|14:13:08.014] Retrieving existing TXT records on pos-nodes.hardfork.dev
INFO [08-19|14:13:08.440] Updating DNS entries
INFO [08-19|14:13:08.440] "Updating pos-nodes.hardfork.dev from \"enrtree-root:v1 e=FSED3EDKEKRDDFMCLP746QY6CY l=FDXN3SN67NA5DKA4J2GOK7BVQI seq=1 sig=Glja2c9RviRqOpaaHR0MnHsQwU76nJXadJwFeiXpp8MRTVIhvL0LIireT0yE3ETZArGEmY5Ywz3FVHZ3LR5JTAE\" to \"enrtree-root:v1 e=AB66M4ULYD5OYN4XFFCPVZRLUM l=FDXN3SN67NA5DKA4J2GOK7BVQI seq=1 sig=H8cqDzu0FAzBplK4g3yudhSaNtszIebc2aj4oDm5a5ZE5PAg-xpCnQgVE_53CsgsqQpalD9byafx_FrUT61sagA\""
INFO [08-19|14:13:16.932] Updated DNS entries                      new=32 updated=1 untouched=100
INFO [08-19|14:13:16.932] Deleting stale DNS entries
INFO [08-19|14:13:24.663] Deleted stale DNS entries                count=31
```

With this PR, the required permissions for deploying an ENR tree to
Cloudflare now include `zone:read`, `zone:edit`, `dns:read`, and
`dns:edit`. The initial check now includes all of the necessary
permissions and indicates in the error message which permissions are
missing:
```
INFO [08-19|14:17:20.339] Checking Permissions on zone REMOVED-ZONE
wrong permissions on zone REMOVED-ZONE: map[#dns_records:edit:false #dns_records:read:false #zone:edit:false #zone:read:true]
```

* all: clean up goerli flag and config (#30289)

Co-authored-by: lightclient <[email protected]>

* cmd/utils,p2p: enable discv5 by default (#30327)

* travis.yml: use focal for builds (#30319)

* trie: use go-verkle helper for speedier (*VerkleTrie).RollBackAccount (#30242)

This is a performance improvement on the account-creation rollback code
required for the archive node to support verkle. It uses the utility
function `DeleteAtStem` to remove code and account data per-group
instead of doing it leaf by leaf.

It also fixes an index bug, as code is chunked in 31-byte chunks, so
comparing with the code size should use 31 as its stride.

---------

Co-authored-by: Felix Lange <[email protected]>

* eth/protocols/eth: handle zero-count header requests (#30305)

Proper fix for handling `count=0` get header requests. 

https://en.wikipedia.org/wiki/Count_Zero

* eth/tracers: avoid panic in state test runner (#30332)

Make tracers more robust by handling `nil` receipt as input. 
Also pass in a receipt with gas used in the state test runner.
Closes https://github.com/ethereum/go-ethereum/issues/30117.

---------

Co-authored-by: Sina Mahmoodi <[email protected]>

* build: fix hash for go1.23.0.linux-riscv64.tar.gz (#30335)

build: fix hash for go1.23.0.linux-riscv64.tar.gz

* build: make go buildid static (#30342)

The previous clearing of buildid did fully work, turns out we need to
set it in `ldflags`

The go buildid is the only remaining hurdle for reproducible builds, see
https://github.com/ethereum/go-ethereum/issues/28987#issuecomment-2306412590

This PR changes the go build id application note to say literally `none`

https://github.com/golang/go/issues/33772#issuecomment-528176001:

> This difference is due to the .note.go.buildid section added by the
linker. It can be set to something static e.g. -ldflags=-buildid= (empty
string) to gain reproducibility.

* trie: avoid un-needed map copy (#30343)

This change avoids the an unnecessary map copy if the preimage recording is not enabled.

* beacon/blsync: better error information in test (#30336)

this change reports the error instead of ignoring it

* beacon/light/sync: basic tests for rangeLock (#30269)

adds simple tests for lock and firstUnlocked method from rangeLock
type

---------

Co-authored-by: lightclient <[email protected]>

* build: debug travis build (#30344)

debugging travis build pipeline

* gitignore: ignore build signatures (#30346)

Ignore files are generated during signing of download-binaries, which 'dirty' the vcs for subsequent builds.

* doc: update 2021-08-22-split-postmortem (#30351)

Update 2021-08-22-split-postmortem

* core: implement EIP-2935 (#29465)

https://eips.ethereum.org/EIPS/eip-2935

---------

Co-authored-by: Guillaume Ballet <[email protected]>
Co-authored-by: Ignacio Hagopian <[email protected]>
Co-authored-by: Martin HS <[email protected]>

* core: add metrics for state access (#30353)

This pull request adds a few more performance metrics, specifically:

- The average time cost of an account read
- The average time cost of a storage read
- The rate of account reads
- The rate of storage reads

* core/state: fix trie prefetcher for verkle (#30354)

This pull request fixes the panic issue in prefetcher once the verkle is
activated.

* p2p/discover: fix Write method in metered connection (#30355)

`WriteToUDP` was never called, since `meteredUdpConn` exposed directly
all the methods from the underlying `UDPConn` interface.

This fixes the `discover/egress` metric never being updated.

* accounts/abi/bind, ethclient/simulated: check SendTransaction error in tests (#30349)

In few tests the returned error from `SendTransaction` is not being
checked. This PR checks the returned err in tests.

Returning errors also revealed tx in `TestCommitReturnValue` is not
actually being sent, and returns err ` only replay-protected (EIP-155)
transactions allowed over RPC`. Fixed the transaction by using the
`testTx` function.

* core/state: semantic journalling (part 1) (#28880)

This is a follow-up to #29520, and a preparatory PR to a more thorough
change in the journalling system.

### API methods instead of `append` operations

This PR hides the journal-implementation details away, so that the
statedb invokes methods like `JournalCreate`, instead of explicitly
appending journal-events in a list. This means that it's up to the
journal whether to implement it as a sequence of events or
aggregate/merge events.

### Snapshot-management inside the journal 

This PR also makes it so that management of valid snapshots is moved
inside the journal, exposed via the methods `Snapshot() int` and
`RevertToSnapshot(revid int, s *StateDB)`.


### SetCode

JournalSetCode journals the setting of code: it is implicit that the
previous values were "no code" and emptyCodeHash. Therefore, we can
simplify the setCode journal.

### Selfdestruct

The self-destruct journalling is a bit strange: we allow the
selfdestruct operation to be journalled several times. This makes it so
that we also are forced to store whether the account was already
destructed.

What we can do instead, is to only journal the first destruction, and
after that only journal balance-changes, but not journal the
selfdestruct itself.

This simplifies the journalling, so that internals about state
management does not leak into the journal-API.

### Preimages

Preimages were, for some reason, integrated into the journal management,
despite not being a consensus-critical data structure. This PR undoes
that.

---------

Co-authored-by: Gary Rong <[email protected]>

* signer/core/apitypes: support fixed size arrays for EIP-712 typed data (#30175)

When attempting to hash a typed data struct that includes a type
reference with a fixed-size array, the validation process fails.
According to EIP-712, arrays can be either fixed-size or dynamic,
denoted by `Type[n]` or `Type[]` respectively, although it appears this
currently isn't supported.

This change modifies  the validation logic to accommodate types
containing fixed-size arrays.

* consensus/beacon, core/types: add verkle witness builder (#30129)

This PR adds the bulk verkle witness+proof production at the end of block
production. It reads all data from the tree in one swoop and produces
a verkle proof.

Co-authored-by: Felix Lange <[email protected]>

* trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357)

This PR implements changes related to
[EIP-6800](https://eips.ethereum.org/EIPS/eip-6800) and
[EIP-4762](https://eips.ethereum.org/EIPS/eip-4762) spec updates.

A TL;DR of the changes is that `Version`, `Balance`, `Nonce` and
`CodeSize` are encoded in a single leaf named `BasicData`. For more
details, see the [_Header Values_ table in
EIP-6800](https://eips.ethereum.org/EIPS/eip-6800#header-values).

The motivation for this was simplifying access event patterns, reducing
code complexity, and, as a side effect, saving gas since fewer leaf
nodes must be accessed.

---------

Co-authored-by: Guillaume Ballet <[email protected]>
Co-authored-by: Felix Lange <[email protected]>

* Include tracerConfig in created tracing test (#30364)

Fixes the tracer test filler for when there is tracerConfig.

* core/state: pull the verkle trie from prefetcher for empty storage root (#30369)

This pull request fixes a flaw in prefetcher.

In verkle tree world, both accounts and storage slots are committed into
a single tree instance for state hashing. If the prefetcher is activated, we will
try to pull the trie for the prefetcher for performance speedup. 

However, we had a special logic to skip pulling storage trie if the
storage root is empty. While it's true for merkle as we have nothing to
do with an empty storage trie, it's totally wrong for verkle. The consequences
for skipping pulling is the storage changes are committed into trie A, while the
account changes are committed into trie B (pulled from the prefetcher), boom.

* funding.json: add funding information file (#30385)

Adds a list of funding identifiers.

* all: implement EIP-6110, execution layer triggered deposits (#29431)

This PR implements EIP-6110: Supply validator deposits on chain. It also sketches
out the base for Prague in the engine API types.

* all: remove forkchoicer and reorgNeeded (#29179)

This PR changes how sidechains are handled. 

Before the merge, it was possible to import a chain with lower td and not set it as canonical. After the merge, we expect every chain that we get via InsertChain to be canonical. Non-canonical blocks can still be inserted
with InsertBlockWIthoutSetHead.

If during the InsertChain, the existing chain is not canonical anymore, we mark it as a sidechain and send the SideChainEvents normally.

* core: fix compilation error (#30394)

un-borks a compilation error from a recent merge to master

* all: remove funding verifier (#30391)

Now that verification is done, we can remove the funding information.

* node: fix flaky jwt-test (#30388)

This PR fixes a flaky jwt-test. 

The test is a jwt "from one second in the future". The test passes; the
reason for this is that the CI-system is slow, and by the time the jwt
is actually evaluated, that second has passed, and it's no longer
future.

Alternative to #30380

* build: increase go test timeout (#30398)

This increases the timeout for the go tests on ci, this should prevent
travis from erroring.

see:
https://app.travis-ci.com/github/ethereum/go-ethereum/jobs/625803693

* core/state: state reader abstraction (#29761)

This pull request introduces a state.Reader interface for state
accessing.

The interface could be implemented in various ways. It can be pure trie
only reader, or the combination of trie and state snapshot. What's more,
this interface allows us to have more flexibility in the future, e.g.
the
archive reader (for accessing archive state).

Additionally, this pull request removes the following metrics

- `chain/snapshot/account/reads`
- `chain/snapshot/storage/reads`

* core/state: get rid of field pointer in journal (#30361)

This pull request replaces the field pointer in journal entry with the
field itself, specifically the address of mutated account.

While it will introduce the extra allocation cost, but it's easier for
code reading. Let's measure the overhead overall to see if the change is
acceptable or not.

* build: upgrade -dlgo version to Go 1.23.1 (#30404)

New security fix:
https://groups.google.com/g/golang-announce/c/K-cEzDeCtpc

* internal/ethapi: eth_multicall (#27720)

This is a successor PR to #25743. This PR is based on a new iteration of
the spec: https://github.com/ethereum/execution-apis/pull/484.

`eth_multicall` takes in a list of blocks, each optionally overriding
fields like number, timestamp, etc. of a base block. Each block can
include calls. At each block users can override the state. There are
extra features, such as:

- Include ether transfers as part of the logs
- Overriding precompile codes with evm bytecode
- Redirecting accounts to another address

## Breaking changes

This PR includes the following breaking changes:

- Block override fields of eth_call and debug_traceCall have had the
following fields renamed
  - `coinbase` -> `feeRecipient`
  - `random` -> `prevRandao`
  - `baseFee` -> `baseFeePerGas`

---------

Co-authored-by: Gary Rong <[email protected]>
Co-authored-by: Martin Holst Swende <[email protected]>

* eth/fetcher: fix blob transaction propagation (#30125)

This PR fixes an issue with blob transaction propagation due to the blob
transation txpool rejecting transactions with gapped nonces. The
specific changes are:

- fetch transactions from a peer in the order they were announced to
minimize nonce-gaps (which cause blob txs to be rejected

- don't wait on fetching blob transactions after announcement is
received, since they are not broadcast

Testing:
- unit tests updated to reflect that fetch order should always match tx
announcement order
- unit test added to confirm blob transactions are scheduled immediately
for fetching
  - running the PR on an eth mainnet full node without incident so far

---------

Signed-off-by: Roberto Bayardo <[email protected]>
Co-authored-by: Gary Rong <[email protected]>

* core/state/snapshot: port changes from 29995 (#30040)

#29995 has been reverted due to an unexpected flaw in the state snapshot
process.

Specifically, it attempts to stop the state snapshot generation, which
could potentially
cause the system to halt if the generation is not currently running.

This pull request ports the changes made in #29995 and fixes the flaw.

* beacon/engine/types: remove PayloadV4 (#30415)

h/t @MariusVanDerWijden for finding and fixing this on devnet 3.

I made the mistake of thinking `PayloadVersion` was correlated with the
`GetPayloadVX` method, but it actually tracks which version of
`PayloadAttributes` were passed to `forkchoiceUpdated`. So far, Prague
does not necessitate a new version of fcu, so there is no need for
`PayloadV4`.

Co-authored-by: Marius van der Wijden <[email protected]>

* core/vm: remove panic when address is not present (#30414)

Remove redundant address presence check in `makeGasSStoreFunc`.

This PR simplifies the `makeGasSStoreFunc` function by removing the
redundant check for address presence in the access list. The updated
code now only checks for slot presence, streamlining the logic and
eliminating unnecessary panic conditions.

This change removes the unnecessary address presence check, simplifying
the code and improving maintainability without affecting functionality.
The previous panic condition was intended as a canary during the testing
phases (i.e. _YOLOv2_) and is no longer needed.

* beacon/light/api: fixed blsync update query (#30421)

This PR fixes what https://github.com/ethereum/go-ethereum/pull/30306/
broke. Escaping the `?` in the event sub query was fixed in that PR but
it was still escaped in the `updates` request. This PR adds a URL params
argument to `httpGet` and fixes `updates` query formatting.

* eth/filters: prevent concurrent access in test (#30401)

use a mutex to prevent concurrent access to the api.filters map during `TestPendingTxFilterDeadlock` test

* core/rawdb: more accurate description of freezer in docs (#30393)

fixes https://github.com/ethereum/go-ethereum/issues/29793

* core/state, core/vm: Nyota contract create init simplification (#30409)

Implementation of [this EIP-4762
update](https://github.com/ethereum/EIPs/pull/8867).

---------

Signed-off-by: Guillaume Ballet <[email protected]>
Co-authored-by: Tanishq Jasoria <[email protected]>

* p2p/enode: add quic ENR entry (#30283)

Add `quic` entry to the ENR as proposed in
https://github.com/ethereum/consensus-specs/pull/3644

---------

Co-authored-by: lightclient <[email protected]>

* core/tracing: fix copy/paste error+comments in reason listing (#30431)

Signed-off-by: Guillaume Ballet <[email protected]>

* core/txpool/blobpool: avoid possible zero index panic (#30430)

This situation(`len(txs) == 0`) rarely occurs, but if it does, it will
panic.

---------

Co-authored-by: Martin HS <[email protected]>

* core/rawdb: remove unused transition status state accessors (#30433)

* internal: run tests in parallel (#30381)

Continuation of https://github.com/ethereum/go-ethereum/pull/28546

* core/types: more easily extensible tx signing (#30372)

This change makes the code slightly easier for downstream-projects to extend with more signer-types, but if functionalily equivalent to the previous code.

* core, trie: prealloc capacity for maps (#30437)

- preallocate capacity for map
- avoid `reinject` adding empty value
- use `maps.Copy`

* core/tracing: fix typo in comment (#30443)

minor fix

* core/tracing: add verkle gas change reasons to changelog (#30444)

Add changes from #30409 and #29338 to changelog.

---------

Co-authored-by: Martin HS <[email protected]>
Co-authored-by: Guillaume Ballet <[email protected]>

* Revert "core/rawdb: remove unused transition status state accessors" (#30449)

Reverts ethereum/go-ethereum#30433

* params: release go-ethereum v1.14.9 stable (#30455)

* params: begin v1.14.10 release cycle (#30457)

* genesis: fix dev mode alloc (#30460)

Balance being null causes `getGenesisState` to fail as the balance field
is required in json marshaling of an account.

* core: minor fix for the log wrapper with debug purpose (#30454)

After this PR, https://github.com/ethereum/go-ethereum/pull/28187, the
way to set the default logger is different. This PR only updates the way
to set logger in some test cases' comments that existed in the codebase
(since this commit
https://github.com/ethereum/go-ethereum/commit/b63e3c37a6). Although I
am not sure if it a good way to leave the code in the comment, it truly
makes me more efficiently to debug and fix the failing test cases.

* ethdb/pebble: handle errors (#30367)

* .github: add release maintainers to params/ CODEOWNERS (#30458)

* build: fix macos builds by working around travis osx flaw (#30479)

This should fix https://github.com/ethereum/go-ethereum/issues/30471.
See investigation in https://github.com/ethereum/go-ethereum/pull/30478
for more background.

* beacon, core, eth, miner: integrate witnesses into production Geth (#30069)

This PR integrates witness-enabled block production, witness-creating
payload execution and stateless cross-validation into the `engine` API.
The purpose of the PR is to enable the following use-cases (for API
details, please see next section):

- Cross validating locally created blocks:
- Call `forkchoiceUpdatedWithWitness` instead of `forkchoiceUpdated` to
trigger witness creation too.
- Call `getPayload` as before to retrieve the new block and also the
above created witness.
- Call `executeStatelessPayload` against another client to
cross-validate the block.

- Cross validating locally processed blocks:
- Call `newPayloadWithWitness` instead of `newPayload` to trigger
witness creation too.
- Call `executeStatelessPayload` against another client to
cross-validate the block.

- Block production for stateless clients (local or MEV builders):
- Call `forkchoiceUpdatedWithWitness` instead of `forkchoiceUpdated` to
trigger witness creation too.
- Call `getPayload` as before to retrieve the new block and also the
above created witness.
- Propagate witnesses across the consensus libp2p network for stateless
Ethereum.

- Stateless validator validation:
- Call `executeStatelessPayload` with the propagated witness to
statelessly validate the block.

*Note, the various `WithWitness` methods could also *just be* an
additional boolean flag on the base methods, but this PR wanted to keep
the methods separate until a final consensus is reached on how to
integrate in production.*

---

The following `engine` API types are introduced:

```go
// StatelessPayloadStatusV1 is the result of a stateless payload execution.
type StatelessPayloadStatusV1 struct {
	Status          string      `json:"status"`
	StateRoot       common.Hash `json:"stateRoot"`
	ReceiptsRoot    common.Hash `json:"receiptsRoot"`
	ValidationError *string     `json:"validationError"`
}
```

- Add `forkchoiceUpdatedWithWitnessV1,2,3` with same params and returns
as `forkchoiceUpdatedV1,2,3`, but triggering a stateless witness
building if block production is requested.
- Extend `getPayloadV2,3` to return `executionPayloadEnvelope` with an
additional `witness` field of type `bytes` iff created via
`forkchoiceUpdatedWithWitnessV2,3`.
- Add `newPayloadWithWitnessV1,2,3,4` with same params and returns as
`newPayloadV1,2,3,4`, but triggering a stateless witness creation during
payload execution to allow cross validating it.
- Extend `payloadStatusV1` with a `witness` field of type `bytes` if
returned by `newPayloadWithWitnessV1,2,3,4`.
- Add `executeStatelessPayloadV1,2,3,4` with same base params as
`newPayloadV1,2,3,4` and one more additional param (`witness`) of type
`bytes`. The method returns `statelessPayloadStatusV1`, which mirrors
`payloadStatusV1` but replaces `latestValidHash` with `stateRoot` and
`receiptRoot`.

* travis: work around travis/osx/go1.23 setup bug (#30491)

This is a work-around for a strange issue with travis, specifically,
`os=osx, go: 1.23.1`. When this is used, the actual go that ends up
being used is `go1.19.4 darwin/amd64 `.

Using `which go`, it told me that the `go` in the path was a softlink at
`/Users/travis/gopath/bin/go1.23.1 `. However, this was not true: using
`command -v go`, it told me that the actual `go` that was used is a
softlink at `/usr/local/bin/go`.

This change rewrites the `/usr/local/bin/go` softlink to point to the
binary at `/Users/travis/gopath/bin/go1.23.1`, so we get the right
go-version.

* cmd/utils: fix `setEtherbase` (#30488)

Make `setEtherbase` fall thorugh and handle `miner.pending.feeRecipient` after showing deprecation-warning for `miner.etherbase`-flag.

* core/state: fix comment of `mode` (#30490)

* core/state: commit snapshot only if the base layer exists (#30493)

This pull request skips the state snapshot update if the base layer is
not existent, eliminating the numerous warning logs after an unclean
shutdown.

Specifically, Geth will rewind its chain head to a historical block
after unclean shutdown and state snapshot will be remained as unchanged
waiting for recovery. During this period of time, the snapshot is unusable
and all state updates should be ignored/skipped for state snapshot update.

* internal/ethapi/api: for simulated calls, set gaspool to max value if global gascap is 0 (#30474)

In #27720, we introduced RPC global gas cap. A value of `0` means an unlimited gas cap. However, this was not the case for simulated calls. This PR fixes the behaviour.

* core/rawdb: make sure specified state scheme is valid (#30499)

This change exits with error if user provided a `--state.scheme` which is neither `hash` nor `path`

* feat(repo): `geth/v1.14.9` upstream merge

* internal/ethapi: fix gascap 0 for eth_simulateV1 (#30496)

Similar to #30474.

* core/tracing, core/vm: add ContractCode to the OpContext (#30466)

Extends the opcontext interface to include accessor for code being executed in current context. While it is possible to get the code via `statedb.GetCode`, that approach doesn't work for initcode.

* core/vm: more benchmarks for bls g1/g2-multiexp precompiles (#30459)

This change adds more comprehensive benchmarks with a wider-variety of input sizes for g1 and g2 multi exponentiation.

* p2p/discover: fix flaky tests writing to test.log after completion (#30506)

This PR fixes two tests, which had a tendency to sometimes write to the `*testing.T` `log` facility after the test function had completed, which is not allowed. This PR fixes it by using waitgroups to ensure that the handler/logwriter terminates before the test exits.

closes #30505

* deps: update supranational/blst (#30504)

This update should only affect the fuzzers, as far as I know. But it
seems like it might also fix some arm/macos compilation issue in
https://github.com/ethereum/go-ethereum/issues/30494

Closes #30494 (I think)

* core/txpool, eth/catalyst: ensure gas tip retains current value upon rollback (#30495)

Here we move the method that drops all transactions by temporarily increasing the fee
into the TxPool itself. It's better to have it there because we can set it back to the
configured value afterwards. This resolves a TODO in the simulated backend.

* feat(repo): Fix bug merge 1.14.9 (#320)

* fix lint

* fix bug

* update generation files

* core/txpool/blobpool: revert part of #30437, return all reinject-addresses

* core/txpool/blobpool: add test to check internal shuffling

* Revert "core/txpool, eth/catalyst:  ensure gas tip retains current value upon rollback" (#30521)

Reverts ethereum/go-ethereum#30495

You are free to create a proper Clear method if that's the best way. But
one that does a proper cleanup, not some hacky call to set gas which
screws up logs, metrics and everything along the way. Also doesn't work
for legacy pool local transactions.

The current code had a hack in the simulated code, now we have a hack in
live txpooling code. No, that's not acceptable. I want the live code to
be proper, meaningful API, meaningful comments, meaningful
implementation.

* params: release Geth v1.14.10

* params: begin v1.14.11 release cycle

* feat: merge 1.14.10

* fix(taiko): Fix bug merge 1.14.9 (#325)

* fix bug

* fix bug

* p2p/discover: add config option for disabling FINDNODE liveness check (#30512)

This is for fixing Prysm integration tests.

* core/txpool/blobpool: use types.Sender instead of signer.Sender (#30473)

Use types.Sender(signer, tx) to utilize the transaction's sender cache
and avoid repeated address recover.

* build: use buildx to build multi-platform docker images (#30530)

* eth/catalyst: use setcanonical instead of sethead in simulated fork (#30465)

Fixes https://github.com/ethereum/go-ethereum/issues/30448

* cmd/geth: remove deprecated lightchaindata db (#30527)

This PR removes the dependencies on `lightchaindata` db as the light
protocol has been deprecated and removed from the codebase.

* fix: fix lint errors

* internal/ethapi: remove td field from block (#30386)

implement https://github.com/ethereum/execution-apis/pull/570

* params: go-ethereum v1.14.11 stable

* feat(repo): `geth/v1.14.11` upstream merge

* feat(repo): `geth/v1.14.11` upstream merge

---------

Signed-off-by: Icarus Wu <[email protected]>
Signed-off-by: jsvisa <[email protected]>
Signed-off-by: Roberto Bayardo <[email protected]>
Signed-off-by: Guillaume Ballet <[email protected]>
Co-authored-by: Gary Rong <[email protected]>
Co-authored-by: Gealber Morales <[email protected]>
Co-authored-by: ucwong <[email protected]>
Co-authored-by: kukuru909 <[email protected]>
Co-authored-by: Ha DANG <[email protected]>
Co-authored-by: jwasinger <[email protected]>
Co-authored-by: TinyFoxy <[email protected]>
Co-authored-by: Péter Szilágyi <[email protected]>
Co-authored-by: maskpp <[email protected]>
Co-authored-by: bugmaker9371 <[email protected]>
Co-authored-by: Guillaume Ballet <[email protected]>
Co-authored-by: Felix Lange <[email protected]>
Co-authored-by: jackyin <[email protected]>
Co-authored-by: Felföldi Zsolt <[email protected]>
Co-authored-by: Darioush Jalali <[email protected]>
Co-authored-by: Zoro <[email protected]>
Co-authored-by: Dean Eigenmann <[email protected]>
Co-authored-by: Martin Holst Swende <[email protected]>
Co-authored-by: Marius van der Wijden <[email protected]>
Co-authored-by: prpeh <[email protected]>
Co-authored-by: Halimao <[email protected]>
Co-authored-by: psogv0308 <[email protected]>
Co-authored-by: David Theodore <[email protected]>
Co-authored-by: lightclient <[email protected]>
Co-authored-by: AMIR <[email protected]>
Co-authored-by: lilasxie <[email protected]>
Co-authored-by: gitglorythegreat <[email protected]>
Co-authored-by: Ceyhun Onur <[email protected]>
Co-authored-by: Hteev Oli <[email protected]>
Co-authored-by: winniehere <[email protected]>
Co-authored-by: Marius Kjærstad <[email protected]>
Co-authored-by: zhiqiangxu <[email protected]>
Co-authored-by: Aayush Rajasekaran <[email protected]>
Co-authored-by: minh-bq <[email protected]>
Co-authored-by: Nathan Jo <[email protected]>
Co-authored-by: Jeremy Schlatter <[email protected]>
Co-authored-by: Danyal Prout <[email protected]>
Co-authored-by: JeukHwang <[email protected]>
Co-authored-by: Jordan Krage <[email protected]>
Co-authored-by: Alexander Mint <[email protected]>
Co-authored-by: Sina M <[email protected]>
Co-authored-by: yukionfire <[email protected]>
Co-authored-by: caseylove <[email protected]>
Co-authored-by: dknopik <[email protected]>
Co-authored-by: Marius G <[email protected]>
Co-authored-by: lightclient <[email protected]>
Co-authored-by: Seungmin Kim <[email protected]>
Co-authored-by: Icarus Wu <[email protected]>
Co-authored-by: ysh0566 <[email protected]>
Co-authored-by: Delweng <[email protected]>
Co-authored-by: stevemilk <[email protected]>
Co-authored-by: Zhihao Lin <[email protected]>
Co-authored-by: lmittmann <[email protected]>
Co-authored-by: lmittmann <[email protected]>
Co-authored-by: llkhacquan <[email protected]>
Co-authored-by: taiking <[email protected]>
Co-authored-by: Artyom Aminov <[email protected]>
Co-authored-by: Shude Li <[email protected]>
Co-authored-by: Zoo <[email protected]>
Co-authored-by: Adrian Sutton <[email protected]>
Co-authored-by: Dylan Vassallo <[email protected]>
Co-authored-by: Arran Schlosberg <[email protected]>
Co-authored-by: chen4903 <[email protected]>
Co-authored-by: John Hilliard <[email protected]>
Co-authored-by: Sina Mahmoodi <[email protected]>
Co-authored-by: Karl Bartel <[email protected]>
Co-authored-by: Oksana <[email protected]>
Co-authored-by: Guillaume Ballet <[email protected]>
Co-authored-by: Ignacio Hagopian <[email protected]>
Co-authored-by: Nicolas Gotchac <[email protected]>
Co-authored-by: markus <[email protected]>
Co-authored-by: Roberto Bayardo <[email protected]>
Co-authored-by: Tanishq Jasoria <[email protected]>
Co-authored-by: Guillaume Michel <[email protected]>
Co-authored-by: Håvard Anda Estensen <[email protected]>
Co-authored-by: piersy <[email protected]>
Co-authored-by: Ikko Eltociear Ashimine <[email protected]>
Co-authored-by: Szupingwang <[email protected]>
Co-authored-by: Karol Chojnowski <[email protected]>
Co-authored-by: Ng Wei Han <[email protected]>

if !evm.StateDB.Exist(addr) {
if !isPrecompile && evm.chainRules.IsEIP158 && value.IsZero() {
// Calling a non existing account, don't do anything, but ping the tracer
if debug {
if evm.depth == 0 {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate this change. Thanks for merging CaptureStart/CaptureEnter and CaptureEnd/CaptureExit!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants