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 go-ethereum master into eip-4844 branch #34

Closed
wants to merge 57 commits into from

Conversation

mdehoog
Copy link
Owner

@mdehoog mdehoog commented Oct 10, 2022

#19 merged changes since Geth v1.10.25 into the eip-4844 branch.

This PR merges changes from the master branch of https://github.com/ethereum/go-ethereum, currently up-to-and-including ethereum@d408cb6f.

Replaces #18.

gballet and others added 30 commits August 18, 2022 13:28
…5547)

typ will be nil when lookupStructType returns an error. cfg.Type should be used instead.
This avoids copying the input []byte while decoding trie nodes. In most
cases, particularly when the input slice is provided by the underlying
database, this optimization is safe to use.

For cases where the origin of the input slice is unclear, the copying version
is retained. The new code performs better even when the input must be
copied, because it is now only copied once in decodeNode.
* Fix some typos

* Fix some mistakes

* Revert 4byte.json

* Fix an incorrect fix

* Change files to fails
Unlock peerSet if there's an error in the downloader
* consensus/beacon: check ttd reached on pos blocks

* consensus/beacon: check ttd reached on pos blocks

* consensus/beacon: check ttd reached on pos blocks
This adds a cache for block logs which is shared by all filters. The cache
size of is configurable using the `--cache.blocklogs` flag.

Co-authored-by: Felix Lange <[email protected]>
* accounts/abi: fix set function

* don't break things

* update test
…reum#25524)

* eth/fetcher: introduce some lag in tx fetching

* eth/fetcher: change conditions a bit

* eth/fetcher: use per-batch quota check

* eth/fetcher: fix some comments

* eth/fetcher: address review concerns

* eth/fetcher: fix panic + add warn log

* eth/fetcher: fix log

* eth/fetcher: fix log

* cmd/devp2p/internal/ethtest: fix ignorign tx announcements from prev. tests

* cmd/devp2p/internal/ethtest: fix TestLargeTxRequest

This increases the number of tx relay messages the test waits for. Since
go-ethereum now processes incoming txs in smaller batches, the
announcement messages it sends are also smaller.

Co-authored-by: Felix Lange <[email protected]>
…on" (ethereum#25567)

Revert "eth/fetcher: don't spend too much time on transaction inclusion (ethereum#25524)"

This reverts commit 0ce494b.
…thereum#25569)

* eth/catalyst: warn less frequently if no beacon client is available

* eth/catalyst: tweak warning frequency a bit

* eth/catalyst: some more tweaks

* Update api.go

Co-authored-by: Felix Lange <[email protected]>
ethereum#25578)

* eth/downloader: handle junkbodies/receipts in the beacon sync

* core: check for header presence when checking for blocks
core/state, trie: fix trie flush order for proper pruning
consensus/beacon: don't ignore errors
Some small fixes to get the existing debug methods to conform to the spec. Mainly dropping the encoding information from the method name as it should be deduced from the debug context and allowing the method to be invoked by either block number or block hash. It also adds the method debug_getTransaction which returns the raw tx bytes by tx hash. This is pretty much equivalent to the eth_getRawTransactionByHash method.
sandakersmann and others added 27 commits August 30, 2022 14:48
* all: move genesis initialization to blockchain

* core: add one more check

* core: fix tests
* eth/catalyst: adjust eta for themerge

* squash

* squash

* eth/catalyst: address review concerns
* graphql: fix tx logs

* minor

* Use optimized search for selecting tx logs
It's a trivial PR to hide the error log when the trie node is not found in the database. The idea for this change is for all TryXXX functions, the error is already returned and we don't need to fire a log explicitly.

Recently there are a few tickets ethereum#25613 ethereum#25589 reporting that the trie nodes are missing because of debug.SetHead. The root cause is after resetting, the chain rewinds to a historical point and re-imports the blocks on top.

Since the node is already synced and started to accept transactions previously, these transactions are still kept in the txpool and verified by txpool with a live state. This live state is constructed based on the live trie database, which is changed fast by node referencing and de-referencing.

Unfortunately, when we construct a live state(like the state in txpool), we don't reference the state we have. The blockchain will garbage collect the intermediate version nodes in another thread which leads the broken live state.

The best solution for this is to forcibly obtain a reference for all live states we create and call release function once it's used up. But it might end up with more junks persisted into disk. Will try to find an elegant solution later in the following PR.
eth/protocols/snap: fix problems due to idle-but-busy peers
This fixes a regression introduced in PR ethereum#25459.
For some reason, an accessor method for this field exists in JS, but
the value was never actually assigned.
This adds a generic mechanism for 'dial options' in the RPC client,
and also implements a specific dial option for the JWT authentication
mechanism used by the engine API. Some real tests for the server-side
authentication handling are also added.

Co-authored-by: Joshua Gutow <[email protected]>
Co-authored-by: Felix Lange <[email protected]>
The JSON-RPC spec requires the "version" field to be exactly "2.0",
so we should verify that. This change is not backwards-compatible with
sloppy client implementations, but I decided to go ahead with it anyway
because the failure will be caught via the returned error.
All fields related to gas must be represented as uint64. Depth is
internally tracked as int, so it makes sense to also store it as int.
trie: check childrens' existence concurrently for snap heal
# Conflicts:
#	eth/catalyst/api.go
#	graphql/graphql.go
#	graphql/graphql_test.go
#	graphql/service.go
#	params/config.go
#	params/version.go
#	trie/database.go
@roberto-bayardo
Copy link
Collaborator

roberto-bayardo commented Nov 3, 2022

superseded by #43

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.