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

merge upstream geth 1.14.x (0-7) releases #349

Merged
merged 418 commits into from
Aug 8, 2024

Conversation

danyalprout
Copy link
Contributor

@danyalprout danyalprout commented Jul 14, 2024

Description

Please note, this is still in todo -- planning to spin up some internal nodes to verify and benchmark the changes.

This includes the following releases:

In addition it includes:

I've added some comments for areas that have been explicitly changed and warrant a review. It's also worth reviewing the whole of the eth/miner/ directory.

dbadoy and others added 30 commits April 15, 2024 14:58
This PR adds a limit of 1000 to the "inner" topics in a filter-criteria
…mplement 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.
…#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
log:output the correct variable

Co-authored-by: steven <steven@stevendeMacBook-Pro.local>
rename vmtrace.config to vmtrace.jsonconfig

for consinstency with t8ntool trace.jsonconfig
* core/rawdb: fix typos

* accounts/abi: fix typos

* metrics: fix typo

* beacon: fix typo

* crypto: fix typo

* rpc: fix typo

* rpc: fix typo
* optimize-push

* revert push1 change

* Update instructions.go

* core/vm: go format

* core/vm: fix nit

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
minor simplification to the code
…ion (#29563)

This change removes an unnecessary preallocation and fixes a flaw with no-op copies of some parts of the statedb
…cted 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 <fjl@twurst.com>

* beacon/blsync: fixed linter warning

* Update beacon/blsync/block_sync.go

Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
eth/ethconfig/gen_config.go : go generate fix
enables the bls-contracts on the "Prague" config, so that the testing-team can activate them to make tests.
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.
Co-authored-by: lightclient <lightclient@protonmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
…532)


Co-authored-by: Felix Lange <fjl@twurst.com>
core/tracing/hooks.go Show resolved Hide resolved
eth/tracers/native/call.go Show resolved Hide resolved
core/state_transition.go Show resolved Hide resolved
cmd/devp2p/internal/ethtest/snap.go Show resolved Hide resolved
mdehoog and others added 2 commits August 6, 2024 14:18
# Conflicts:
#	core/vm/contracts.go
#	core/vm/evm.go
#	go.mod
#	go.sum
#	params/protocol_params.go
Merge op-geth changes to v1.14.7 branch
Copy link
Collaborator

@protolambda protolambda left a comment

Choose a reason for hiding this comment

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

Took ~4.5 hours to go through every file diff side-by-side in IDE, checking off every change.

Most changes upstream are mundane; it's new additional features, the new tracer, various refactors, but no critical changes in op-stack code-paths.

The miner package needs a bit more work; the recommit interval thing was unified with payload-timeouts upstream, but that doesn't work well for <= 2 second block time chains.

I'll review the additional non-upstream commits in isolation, and do a final review round tomorrow.

Then with the remaining fixes + a passing monorepo integration PR (For op-e2e tests) I am confident this is ready to merge.

Good to see op-geth catch up with the L1 geth 1.14.X release series :)

consensus/beacon/oplegacy.go Outdated Show resolved Hide resolved
core/rawdb/accessors_chain.go Show resolved Hide resolved
core/state_transition.go Show resolved Hide resolved
core/state_transition.go Show resolved Hide resolved
eth/api_miner.go Show resolved Hide resolved
miner/worker.go Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
miner/worker.go Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
p2p/discover/common.go Show resolved Hide resolved
@protolambda protolambda marked this pull request as ready for review August 8, 2024 23:16
@protolambda protolambda requested a review from a team as a code owner August 8, 2024 23:16
@protolambda protolambda requested a review from sebastianst August 8, 2024 23:16
@protolambda
Copy link
Collaborator

DO NOT SQUASH AND MERGE.

We need to change repository settings to do a regular merge commit, to preserve all the geth commits.

@protolambda protolambda merged commit ee83530 into ethereum-optimism:optimism Aug 8, 2024
4 of 6 checks passed
@protolambda
Copy link
Collaborator

Successfully created a merge commit, history should be preserved well. Tests in monorepo were passing, except a smart-contracts test flake. Work continues in ethereum-optimism/optimism#11382

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.