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/foundation release/1.11 (v1.11.6) #538

Merged
merged 83 commits into from
May 26, 2023

Conversation

meowsbits
Copy link
Member

@meowsbits meowsbits commented May 1, 2023

  • core/vm: type EVM deletes Debug field

  • core/vm: a new function is exported and is hard to handle cleanly 267396a

  • linters failing because unused var txpool.eip2f, plus some issues inherited from upstream

  • TestCallTracerNative/bigSlow

--- FAIL: TestCallTracerNative (0.00s)                                                                  
    --- FAIL: TestCallTracerNative/bigSlow (0.01s)                                                      
        calltrace_test.go:152: Call tracer type: *native.callTracer    
        calltrace_test.go:181: trace mismatch                                                           
             have: {"from":"0xf8bda96b67036ee48107f2a0695ea673479dda56","gas":"0x231860","gasUsed":"0x219202","to":"0xb2e6a2546c45889427757171ab05b8b438525b42","input":"0x5b620186a05a1315601357600160205260005
65b600080601f600039601f565b6000f3","value":"0x0","type":"CREATE"}
             want: {"from":"0xf8bda96b67036ee48107f2a0695ea673479dda56","gas":"0x22410c","gasUsed":"0x219202","to":"0xb2e6a2546c45889427757171ab05b8b438525b42","input":"0x5b620186a05a1315601357600160205260005
65b600080601f600039601f565b6000f3","value":"0x0","type":"CREATE"}
FAIL
FAIL    github.com/ethereum/go-ethereum/eth/tracers/internal/tracetest  0.162s

holiman and others added 30 commits March 21, 2023 09:04
When interacting with geth as a library to e.g. produce state tests, it is desirable to obtain the consensus-correct jumptable definition for a given fork. This changes adds accessors so the instructionset can be obtained and characteristics about opcodes can be inspected.
The meter for "for measuring the effective amount of data read" within the freezertable was never updated. This change remedies that. 
---------

Signed-off-by: jsvisa <delweng@gmail.com>
With #25287 we made it so that preimages were not recorded by default. This had the side effect that the evm command is no longer able to dump state since it does a preimage lookup to determine the address represented by a key.

This change enables the recording of preimages when the dump command is given.
This changes the Trie interface to add the plain account address as a
parameter to all storage-related methods.

After the introduction of the TryAccount* functions, TryGet, TryUpdate and
TryDelete are now only meant to read an account's storage. In their current
form, they assume that an account storage is stored in a separate trie, and
that the hashing of the slot is independent of its account's address.

The proposed structure for a stateless storage breaks these two
assumptions: the hashing of a slot key requires the address and all slots
and accounts are stored in a single trie.

This PR therefore adds an address parameter to the interface. It is ignored
in the MPT version, so this change has no functional impact, however it
will reduce the diff size when merging verkle trees.
This PR adds counter metrics for the CPU system and the Geth process.
Currently the only metrics available for these items are gauges. Gauges are
fine when the consumer scrapes metrics data at the same interval as Geth
produces new values (every 3 seconds), but it is likely that most consumers
will not scrape that often. Intervals of 10, 15, or maybe even 30 seconds
are probably more common.

So the problem is, how does the consumer estimate what the CPU was doing in
between scrapes. With a counter, it's easy ... you just subtract two
successive values and divide by the time to get a nice, accurate average.
But with a gauge, you can't do that. A gauge reading is an instantaneous
picture of what was happening at that moment, but it gives you no idea
about what was going on between scrapes. Taking an average of values is
meaningless.
…d v2 reporters (#26963)

This change switches to use the smaller influxdata/influxdb1-client package instead of depending on the whole infuxdb package. The new smaller client is very similar to the influxdb-v2 client, which made it possible to refactor the two reporters to reuse code a lot more.
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
This change renames StateTrie methods to remove the Try* prefix. 

We added the Trie methods with prefix 'Try' a long time ago, working
around the problem that most existing methods of Trie did not return the
database error. This weird naming convention has persisted until now.

Co-authored-by: Gary Rong <garyrong0905@gmail.com>
This change ensures that we call Close on a http response body, in various places in the source code (mostly tests)
Make use of new atomic types
---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Fixes multiple data races caused by the fact that resolving fields are done concurrently by the graphql library. It also enforces caching at the stateobject level for account fields.
This PR fixes OOM panic in the callTracer as well as panicing on
opcode validation errors (e.g. stack underflow) in callTracer and
prestateTracer.

Co-authored-by: Martin Holst Swende <martin@swende.se>
Removes the new --log.logfmt directive and hides --log.json, replacing both with log.format=(json|logfmt|terminal). The hidden log.json option is still respected if log.format is not specified for backwards compatibility.

Co-authored-by: Martin Holst Swende <martin@swende.se>
Fix the json marshaller of MixedcaseAddress
holiman and others added 14 commits April 20, 2023 20:14
 Conflicts:
	.github/CODEOWNERS
	.gitignore
	cmd/evm/internal/t8ntool/transition.go
	cmd/evm/runner.go
	cmd/evm/staterunner.go
	consensus/ethash/algorithm.go
	consensus/ethash/ethash.go
	consensus/misc/forks.go
	core/rawdb/chain_freezer.go
	core/txpool/txpool.go
	core/vm/evm.go
	eth/catalyst/api.go
	eth/catalyst/api_test.go
	eth/tracers/internal/tracetest/calltrace_test.go
	eth/tracers/js/tracer_test.go
	go.mod
	go.sum
	graphql/graphql_test.go
	miner/stress/1559/main.go
	miner/stress/clique/main.go
	miner/stress/ethash/main.go
	params/config.go
	params/version.go
	tests/difficulty_test.go
	tests/state_test_util.go
Date: 2023-05-01 07:16:44-07:00
Signed-off-by: meows <b5c6@protonmail.com>
Date: 2023-05-01 07:38:12-07:00
Signed-off-by: meows <b5c6@protonmail.com>
This is a tricky one. This new function is
intended for export (eg. for use with state test gen)
but core-geth does not have params.Rules, so
unfortunately we have to change the signature
to satisfy what core-geth can do. On the upside,
in order for the caller to be able to provide a
type params.Rules, they need to have the same information
(block num, time) that they would need to create
a Rules struct, so its not really breaking usability
except for the hassle of the difference.

Date: 2023-05-01 07:53:32-07:00
Signed-off-by: meows <b5c6@protonmail.com>
Date: 2023-05-01 07:53:58-07:00
Signed-off-by: meows <b5c6@protonmail.com>
…es/genesisT,params/types/goethereum: chain.Config().IsCancun undefined (type ctypes.ChainConfigurator has no field or method IsCancun)

Date: 2023-05-01 08:04:19-07:00
Signed-off-by: meows <b5c6@protonmail.com>
…thod istanbul)

Date: 2023-05-01 08:05:30-07:00
Signed-off-by: meows <b5c6@protonmail.com>
…(type ctypes.ChainConfigurator has no field or method IsCancun)

Date: 2023-05-01 08:07:40-07:00
Signed-off-by: meows <b5c6@protonmail.com>
…pe vm.Config

Date: 2023-05-01 08:08:40-07:00
Signed-off-by: meows <b5c6@protonmail.com>
Date: 2023-05-01 08:09:28-07:00
Signed-off-by: meows <b5c6@protonmail.com>
Date: 2023-05-01 08:13:59-07:00
Signed-off-by: meows <b5c6@protonmail.com>
… of type vm.Config

Date: 2023-05-01 08:14:21-07:00
Signed-off-by: meows <b5c6@protonmail.com>
… of type vm.Config

Date: 2023-05-01 08:35:09-07:00
Signed-off-by: meows <b5c6@protonmail.com>
Date: 2023-05-02 07:21:14-07:00
Signed-off-by: meows <b5c6@protonmail.com>
Date: 2023-05-02 07:23:20-07:00
Signed-off-by: meows <b5c6@protonmail.com>
…tomic.Uint32 contains sync/atomic.noCopy (govet)

Date: 2023-05-02 07:24:28-07:00
Signed-off-by: meows <b5c6@protonmail.com>
…ion gas value with passing value

Adding the following line in the test
shows that 2300000 is the Gas(Limit) value
provided by the serialized transaction.
This value is expected to be a constant
and is basically only a test for proper
unmarshaling and serialization I guess.

> t.Logf("msg.GasLimit: %d, tx.Gas: %d", msg.GasLimit, tx.Gas())

Date: 2023-05-02 08:10:45-07:00
Signed-off-by: meows <b5c6@protonmail.com>
@meowsbits
Copy link
Member Author

@ziogaschr PTAL 4949f76

@meowsbits meowsbits marked this pull request as ready for review May 2, 2023 15:55
@ziogaschr
Copy link
Member

Reviewed the code changes and it looks quite a straight forward PR.
I want to sync classic and mordor, as well test the tracer APIs before giving the green checkmark :)

Nice work @meowsbits

@ziogaschr ziogaschr merged commit 06c01d1 into master May 26, 2023
@ziogaschr ziogaschr deleted the merge/foundation-release/1.11 branch May 26, 2023 08:27
@diega diega mentioned this pull request May 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.