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

Investigate/perform upgrade to Geth 1.8.1 #665

Closed
5 of 6 tasks
pedropombeiro opened this issue Feb 14, 2018 · 2 comments · Fixed by #702
Closed
5 of 6 tasks

Investigate/perform upgrade to Geth 1.8.1 #665

pedropombeiro opened this issue Feb 14, 2018 · 2 comments · Fixed by #702
Assignees

Comments

@pedropombeiro
Copy link
Contributor

pedropombeiro commented Feb 14, 2018

Problem

Geth 1.8.1 was released today. It contains many improvements that are important for us, and by upgrading to 1.8.1 we render some patches redundant (namely 0011-geth-17-whisperv6-70fbc87.patch which ported Whisper v6 to our fork), making future maintenance easier.

Implementation

Investigate breaking changes in 1.8.1 to determine what work must be done as part of the upgrade. Perform upgrade.

Breaking changes checklist

  • Discovery v4 and v5 have been merged to use the same UDP port (30303 by default). If you are doing manual peer management and using the light client, you may need to ensure your v1.8.0 clients are pointed to port 30303 and not 30304 as previously.
  • Trie pruning is enabled on all --syncmode variations (including --syncmode=full). If you are running an archive node where you would like to retain all historical data, you should disable pruning via --gcmode=archive.
  • Only the latest 128 tries are kept in memory, most tries are garbage collected. If you are running a block explorer or other service relying on transaction tracing without an archive node (--gcmode=archive), you need to trace within this window! Alternatively, specify the reexec: 12345 tracer option to allow regenerating historical state; and ideally switch to chain tracing which amortizes overhead across all traced blocks.
  • Native events rely on modifications to internal go-ethereum types within generated code. If you are using wrappers generated prior to v1.8.0, you will need to regenerate them to be compatible with the new code base.
  • The HTTP/WS RPC endpoint was extended with DNS rebind protection. If you are running an RPC endpoint addressed by name rather than IP, run with --rpcvhost=your.domain to continue accepting remote requests.

Acceptance Criteria

  • The different make targets work as expected (e.g. make ci, make statusgo-android, etc)
  • TBD

Notes

This GHI only makes sense to start once #660 is merged.

TDB

Future Steps

  • Upgrade bootnodes and mailserver cluster with new version.
  • TBD
@dshulyak
Copy link
Contributor

The GasLimit and GasUsed fields of blocks and transactions have type uint64 instead of *big.Int. This is a breaking API change. (#15466)

this should require changes in tx manager code and fake backend for tests

@pedropombeiro
Copy link
Contributor Author

pedropombeiro commented Feb 16, 2018

Random notes as I'm going through the migration:

go test -timeout 20m ./t/e2e/whisper/... -network=
--- FAIL: TestWhisperMailboxTestSuite (23.35s)
    --- FAIL: TestWhisperMailboxTestSuite/TestRequestMessagesInGroupChat (15.29s)
	Error Trace:	whisper_mailbox_test.go:250
	Error:      	Not equal: 
	            	expected: 1
	            	actual: 0

pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
…` and `TestCallRawResultGetTransactionReceipt()`. Part of #665
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
…` and `TestCallRawResultGetTransactionReceipt()`. Part of #665
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
pedropombeiro pushed a commit that referenced this issue Feb 16, 2018
…` and `TestCallRawResultGetTransactionReceipt()`. Part of #665
pedropombeiro pushed a commit that referenced this issue Feb 27, 2018
- PR already accepted upstream for 1.8.2
b00ris referenced this issue Feb 28, 2018
pedropombeiro pushed a commit that referenced this issue Mar 1, 2018
- PR already accepted upstream for 1.8.2
pedropombeiro pushed a commit that referenced this issue Mar 2, 2018
* Update project to use Whisper v6. Part of #638

* Revert "Add patch to downgrade usage of Whisper v6 to v5 in some geth 1.8.1 vendor files. Part of #665" - this reverts commit 6aefb4c.

* Enable light mode on Whisper v6 for non-mail servers. Part of #638

* Fix race condition in whisperv6/peer.go. Part of #665 (PR already accepted upstream for 1.8.2)

* Update bootnode addresses in staticnodes.json. Part of #638

* Add `shh.lightclient` flag and tests for bloom filter setting logic. Part of #638

* Move MakeTestNodeConfig to utils. Part of #638

* Reduce PoW in `whisper_jail_test.go` to fix flaky test. Part of #638
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 a pull request may close this issue.

2 participants