-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
[Upgrade] Go-Ethereum release v1.9.24 #1219
Merged
ricardolyn
merged 99 commits into
Consensys:master
from
quorumbot:upgrade/go-ethereum/v1.9.24-2021621140614
Jun 29, 2021
Merged
[Upgrade] Go-Ethereum release v1.9.24 #1219
ricardolyn
merged 99 commits into
Consensys:master
from
quorumbot:upgrade/go-ethereum/v1.9.24-2021621140614
Jun 29, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…terface (#21091) * accounts/abi: refactored abi.Unpack * accounts/abi/bind: fixed error * accounts/abi/bind: modified template * accounts/abi/bind: added ToStruct for conversion * accounts/abi: reenabled tests * accounts/abi: fixed tests * accounts/abi: fixed tests for packing/unpacking * accounts/abi: fixed tests * accounts/abi: added more logic to ToStruct * accounts/abi/bind: fixed template * accounts/abi/bind: fixed ToStruct conversion * accounts/abi/: removed unused code * accounts/abi: updated template * accounts/abi: refactored unused code * contracts/checkpointoracle: updated contracts to sol ^0.6.0 * accounts/abi: refactored reflection logic * accounts/abi: less code duplication in Unpack* * accounts/abi: fixed rebasing bug * fix a few typos in comments * rebase on master Co-authored-by: Guillaume Ballet <gballet@gmail.com>
* mobile: added constructor for big int * mobile: tiny nitpick
…#21572) * Fix potential memory leak in price heap * core: nil free pointer slice (alternative version) Co-authored-by: Martin Holst Swende <martin@swende.se>
… console api (#21608)
* ci: tooltips for javadoc for mobile app * f space
core/types: use stacktrie for derivesha trie: add stacktrie file trie: fix linter core/types: use stacktrie for derivesha rebased: adapt stacktrie to the newer version of DeriveSha Co-authored-by: Martin Holst Swende <martin@swende.se> More linter fixes review feedback: no key offset for nodes converted to hashes trie: use EncodeRLP for full nodes core/types: insert txs in order in derivesha trie: tests for derivesha with stacktrie trie: make stacktrie use pooled hashers trie: make stacktrie reuse tmp slice space trie: minor polishes on stacktrie trie/stacktrie: less rlp dancing core/types: explain the contorsions in DeriveSha ci: fix goimport errors trie: clear mem on subtrie hashing squashme: linter fix stracktrie: use pooling, less allocs (#3) trie: in-place hex prefix, reduce allocs and add rawNode.EncodeRLP Reintroduce the `[]node` method, add the missing `EncodeRLP` implementation for `rawNode` and calculate the hex prefix in place. Co-authored-by: Martin Holst Swende <martin@swende.se> Co-authored-by: Martin Holst Swende <martin@swende.se>
* accounts, signer: implement gnosis safe support * common/math: add type for marshalling big to dec * accounts, signer: properly sign gnosis requests * signer, clef: implement account_signGnosisTx * signer: fix auditlog print, change rpc-name (signGnosisTx to signGnosisSafeTx) * signer: pass validation-messages/warnings to the UI for gnonsis-safe txs * signer/core: minor change to validationmessages of typed data
* trie: update tests to check commit integrity * trie: polish committer * trie: fix typo * trie: remove hasvalue notion According to the benchmarks, type assertion between the pointer and interface is extremely fast. BenchmarkIntmethod-12 1000000000 1.91 ns/op BenchmarkInterface-12 1000000000 2.13 ns/op BenchmarkTypeSwitch-12 1000000000 1.81 ns/op BenchmarkTypeAssertion-12 2000000000 1.78 ns/op So the overhead for asserting whether the shortnode has "valuenode" child is super tiny. No necessary to have another field. * trie: linter nitpicks Co-authored-by: Martin Holst Swende <martin@swende.se>
…1649) * core/state/snapshot: exit Geth if generator hits missing trie nodes * core/state/snapshot: error instead of hard die on generator fault * core/state/snapshot: don't enable logging on the tests
* params: update pegasys besu bootnode * params: update goerli initiative bootnodes
* core/bloombits: add benchmark * core/bloombits: optimize inserts
* core/types: tests for bloom * core/types: refactored bloom filter for receipts, added tests core/types: replaced old bloom implementation core/types: change interface of bloom add+test * core/types: refactor bloom * core/types: minor tweak on LogsBloom Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
This fixes issues with the protocol handshake and status exchange and adds support for responding to GetBlockHeaders requests.
This makes it accept the "upgrade,keep-alive" header value, which apparently is a thing.
* signer/core: don't mismatch reject and zero accounts, fixes #21674 * signer/core: docs
…#21673) For some reason, using the shared hash causes a cryptographic incompatibility when using Go 1.15. I noticed this during the development of Discovery v5.1 when I added test vector verification. The go library commit that broke this is golang/go@97240d5, but the way we used HKDF is slightly dodgy anyway and it's not a regression.
* core/vm: dedup config check * review feedback: reuse buffer
* eth/downloader: fix data race around the ancientlimit * eth/downloader: initialize the ancientlimit as 0
* trie: polish commit function * trie: fix typo
We decided to move our fuzzing efforts to oss-fuzz since fuzzbuzz is still early access.
This new flag downloads a known version of Go and builds with it. This is meant for environments where we can't easily upgrade the installed Go version. * .travis.yml: remove install step for PR test builders We added this step originally to avoid re-building everything for every test. go test has become much smarter in recent go releases, so we no longer need to install anything here.
* Bit boundary fix for the DAG generation routine * Fix unnecessary conversion warnings Co-authored-by: Sergey Pavlov <spavlov@gmail.com>
This fixes cross-build and mobile framework failures. It also disables the mac test builder because it was failing all the time in hard to understand ways and we can't afford it anymore under Travis CI's new pricing.
- Fix a type Consensys#43 - Add customizable string generators - Fix bug of NilChange(0) Consensys#47
ricardolyn
reviewed
Jun 29, 2021
ricardolyn
approved these changes
Jun 29, 2021
Scheusal13
reviewed
Feb 24, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
0xEa5C920973eBfff95270dd52c8045c4e6eBFc847
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TODO
Plan & Analyse
As you review, list extra changes and/or tests to be implemented to ensure compatibility with GoQuorum specific features.
Build & Test
master
into this branchAdd any extra changes/tests as comments on this PR.
Go-Ethereum Release: Akantha (v1.9.24)
Release notes
Geth v1.9.24 is a security release. It is built with Go v1.15.5, fixing CVE-2020-28362, which has a critical impact for Ethereum. This release also contains a fix for a consensus issue related to mining, which would have triggered a chain split on January 1st 2021.
We recommend everyone to upgrade to this release or rebuild with Go 1.15.5.
Although we publish pre-built binaries for many platforms, certain systems may not have Go 1.15.5 available yet. Notably, our official Docker images will most probably not use Go 1.15.5 due to the base image not being updated yet. Please check the end of the release notes on how you can build your custom Docker image with Go 1.15.5.
If you are building geth from source, please ensure you are building with Go v1.15.5 or above. We do recommend using the latest Geth version, but if you are not mining and cannot upgrade to geth v1.9.24, please rebuild your current version with Go v1.15.5.
Other changes in this release:
RETURNDATA
field to VM traces (#21715).eth
protocol tester (#21782).Fixed bugs in this release:
abigen
regression that silently discarded an EVM error (#21743).For a full rundown of the changes please consult the Geth 1.9.24 release milestone
You can use the following Dockerfile to build a custom Geth image with Go 1.15.5 while upstream base images get pushed (they usually take quite a few hours):
As with all our previous releases, you can find the:
ethereum/client-go
.Codebase changes assessment
Legend
File Stats: (A) Added, (M) Modified and (R) Removed
Line Stats: (A) Added and (R) Removed
Assessment:
37 Pull Requests
M/A/R
(files changed)
A/R
(lines changed)
core/vm: marshall returnData as hexstring in trace logs
core/vm
(2)core/vm/gen_structlog.go
(12)core/vm/logger.go
(2)console: don't exit on ctrl-c, only on ctrl-d
cmd/geth
(1)console
(1)console/console.go
(6)cmd/geth/consolecmd_test.go
(4)miner: fixed race condition on chainconfig
miner
(1)miner/miner_test.go
(46)core: track and improve tx indexing/unindexing
core/rawdb
(2)core
(1)core/rawdb/chain_iterator.go
(360)core/rawdb/chain_iterator_test.go
(170)core/blockchain.go
(36)Fix potential nil pointer error from blockNrOrHash in AccountRange
eth
(1)eth/api.go
(4)les: remove clientPeerSet and serverSet
les
(9)les/lespay/server
(1)les/peer.go
(446)les/server_handler.go
(300)les/server.go
(128)les/clientpool.go
(98)les/clientpool_test.go
(86)core: fix blockchain insert report time interval calculation
core
(1)core/blockchain_insert.go
(4)accounts/usbwallet: fix ledger version check
accounts/usbwallet
(1)accounts/usbwallet/ledger.go
(4)EIP-2929: Gas cost increases for state access opcodes + YoloV2
core/vm
(9)cmd/geth
(4)core/state
(4)core
(2)core/vm/runtime
(2)tests
(2)cmd/evm/internal/t8ntool
(1)cmd/utils
(1)eth
(1)cmd/puppeth
(1)params
(1)core/vm/operations_acl.go
(444)core/state/statedb_test.go
(376)core/state/access_list.go
(272)core/vm/runtime/runtime_test.go
(224)core/state/statedb.go
(94)cmd/devp2p/internal/ethtest: update test chain
cmd/devp2p/internal/ethtest/testdata
(2)cmd/devp2p/internal/ethtest
(2)cmd/devp2p/internal/ethtest/chain.go
(74)cmd/devp2p/internal/ethtest/types.go
(40)cmd/devp2p/internal/ethtest/testdata/genesis.json
(20)utils, params: add yolov2 bootnode
cmd/utils
(1)params
(1)params/bootnodes.go
(16)cmd/utils/flags.go
(8)params: update yolov2 bootnode with elastic ip
params
(1)params/bootnodes.go
(4)bug: fix dir path in geth attach for yolov2 network
cmd/geth
(1)cmd/geth/consolecmd.go
(4)accounts/abi/bind: restore error functionality
accounts/abi/bind
(1)accounts/abi/bind/base.go
(10)core/state: maintain one more diff layer
core/state
(1)core/state/statedb.go
(16)core/state: disable snapshot iteration if it's not fully constructed
core/state/snapshot
(1)core/state/snapshot/snapshot.go
(108)core: improve snapshot journal recovery
core
(4)core/state/snapshot
(4)core/rawdb
(2)tests
(1)core/blockchain_snapshot_test.go
(1464)core/blockchain_sethead_test.go
(648)core/blockchain_repair_test.go
(636)core/state/snapshot/journal.go
(452)core/state/snapshot/snapshot.go
(234)les, p2p/simulations/adapters: fix issues found while simulating les
p2p/simulations/adapters
(2)les
(1)les/server_handler.go
(60)p2p/simulations/adapters/inproc.go
(12)p2p/simulations/adapters/types.go
(6)common: remove usage of deprecated function
common
(1)internal/ethapi
(1)common/bytes.go
(50)internal/ethapi/api.go
(26)core/state/snapshot: fix journal recovery
core
(1)core/state/snapshot
(1)core/blockchain_snapshot_test.go
(154)core/state/snapshot/journal.go
(32)internal/utesting: implement TAP output
cmd/devp2p
(4)internal/utesting
(2)internal/utesting/utesting.go
(334)internal/utesting/utesting_test.go
(168)cmd/devp2p/runtest.go
(138)cmd/devp2p/discv4cmd.go
(76)cmd/devp2p/discv5cmd.go
(56)cmd/devp2p/internal/ethtest: add correct chain files and improve test output
cmd/devp2p/internal/ethtest
(3)cmd/devp2p/internal/ethtest/testdata
(3)cmd/devp2p
(1)cmd/devp2p/internal/ethtest/suite.go
(110)cmd/devp2p/internal/ethtest/types.go
(74)cmd/devp2p/README.md
(38)cmd/devp2p/internal/ethtest/chain_test.go
(4)core/types, rlp: optimize derivesha
rlp
(2)core/types
(1)rlp/raw.go
(142)rlp/raw_test.go
(76)core/types/derive_sha.go
(40)build: stop verbose output to keep travis from overflowing
build
(1)build/ci.go
(4)trie, tests/fuzzers: implement a stacktrie fuzzer + stacktrie fixes
trie
(3)tests/fuzzers/stacktrie
(1)tests/fuzzers/trie
(1)tests/fuzzers/stacktrie/debug
(1)tests/fuzzers/stacktrie/trie_fuzzer.go
(394)trie/stacktrie_test.go
(98)trie/stacktrie.go
(78)trie/trie_test.go
(72)tests/fuzzers/stacktrie/debug/main.go
(46)build: stop building for Ubuntu Eoan, not supported any more
build
(1)build/ci.go
(4)travis: drop Go 1.13 builders as it's not supported any more
.travis.yml
(1).travis.yml
(20)core/state/snapshot: update generator marker in sync with flushes
core/state/snapshot
(3)core
(1)core/state/snapshot/generate.go
(96)core/state/snapshot/journal.go
(60)core/state/snapshot/snapshot.go
(36)core/blockchain_snapshot_test.go
(8)consensus/ethash: fix the percentage progress report
consensus/ethash
(1)consensus/ethash/algorithm.go
(16)p2p/simulation: fix p2p simulation framework
p2p/simulations/adapters
(2)p2p/simulations/adapters/exec.go
(108)p2p/simulations/adapters/types.go
(48)scripts: move oss-fuzz script to go-ethereum
oss-fuzz.sh
(1)oss-fuzz.sh
(112)fuzzers: remove fuzzbuzz configuration
fuzzbuzz.yaml
(1)fuzzbuzz.yaml
(88)build: add -dlgo flag in ci.go
build
(2)internal/build
(2).travis.yml
(1)appveyor.yml
(1)build/ci.go
(390)internal/build/archive.go
(188)internal/build/util.go
(54).travis.yml
(40)build/checksums.txt
(18)consensus/ethash: use 64bit indexes for the DAG generation
consensus/ethash
(1)consensus/ethash/algorithm.go
(20)build: fix regressions with the -dlgo change
.travis.yml
(1)build
(1).travis.yml
(36)build/ci.go
(20).travis.yml: move test builders after install builders
.travis.yml
(1).travis.yml
(124)params: release Geth v1.9.24 with Go 1.15.5
build
(2).travis.yml
(1)appveyor.yml
(1)params
(1)build/checksums.txt
(32)params/version.go
(16)appveyor.yml
(8).travis.yml
(4)build/ci.go
(4)98 Changed files
core/blockchain_snapshot_test.go
#21775
#21804
core/blockchain_sethead_test.go
core/blockchain_repair_test.go
les/peer.go
core/vm/operations_acl.go
core/state/snapshot/journal.go
#21775
#21804
build/ci.go
#21806
#21824
#21842
#21831
tests/fuzzers/stacktrie/trie_fuzzer.go
core/state/statedb_test.go
core/rawdb/chain_iterator.go
internal/utesting/utesting.go
core/state/snapshot/snapshot.go
#21594
#21804
les/server_handler.go
#21761
core/state/access_list.go
core/vm/runtime/runtime_test.go
.travis.yml
#21824
#21842
#21831
#21833
core/blockchain.go
#21594
internal/build/archive.go
core/rawdb/chain_iterator_test.go
internal/utesting/utesting_test.go
core/state/snapshot/disklayer_test.go
rlp/raw.go
cmd/devp2p/runtest.go
les/server.go
cmd/devp2p/internal/ethtest/types.go
#21742
core/rawdb/accessors_snapshot.go
oss-fuzz.sh
cmd/devp2p/internal/ethtest/suite.go
core/state/statedb.go
#21730
p2p/simulations/adapters/exec.go
les/clientpool.go
trie/stacktrie_test.go
core/state/snapshot/generate.go
#21804
fuzzbuzz.yaml
les/clientpool_test.go
core/vm/eips.go
trie/stacktrie.go
cmd/devp2p/discv4cmd.go
rlp/raw_test.go
cmd/devp2p/internal/ethtest/chain.go
trie/trie_test.go
cmd/utils/flags.go
#21509
core/state/journal.go
params/config.go
eth/api_tracer.go
cmd/devp2p/discv5cmd.go
core/vm/contracts.go
p2p/simulations/adapters/types.go
#21801
internal/build/util.go
common/bytes.go
core/vm/evm.go
cmd/devp2p/rlpxcmd.go
core/vm/runtime/runtime.go
miner/miner_test.go
tests/fuzzers/stacktrie/debug/main.go
core/types/derive_sha.go
cmd/devp2p/README.md
consensus/ethash/algorithm.go
#21793
core/vm/logger.go
#21715
les/test_helper.go
internal/ethapi/api.go
tests/state_test_util.go
#21594
core/state_processor.go
core/genesis.go
tests/fuzzers/trie/trie-fuzzer.go
cmd/evm/internal/t8ntool/execution.go
core/vm/jump_table.go
les/protocol.go
cmd/devp2p/internal/ethtest/testdata/genesis.json
build/checksums.txt
#21842
core/vm/interface.go
tests/init.go
params/bootnodes.go
#21745
les/client_handler.go
les/lespay/server/prioritypool.go
core/rawdb/schema.go
appveyor.yml
#21842
core/vm/gen_structlog.go
p2p/simulations/adapters/inproc.go
accounts/abi/bind/base.go
cmd/geth/consolecmd.go
#21749
cmd/puppeth/wizard_genesis.go
cmd/geth/chaincmd.go
core/vm/interpreter.go
console/console.go
les/enr_entry.go
params/version.go
eth/api.go
cmd/geth/consolecmd_test.go
cmd/geth/main.go
accounts/usbwallet/ledger.go
core/vm/contracts_test.go
cmd/devp2p/internal/ethtest/chain_test.go
cmd/geth/usage.go
core/blockchain_insert.go
cmd/devp2p/internal/ethtest/testdata/chain.rlp.gz
#21742
cmd/devp2p/internal/ethtest/testdata/fullchain.rlp.gz
cmd/devp2p/internal/ethtest/testdata/halfchain.rlp.gz