commit cc05b050df5f88e80bb26aaf6d2f339c49c2d702 Author: Péter Szilágyi Date: Thu Nov 12 22:10:15 2020 +0200 params: release Geth v1.9.24 with Go 1.15.5 (#21842) commit 920a28711746c8e44ef3e6270a41f038d767d92b Author: Felix Lange Date: Wed Nov 11 23:52:50 2020 +0100 .travis.yml: move test builders after install builders (#21833) commit d49407427d1b2642184166bd36ae43070db13e36 Author: Felix Lange Date: Wed Nov 11 22:08:22 2020 +0100 build: fix regressions with the -dlgo change (#21831) 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. commit d990df909d7839640143344e79356754384dcdd0 Author: Slava Karpenko Date: Wed Nov 11 21:13:12 2020 +0100 consensus/ethash: use 64bit indexes for the DAG generation (#21793) * Bit boundary fix for the DAG generation routine * Fix unnecessary conversion warnings Co-authored-by: Sergey Pavlov commit 27d93c1848846b75d0e67fcac284a0d417acd47c Author: Felix Lange Date: Wed Nov 11 14:34:43 2020 +0100 build: add -dlgo flag in ci.go (#21824) 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. commit 70868b1e4ab099d36d68ca86e1a569f9ebfc12dc Author: Marius van der Wijden Date: Tue Nov 10 20:54:59 2020 +0100 fuzzers: removed fuzzbuzz configuration (#21813) We decided to move our fuzzing efforts to oss-fuzz since fuzzbuzz is still early access. commit 941d8b5c5c3b797251378c30125630313f041106 Author: Martin Holst Swende Date: Tue Nov 10 15:21:41 2020 +0100 scripts: create oss-fuzz script in go-ethereum (#21808) commit c52dfd55fb375a798ef2e3d2620dbb38d83624c1 Author: Gary Rong Date: Tue Nov 10 21:19:44 2020 +0800 p2p/simulations/adapters/exec: fix some issues (#21801) - Remove the ws:// prefix from the status endpoint since the ws:// is already included in the stack.WSEndpoint(). - Don't register the services again in the node start. Registration is already done in the initialization stage. - Expose admin namespace via websocket. This namespace is necessary for connecting the peers via websocket. - Offer logging relevant options for exec adapter. It's really painful to mix all log output in the single console. So this PR offers two additional options for exec adapter in this case testers can config the log output(e.g. file output) and log level for each p2p node. commit 0c34eae172d07d4c7778f80aac0b2e96a04e5154 Merge: 7c30f4d08 81ff70007 Author: Péter Szilágyi Date: Mon Nov 9 17:57:23 2020 +0200 Merge pull request #21803 from holiman/ethash consensus/ethash: fix the percentage progress report commit 7c30f4d08580aa0de5e88b55f8abe96e50e0f441 Merge: 040928d8b 7b7b327ff Author: Péter Szilágyi Date: Mon Nov 9 17:50:26 2020 +0200 Merge pull request #21804 from karalabe/snapshot-marker-sync core/state/snapshot: update generator marker in sync with flushes commit 040928d8bb11cc6e2147c0caa430fab2f2887394 Merge: 9e688fb64 eb694ea70 Author: Péter Szilágyi Date: Mon Nov 9 17:49:56 2020 +0200 Merge pull request #21805 from karalabe/travis-drop-1.13 travis: drop Go 1.13 builders as it's not supported any more commit 9e688fb64c13f5bc14512d3638a561ccb691196c Merge: 81678971d 1143dc6e2 Author: Péter Szilágyi Date: Mon Nov 9 17:49:21 2020 +0200 Merge pull request #21806 from karalabe/deprecate-eoan build: stop building for Ubuntu Eoan, not supported any more commit 1143dc6e295e6f312b18542b3454f52ccd46f53d Author: Péter Szilágyi Date: Mon Nov 9 17:43:54 2020 +0200 build: stop building for Ubuntu Eoan, not supported any more commit eb694ea7067b275058d41061bf175ef2da62491d Author: Péter Szilágyi Date: Mon Nov 9 17:39:42 2020 +0200 travis: drop Go 1.13 builders as it's not supported any more commit 81678971dbd578751896c71f8724fb61f8f22ad7 Author: Martin Holst Swende Date: Mon Nov 9 15:08:12 2020 +0100 trie, tests/fuzzers: implement a stacktrie fuzzer + stacktrie fixes (#21799) * trie: fix error in stacktrie not committing small roots * fuzzers: make trie-fuzzer use correct returnvalues * trie: improved tests * tests/fuzzers: fuzzer for stacktrie vs regular trie * test/fuzzers: make stacktrie fuzzer use 32-byte keys * trie: fix error in stacktrie with small nodes * trie: add (skipped) testcase for stacktrie * tests/fuzzers: address review comments for stacktrie fuzzer * trie: fix docs in stacktrie commit 7b7b327ff294201fa4f7cf460c4a73a4212c06cf Author: Péter Szilágyi Date: Mon Nov 9 16:03:58 2020 +0200 core/state/snapshot: update generator marker in sync with flushes commit 81ff7000775b279e9c6ccf2ca3a3ebd6f406a2f0 Author: Martin Holst Swende Date: Mon Nov 9 11:48:18 2020 +0100 consensus/ethash: fix the percentage progress report commit 97fc1c3b1d054a1345934e18fa6c3489e9119666 Merge: 175506e7f 6cfe49427 Author: Péter Szilágyi Date: Thu Nov 5 11:55:50 2020 +0200 Merge pull request #21787 from karalabe/pod-non-verbose build: stop verbose output to keep travis from overflowing commit 6cfe494276c097c0e6f5ca31092da747b44943e6 Author: Péter Szilágyi Date: Thu Nov 5 11:52:35 2020 +0200 build: stop verbose output to keep travis from overflowing commit 175506e7fd9601b66355b5cd3f7df4256637586f Author: Martin Holst Swende Date: Wed Nov 4 19:29:24 2020 +0100 core/types, rlp: optimize derivesha (#21728) This PR contains a minor optimization in derivesha, by exposing the RLP int-encoding and making use of it to write integers directly to a buffer (an RLP integer is known to never require more than 9 bytes total). rlp.AppendUint64 might be useful in other places too. The code assumes, just as before, that the hasher (a trie) will copy the key internally, which it does when doing keybytesToHex(key). Co-authored-by: Felix Lange commit 36bb7ac083c31d57519c6e2877588fee01339c9b Author: rene <41963722+renaynay@users.noreply.github.com> Date: Wed Nov 4 17:36:56 2020 +0100 cmd/devp2p/internal/ethtest: add correct chain files and improve test output (#21782) This PR replaces the old test genesis.json and chain.rlp files in the testdata directory for the eth protocol test suite, and also adds documentation for running the eth test suite locally. It also improves the test output text and adds more timeouts. Co-authored-by: Felix Lange commit 5d20fbbb6fb90f06bd5592f2c926f21dc8aa6fa2 Author: Felix Lange Date: Wed Nov 4 15:02:58 2020 +0100 cmd/devp2p, internal/utesting: implement TAP output (#21760) TAP is a text format for test results. Parsers for it are available in many languages, making it easy to consume. I want TAP output from our protocol tests because the Hive wrapper around them needs to know about the test names and their individual results and logs. It would also be possible to just write this info as JSON, but I don't want to invent a new format. This also improves the normal console output for tests (when running without --tap). It now prints -- RUN lines before any output from the test, and indents the log output by one space. commit e6402677c2bbcc6c26fd1c401f95f9a79bf65ea9 Author: Gary Rong Date: Wed Nov 4 19:41:46 2020 +0800 core/state/snapshot: fix journal recovery from generating old journal (#21775) * core/state/snapshot: print warning if failed to resolve journal * core/state/snapshot: fix snapshot recovery When we meet the snapshot journal consisted with: - disk layer generator with new-format - diff layer journal with old-format The base layer should be returned without error. The broken diff layer can be reconstructed later but we definitely don't want to reconstruct the huge diff layer. * core: add tests commit 3eebf340386dee2f6a008664bf8a1e82842a053e Author: Marius van der Wijden Date: Wed Nov 4 11:20:39 2020 +0100 common: remove ToHex and ToHexArray (#21610) ToHex was deprecated a couple years ago. The last remaining use was in ToHexArray, which itself only had a single call site. This just moves ToHexArray near its only remaining call site and implements it using hexutil.Encode. This changes the default behaviour of ToHexArray and with it the behaviour of eth_getProof. Previously we encoded an empty slice as 0, now the empty slice is encoded as 0x. commit b63bffe8202d46ea10ac8c4f441c582642193ac8 Author: Gary Rong Date: Sat Oct 31 01:04:38 2020 +0800 les, p2p/simulations/adapters: fix issues found while simulating les (#21761) This adds a few tiny fixes for les and the p2p simulation framework: LES Parts - Keep the LES-SERVER connection even it's non-synced We had this idea to reject the connections in LES protocol if the les-server itself is not synced. However, in LES protocol we will also receive the connection from another les-server. In this case even the local node is not synced yet, we should keep the tcp connection for other protocols(e.g. eth protocol). - Don't count "invalid message" for non-existing GetBlockHeadersMsg request In the eth syncing mechanism (full sync, fast sync, light sync), it will try to fetch some non-existent blocks or headers(to ensure we indeed download all the missing chain). In this case, it's possible that the les-server will receive the request for non-existent headers. So don't count it as the "invalid message" for scheduling dropping. - Copy the announce object in the closure Before the les-server pushes the latest headers to all connected clients, it will create a closure and queue it in the underlying request scheduler. In some scenarios it's problematic. E.g, in private networks, the block can be mined very fast. So before the first closure is executed, we may already update the latest_announce object. So actually the "announce" object we want to send is replaced. The downsize is the client will receive two announces with the same td and then drop the server. P2P Simulation Framework - Don't double register the protocol services in p2p-simulation "Start". The protocols upon the devp2p are registered in the "New node stage". So don't reigster them again when starting a node in the p2p simulation framework - Add one more new config field "ExternalSigner", in order to use clef service in the framework. commit b63e3c37a62b4ff7dfafb06e05e760d22be94d86 Author: Gary Rong Date: Fri Oct 30 03:01:58 2020 +0800 core: improve snapshot journal recovery (#21594) * core/state/snapshot: introduce snapshot journal version * core: update the disk layer in an atomic way * core: persist the disk layer generator periodically * core/state/snapshot: improve logging * core/state/snapshot: forcibly ensure the legacy snapshot is matched * core/state/snapshot: add debug logs * core, tests: fix tests and special recovery case * core: polish * core: add more blockchain tests for snapshot recovery * core/state: fix comment * core: add recovery flag for snapshot * core: add restart after start-after-crash tests * core/rawdb: fix imports * core: fix tests * core: remove log * core/state/snapshot: fix snapshot * core: avoid callbacks in SetHead * core: fix setHead cornercase where the threshold root has state * core: small docs for the test cases Co-authored-by: Péter Szilágyi commit 43c278cdf93d5469702fd1c2f570dbf3c1718ff0 Author: Gary Rong Date: Wed Oct 28 20:27:37 2020 +0800 core/state: disable snapshot iteration if it's not fully constructed (#21682) * core/state/snapshot: add diskRoot function * core/state/snapshot: disable iteration if the snapshot is generating * core/state/snapshot: simplify the function * core/state: panic for undefined layer