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 with latest upstream #107

Merged
merged 89 commits into from
Mar 17, 2023
Merged

Merge with latest upstream #107

merged 89 commits into from
Mar 17, 2023

Conversation

roberto-bayardo
Copy link
Collaborator

The previous test that was failing is still failing, along with a new one. But the new test failure is failing in the upstream repo, so I'll keep an eye on upstream changes that might fix it.

karalabe and others added 30 commits February 16, 2023 09:00
This PR is a (superior) alternative to ethereum#26708, it handles deprecation, primarily two specific cases. 

`rand.Seed` is typically used in two ways
- `rand.Seed(time.Now().UnixNano())` -- we seed it, just to be sure to get some random, and not always get the same thing on every run. This is not needed, with global seeding, so those are just removed. 
- `rand.Seed(1)` this is typically done to ensure we have a stable test. If we rely on this, we need to fix up the tests to use a deterministic prng-source. A few occurrences like this has been replaced with a proper custom source. 

`rand.Read` has been replaced by `crypto/rand`.`Read` in this PR.
)

This change will break one hive test, but pass another and it will be the better way going forward
The method `GetPayloadBodiesByRangeV1` now returns "-38004: Too large request" error if the requested range is too large, according to spec

Co-authored-by: Martin Holst Swende <[email protected]>
This PR contains a small portion of the full pbss PR, namely

    Remove the tracer from trie (and comitter), and instead using an accessList.
    Related changes to the Nodeset.


---------

Co-authored-by: Gary Rong <[email protected]>
The change fixes unmarshaling of JSON null results into json.RawMessage.

---------

Co-authored-by: Jason Yuan <[email protected]>
Co-authored-by: Jason Yuan <[email protected]>
Clarifies the documentation around dumpconfi

Signed-off-by: Sungwoo Kim <[email protected]>
The EmptyRootHash and EmptyCodeHash are defined everywhere in the codebase, this PR replaces all of them with unified one defined in core/types package, and also defines constants for TxRoot, WithdrawalsRoot and UncleRoot
…m#26757)

* eth/filters: fix a breaking change and return rpctransaction

* eth/filters: fix test cases

---------

Co-authored-by: Catror <[email protected]>
fjl and others added 21 commits March 9, 2023 06:37
This changes the test to match the comment description. Using timestampedConfig in this test case is incorrect, the comment says 'local is at Gray Glacier' and isn't aware of more forks.
Here, the core.Message interface turns into a plain struct and
types.Message gets removed.

This is a breaking change to packages core and core/types. While we do
not promise API stability for package core, we do for core/types. An
exception can be made for types.Message, since it doesn't have any
purpose apart from invoking the state transition in package core.
types.Message was also marked deprecated by the same commit it
got added in, 4dca5d4 (November 2016).

The core.Message interface was added in December 2014, in commit
db49417, for the purpose of 'testing' state transitions. It's the
same change that made transaction struct fields private. Before that,
the state transition used *types.Transaction directly.

Over time, multiple implementations of the interface accrued across
different packages, since constructing a Message is required whenever
one wants to invoke the state transition. These implementations all
looked very similar, a struct with private fields exposing the fields
as accessor methods.

By changing Message into a struct with public fields we can remove all
these useless interface implementations. It will also hopefully
simplify future changes to the type with less updates to apply across
all of go-ethereum when a field is added to Message.

---------

Co-authored-by: Felix Lange <[email protected]>
Since forks are now scheduled by block time, it can be necessary
to check the timestamp of a block while generating transactions.
This adds two new rules to the transaction pool:

- A future transaction can not evict a pending transaction.
- A transaction can not overspend available funds of a sender.

---

Co-authored-by: dwn1998 <[email protected]>
Co-authored-by: Martin Holst Swende <[email protected]>
it should be constantinople rather than contantinople
* core: refactor code

* core: drop it from this anonymous goroutine func
Minor refactor to use the 'intended' accessor
…eum#26699)

This makes it possible to run another protocol alongside discv5, by reading 
unhandled packets from the channel.
Not sure why this was removed, it's pretty useful to see the version
also in --help.
@roberto-bayardo roberto-bayardo requested a review from Inphi March 15, 2023 18:40
@Inphi
Copy link
Collaborator

Inphi commented Mar 16, 2023

I'll take a look later today

rejectedTxs = append(rejectedTxs, &rejectedTx{i, err.Error()})
gaspool.SetGas(prevGas)
Copy link
Collaborator

Choose a reason for hiding this comment

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

we should reset the data gas here as well.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

yep good catch, done.

core/gaspool.go Outdated Show resolved Hide resolved
@roberto-bayardo roberto-bayardo merged commit 6713fd5 into eip-4844 Mar 17, 2023
Repository owner deleted a comment Apr 21, 2023
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.