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

[Upgrade] Go-Ethereum release v1.9.12 #1122

Merged
merged 27 commits into from
Feb 4, 2021

Conversation

ricardolyn
Copy link
Contributor

@ricardolyn ricardolyn commented Feb 3, 2021

TODO

Plan & Analyse

  • Review the Release Notes
  • Review PRs in the section below

As you review, list extra changes and/or tests to be implemented to ensure compatibility with GoQuorum specific features.

Build & Test

  • Pull and checkout PR branch locally, then merge GoQuorum master into this branch
  • Resolve conflicts, taking into account the prior analysis
  • Implement required changes until all unit tests pass
  • Implement required changes until acceptance tests pass
  • Implement extra changes and/or tests

Extra Changes & Tests

  • Unit test improvement: created setupTxPoolWithConfig(...) from original setupTxPool() to allow passing a ChainConfig as argument in core/tx_pool_test.go. 39b4817

Go-Ethereum Release: Tall Moose (v1.9.12)

  • Version: v1.9.12
  • Published: 2020-03-16T11:47:08Z

Release notes

Geth v1.9.12 is a small bugfix release, mostly to keep a semi-regular schedule.

One small breaking change in the release is that eth_call will not default to your first account any more if you don't explicitly specify a sender. This was done to avoid the same input behaving differently in different environments. You should never do eth_call without explicitly setting a sender in the first place.

Changes:

  • Default to the zero (0x00...0) account for eth_call sender if none was specified (#20702).
  • Add missing CallOpts.SetFrom for mobile to permit setting a sender on calls (#20721).
  • Decouple constants in two EIPs applied together in Istanbul (#20646).

Fixes:

  • Fix a console regression that lost support for escape and unescape (#20700).
  • Fix failing CI runs due to randomness in tx fetcher scenario tests (#20712).
  • Fix a goroutine leak in transaction propagation (#20762).
  • Fix a possible data race in the downloader (#20690).

The release also includes a few changes towards supporting Go 1.14, but the switch-over is postponed until Go 1.14.1 is released due to an issue in Go around faulty Linux kernel detection.

For a full rundown of the changes please consult the Geth 1.9.12 release milestone.


As with all our previous releases, you can find the:

Codebase changes assessment

Legend

File Stats: (A) Added, (M) Modified and (R) Removed

Line Stats: (A) Added and (R) Removed

Assessment:

  • ✅ No conflict expected
  • ⚠ Review required to assess changes
  • ‼️ Conflicts expected and review required

19 Pull Requests

🔍 Link Title File Stats
M/A/R
Packages changed
(files changed)
Line Stats
A/R
Top 5 Changed Files
(lines changed)
⚠️ #20646 core/vm: use dedicated SLOAD gas constant for EIP-2200 2/0/0
core/vm (1)
params (1)
3/1
core/vm/eips.go (6)
params/protocol_params.go (2)
‼️ #20700 go.mod: upgrade goja to latest 2/0/0
go.sum (1)
go.mod (1)
3/1
go.mod (4)
go.sum (4)
⚠️ #20698 miner, accounts/abi/bind: fix load-sensitive unit tests 3/0/0
accounts/abi/bind (1)
les (1)
miner (1)
13/7
miner/worker_test.go (24)
accounts/abi/bind/bind_test.go (8)
les/clientpool_test.go (8)
#20705 Correct Clef typo 1/0/0
cmd/clef (1)
1/1
cmd/clef/tutorial.md (4)
#20712 eth/fetcher: remove randomness from test data 1/0/0
eth/fetcher (1)
4/4
eth/fetcher/tx_fetcher_test.go (16)
#20690 eth/downloader: fix possible data race by inconsistent field protection 1/0/0
eth/downloader (1)
6/3
eth/downloader/queue.go (18)
⚠️ #20702 internal/ethapi: default to 0x00-account instead of local accounts for calls 1/0/0
internal/ethapi (1)
6/18
internal/ethapi/api.go (48)
#19991 les: separate peer into clientPeer and serverPeer 25/0/0
les (25)
1210/1088
les/peer.go (2792)
les/peer_test.go (754)
les/odr_requests.go (152)
les/client_handler.go (122)
les/benchmark.go (106)
#20721 mobile: add CallOpts.SetFrom 1/0/0
mobile (1)
1/0
mobile/bind.go (2)
#20723 crypto/bn256: fix import line 1/0/0
crypto/bn256 (1)
1/1
crypto/bn256/bn256_slow.go (4)
⚠️ #20724 p2p/discv5: fix test on go 1.14 1/0/0
p2p/discv5 (1)
1/1
p2p/discv5/node_test.go (4)
⚠️ #20728 rpc: correct typo and reword comment for consistency 1/0/0
rpc (1)
2/2
rpc/http.go (8)
#20730 Update gas.go 1/0/0
core/vm (1)
1/1
core/vm/gas.go (4)
#20746 tests: update tests/testdata@develop, include EIP2384 config 2/0/0
tests (2)
4/1
tests/difficulty_test.go (6)
tests/testdata (4)
⚠️ #20752 rpc: improve cancel test 3/0/0
rpc (3)
15/8
rpc/client_test.go (32)
rpc/testservice_test.go (10)
rpc/server_test.go (4)
⚠️ #20741 eth, les: fix time sensitive unit test 8/0/0
les (7)
eth (1)
52/39
les/test_helper.go (82)
les/sync_test.go (46)
les/peer.go (28)
les/client_handler.go (10)
les/server_handler.go (6)
⚠️ #20762 eth: fix transaction announce/broadcast goroutine leak 1/0/0
eth (1)
6/6
eth/peer.go (24)
‼️ #20747 go.mod: update golang.org/x/crypto to fix a Go 1.14 race rejection 2/0/0
go.mod (1)
go.sum (1)
11/14
go.sum (36)
go.mod (14)
‼️ #20767 increase geth retesteth default http timeouts 1/0/0
cmd/geth (1)
6/1
cmd/geth/retesteth.go (14)

50 Changed files

🔍 File Lines Changed Linked PR
les/peer.go 2792 #20741
#19991
les/peer_test.go 754 #19991
⚠️ les/test_helper.go 166 #20741
#19991
les/odr_requests.go 152 #19991
les/client_handler.go 132 #20741
#19991
les/benchmark.go 106 #19991
les/fetcher.go 104 #19991
⚠️ les/server_handler.go 100 #20741
#19991
les/txrelay.go 88 #19991
les/handler_test.go 70 #19991
⚠️ internal/ethapi/api.go 48 #20702
les/sync_test.go 46 #20741
#19991
‼️ go.sum 40 #20747
#20700
les/ulc_test.go 36 #19991
⚠️ rpc/client_test.go 32 #20752
les/clientpool.go 24 #19991
⚠️ eth/peer.go 24 #20762
⚠️ miner/worker_test.go 24 #20698
les/servingqueue.go 20 #19991
les/distributor.go 20 #19991
⚠️ les/client.go 18 #19991
eth/downloader/queue.go 18 #20690
‼️ go.mod 18 #20747
#20700
les/server.go 18 #19991
les/retrieve.go 16 #19991
⚠️ les/odr_test.go 16 #20741
#19991
eth/fetcher/tx_fetcher_test.go 16 #20712
‼️ cmd/geth/retesteth.go 14 #20767
les/serverpool.go 12 #19991
les/sync.go 12 #19991
les/odr.go 12 #19991
⚠️ rpc/testservice_test.go 10 #20752
les/clientpool_test.go 8 #20698
⚠️ accounts/abi/bind/bind_test.go 8 #20698
⚠️ rpc/http.go 8 #20728
tests/difficulty_test.go 6 #20746
core/vm/eips.go 6 #20646
les/distributor_test.go 6 #19991
tests/testdata 4 #20746
les/request_test.go 4 #20741
#19991
core/vm/gas.go 4 #20730
crypto/bn256/bn256_slow.go 4 #20723
⚠️ params/version.go 4
⚠️ p2p/discv5/node_test.go 4 #20724
⚠️ rpc/server_test.go 4 #20752
cmd/clef/tutorial.md 4 #20705
⚠️ eth/handler_test.go 4 #20741
⚠️ params/protocol_params.go 2 #20646
mobile/bind.go 2 #20721
les/commons.go 2 #19991

karalabe and others added 26 commits February 18, 2020 13:27
The new goja version supports the 'escape' and 'unescape' built-in functions.
This fixes #20693
eth/fetcher: remove randomness from test data
This makes eth_call and eth_estimateGas use the zero address
as sender when the "from" parameter is not supplied.

Co-authored-by: Felix Lange <fjl@twurst.com>
* les: separate peer into clientPeer and serverPeer

* les: address comments
This was missing because I forgot to wrap it when bind.CallOpts.From
as added.
typo in func name in the comment
Includes difficulty tests for EIP2384 aka MuirGlacier.
This is supposed to fix the occasional failures in 
TestCancel* on Travis CI.
eth: fix transaction announce/broadcast goroutine leak
go.mod: update golang.org/x/crypto to fix a Go 1.14 race rejection
@ricardolyn ricardolyn marked this pull request as draft February 3, 2021 15:47
@ricardolyn ricardolyn self-assigned this Feb 3, 2021
@ricardolyn ricardolyn requested a review from trung February 3, 2021 16:10
@ricardolyn ricardolyn marked this pull request as ready for review February 3, 2021 16:10
Copy link
Contributor

@nmvalera nmvalera left a comment

Choose a reason for hiding this comment

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

LGTM

@ricardolyn ricardolyn merged commit 1acc655 into Consensys:master Feb 4, 2021
@ricardolyn ricardolyn deleted the upgrade/quorum-geth-1.9.12 branch February 4, 2021 15:22
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.