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.18 #1142

Merged
merged 22 commits into from
Mar 1, 2021

Conversation

ricardolyn
Copy link
Contributor

@ricardolyn ricardolyn commented Feb 24, 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 lint passes
  • Implement required changes until all unit tests pass
  • Implement required changes until acceptance tests pass
  • Implement extra changes and/or tests
  • Verify any left TODOs in the code

Extra Changes & Tests

  • Example title: example description of change/test

Go-Ethereum Release: Illium Elite (v1.9.18)

  • Version: v1.9.18
  • Published: 2020-07-27T12:00:23Z

Release notes

Geth v1.9.18 is a bugfix release, fixing an occasional fast sync hang in the throttling mechanism (among other improvements):

  • Memory allocation micro-optimizations to improve raw EVM number crunching by 5% (#21336).
  • Fix a regression that made previously persisted --dev chains unable to load back up (#21352).
  • Support configurable developer account (and passphrase) in --dev mode (#21301).
  • Fix downloader throttling that degraded sync and occasionally locked it up (#21263).
  • Fix local gomobile building and fix iOS framework builds (#21361, #21362).
  • Fix stale transaction eviction bug, stabilizing pool churn (#21300).

For a full rundown of the changes please consult the Geth 1.9.18 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

12 Pull Requests

🔍 Link Title File Stats
M/A/R
Packages changed
(files changed)
Line Stats
A/R
Top 5 Changed Files
(lines changed)
#21336 core/vm: use pointers to operations vs. copy by value 3/0/0
core/vm (3)
19/165
core/vm/jump_table.go (326)
core/vm/eips.go (30)
core/vm/interpreter.go (12)
#21305 les: make clientPool.connectedBias configurable 3/0/0
les (3)
28/17
les/clientpool.go (58)
les/api.go (24)
les/clientpool_test.go (8)
⚠️ #21177 ethclient: serialize negative block number as "pending" 4/0/0
core/types (2)
ethclient (2)
30/12
core/types/gen_log_json.go (36)
ethclient/ethclient_test.go (32)
core/types/log.go (8)
ethclient/ethclient.go (8)
#21348 whisper/whisperv6: improve test error messages 1/0/0
whisper/whisperv6 (1)
93/96
whisper/whisperv6/whisper_test.go (378)
⚠️ #21352 cmd/utils: reuse existing genesis in persistent dev mode 1/0/0
cmd/utils (1)
11/0
cmd/utils/flags.go (22)
⚠️ #21301 cmd/utils: implement configurable developer (--dev) account options 1/0/0
cmd/utils (1)
15/5
cmd/utils/flags.go (40)
⚠️ #21361 build: fix GOBIN for gomobile commands 1/0/0
build (1)
3/2
build/ci.go (10)
#21362 mobile: fix build on iOS 1/0/0
mobile (1)
1/1
mobile/bind.go (4)
#21263 eth/downloader: refactor downloader + queue 8/3/0
eth/downloader (9)
eth/fetcher (1)
core/types (1)
1110/355
eth/downloader/queue.go (924)
eth/downloader/queue_test.go (852)
eth/downloader/resultstore.go (388)
eth/downloader/peer.go (178)
eth/downloader/downloader.go (176)
⚠️ #21300 core: fix queued transaction eviction 2/0/0
core (2)
100/8
core/tx_pool_test.go (170)
core/tx_pool.go (46)
‼️ #21368 deps: update uint256 to v1.1.1 2/0/0
go.mod (1)
go.sum (1)
3/3
go.sum (8)
go.mod (4)
⚠️ #21376 params: upgrade CHTs 1/0/0
params (1)
16/16
params/config.go (64)

31 Changed files

🔍 File Lines Changed Linked PR
eth/downloader/queue.go 924 #21263
eth/downloader/queue_test.go 852 #21263
eth/downloader/resultstore.go 388 #21263
whisper/whisperv6/whisper_test.go 378 #21348
core/vm/jump_table.go 326 #21336
⚠️ eth/downloader/peer.go 178 #21263
⚠️ eth/downloader/downloader.go 176 #21263
⚠️ core/tx_pool_test.go 170 #21300
eth/fetcher/block_fetcher.go 138 #21263
eth/downloader/peer_test.go 106 #21263
⚠️ eth/downloader/downloader_test.go 78 #21263
⚠️ params/config.go 64 #21376
eth/downloader/statesync.go 64 #21263
⚠️ cmd/utils/flags.go 62 #21352
#21301
les/clientpool.go 58 #21305
⚠️ core/tx_pool.go 46 #21300
core/types/gen_log_json.go 36 #21177
⚠️ ethclient/ethclient_test.go 32 #21177
core/vm/eips.go 30 #21336
les/api.go 24 #21305
⚠️ core/types/block.go 22 #21263
⚠️ core/vm/interpreter.go 12 #21336
⚠️ build/ci.go 10 #21361
‼️ go.sum 8 #21368
les/clientpool_test.go 8 #21305
core/types/log.go 8 #21177
⚠️ ethclient/ethclient.go 8 #21177
eth/downloader/metrics.go 4 #21263
⚠️ params/version.go 4
mobile/bind.go 4 #21362
⚠️ go.mod 4 #21368

karalabe and others added 19 commits July 16, 2020 15:32
core/vm: use pointers to operations vs. copy by value
Fixes #21175

Co-authored-by: sammy007 <sammy007@users.noreply.github.com>
Co-authored-by: Adam Schmideg <adamschmideg@users.noreply.github.com>
cmd/utils: reuse existing genesis in persistent dev mode
…#21301)

* geth,utils: implement configurable developer account options

Prior to this change --dev (developer) mode
generated one account with an empty password,
irrespective of existing --password and --miner.etherbase
options.

This change makes --dev mode compatible with these
existing flags.

--dev mode may now be used in conjunction with
--password and --miner.etherbase flags to configure
the developer faucet using an existing keystore or
in creating a new account.

Signed-off-by: meows <b5c6@protonmail.com>

* main: remove key/pass flags from usage developer section

These flags are included already in other sections,
and it is not desired to duplicate them.

They were originally included in this section
along with added support for these flags in the
developer mode.

Signed-off-by: meows <b5c6@protonmail.com>
This fixes the iOS framework build by naming the second parameter of the
Signer interface method. The name is important because it becomes part
of the objc method signature.

Fixes #21340
* eth/downloader: refactor downloader + queue

downloader, fetcher: throttle-metrics, fetcher filter improvements, standalone resultcache

downloader: more accurate deliverytime calculation, less mem overhead in state requests

downloader/queue: increase underlying buffer of results, new throttle mechanism

eth/downloader: updates to tests

eth/downloader: fix up some review concerns

eth/downloader/queue: minor fixes

eth/downloader: minor fixes after review call

eth/downloader: testcases for queue.go

eth/downloader: minor change, don't set progress unless progress...

eth/downloader: fix flaw which prevented useless peers from being dropped

eth/downloader: try to fix tests

eth/downloader: verify non-deliveries against advertised remote head

eth/downloader: fix flaw with checking closed-status causing hang

eth/downloader: hashing avoidance

eth/downloader: review concerns + simplify resultcache and queue

eth/downloader: add back some locks, address review concerns

downloader/queue: fix remaining lock flaw

* eth/downloader: nitpick fixes

* eth/downloader: remove the *2*3/4 throttling threshold dance

* eth/downloader: print correct throttle threshold in stats

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
Solves issue#20582. Non-executable transactions should not be evicted on each tick if there are no promote transactions or if a pending/reset empties the pending list. Tests and logging expanded to handle these cases in the future.

core/tx_pool: use a ts for each tx in the queue, but only update the heartbeat on promotion or pending replaced

queuedTs proper naming
core: address comment
@ricardolyn ricardolyn changed the base branch from master to upgrade/go-ethereum/v1.9.17-2021219105839 February 24, 2021 17:10
@CLAassistant
Copy link

CLAassistant commented Feb 24, 2021

CLA assistant check
All committers have signed the CLA.

@ricardolyn ricardolyn self-assigned this Feb 25, 2021
Base automatically changed from upgrade/go-ethereum/v1.9.17-2021219105839 to master March 1, 2021 11:15
@ricardolyn ricardolyn marked this pull request as ready for review March 1, 2021 11:38
@ricardolyn ricardolyn requested a review from nmvalera March 1, 2021 11:39
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 007479d into master Mar 1, 2021
@ricardolyn ricardolyn deleted the upgrade/go-ethereum/v1.9.18-2021224170947 branch March 1, 2021 11:41
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.