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 v1.11.6 #229

Merged
merged 70 commits into from
Aug 9, 2023
Merged

Merge v1.11.6 #229

merged 70 commits into from
Aug 9, 2023

Conversation

Tristan-Wilson
Copy link
Member

@Tristan-Wilson Tristan-Wilson commented Jun 8, 2023

v1.11.6 is a maintenance release that also adds a log rotation feature which we are unlikely to use for now. See release notes here: https://github.com/ethereum/go-ethereum/releases/tag/v1.11.6

See the merge commit comment and subsequent commits for details of conflicts that were resolved.

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 <[email protected]>
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.
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 <[email protected]>
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 <[email protected]>
Co-authored-by: Martin Holst Swende <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix the json marshaller of MixedcaseAddress
anusha-ctrl and others added 12 commits April 17, 2023 11:02
The EIP150Hash was an idea where, after the fork, we hardcoded the forked hash as an extra defensive mechanism. It wasn't really used, since forks weren't contentious and for all the various testnets and private networks it's been a hassle to have around. 

This change removes that config field. 

---------

Signed-off-by: jsvisa <[email protected]>
Follow-up to #26697, makes the crawler less verbose on route53-based scenarios.

It also changes the loglevel from debug to info on Updates, which are typically the root, and can be interesting to see.
renames `--vmodule` to `--log.vmodule`, and prints a warning if the old form is used.
In this PR, all TryXXX(e.g. TryGet) APIs of trie are renamed to XXX(e.g. Get) with an error returned.

The original XXX(e.g. Get) APIs are renamed to MustXXX(e.g. MustGet) and does not return any error -- they print a log output. A future PR will change the behaviour to panic on errorrs.
Initial merge commit with resolved conflicts around:
- Change to atomic types in many places
- Remove vm.Config.Debug; now Debug is implied if the tracer is
  set
- EIP150Hash removed from ChainConfig
- Used upstream tracer expected json, will need to fix to include
  arbiturm fields.

Some tests are currently failing.
- Update arbitrum.APIBackend.FeeHistory type
- Add Arbitrum specific tracing fields to calltrace_test
- go mod tidy
@Tristan-Wilson Tristan-Wilson marked this pull request as ready for review June 8, 2023 22:13
@Tristan-Wilson
Copy link
Member Author

Setting back to draft til prerequisite PRs are merged.

@Tristan-Wilson Tristan-Wilson marked this pull request as draft June 9, 2023 18:23
@cla-bot
Copy link

cla-bot bot commented Jun 29, 2023

We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2

@Tristan-Wilson Tristan-Wilson marked this pull request as ready for review June 29, 2023 21:02
@Tristan-Wilson Tristan-Wilson changed the base branch from merge-v1.11.5 to master June 29, 2023 21:03
@cla-bot
Copy link

cla-bot bot commented Jul 31, 2023

We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2

@cla-bot
Copy link

cla-bot bot commented Aug 3, 2023

We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2

Copy link
Contributor

@ganeshvanahalli ganeshvanahalli left a comment

Choose a reason for hiding this comment

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

LGTM

@@ -272,8 +272,8 @@ func (st *StateTransition) buyGas() error {
st.state.SubBalance(st.msg.From, mgval)

// Arbitrum: record fee payment
if st.evm.Config.Debug {
st.evm.Config.Tracer.CaptureArbitrumTransfer(st.evm, &st.msg.From, nil, mgval, true, "feePayment")
if tracer := st.evm.Config.Tracer; tracer != nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

Debug boolean field was removed from Interpreter's Config.
Confirmed via https://github.com/ethereum/go-ethereum/blob/e13fa32cea3497aa311226c62daf21c5847c8e4f/core/vm/interpreter.go#L27

@Tristan-Wilson Tristan-Wilson merged commit 2ff9bcd into master Aug 9, 2023
1 check passed
@tsahee tsahee deleted the merge-v1.11.6 branch November 28, 2023 17:42
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.