Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Upgrade] Go-Ethereum release v1.9.23 (#1217)
* params: begin v1.9.23 release cycle * accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#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 (#21597) * mobile: added constructor for big int * mobile: tiny nitpick * core/vm, params: make 2200 in line with spec (#21605) * core: free pointer from slice after popping element from price heap (#21572) * Fix potential memory leak in price heap * core: nil free pointer slice (alternative version) Co-authored-by: Martin Holst Swende <martin@swende.se> * internal/web3ext: improve eth_getBlockByNumber and eth_getBlockByHash console api (#21608) * light: fix wrong description in a comment (#21573) * p2p/enode: remove unused code (#21612) * build: keep geth-sources.jar build result for JavaDoc (#21596) * ci: tooltips for javadoc for mobile app * f space * cmd/bootnode,internal/debug: fix some comments (#21623) * trie: use stacktrie for Derivesha operation (#21407) 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 (#21593) * 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: polishes to trie committer (#21351) * 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> * trie: add Commit-sequence tests for stacktrie commit (#21643) * core/state/snapshot: stop generator if it hits missing trie nodes (#21649) * 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 * cmd/faucet: enable DNS discovery for known networks (#21636) * params: update goerli testnet bootnodes (#21659) * params: update pegasys besu bootnode * params: update goerli initiative bootnodes * core/bloombits: faster generator (#21625) * core/bloombits: add benchmark * core/bloombits: optimize inserts * core/types: optimize bloom filters (#21624) * 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> * cmd/devp2p/internal/ethtest: improve eth test suite (#21615) This fixes issues with the protocol handshake and status exchange and adds support for responding to GetBlockHeaders requests. * node: relax websocket connection header check (#21646) This makes it accept the "upgrade,keep-alive" header value, which apparently is a thing. * signer/core: don't mismatch reject and no accounts (#21677) * signer/core: don't mismatch reject and zero accounts, fixes #21674 * signer/core: docs * p2p/discover: remove use of shared hash instance for key derivation (#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 in markdown logger (#21655) * core/vm: dedup config check * review feedback: reuse buffer * eth/downloader: fix data race around the ancientlimit (#21681) * eth/downloader: fix data race around the ancientlimit * eth/downloader: initialize the ancientlimit as 0 * eth/downloader: cache parent hash instead of recomputing (#21678) * core: fix txpool off-by-one error (#21683) * trie: polish commit function (#21692) * trie: polish commit function * trie: fix typo * accouts, consensus, core: fix some comments (#21617) * console: fix admin.sleepBlocks (#21629) * all: replace RWMutex with Mutex in places where RLock is not used (#21622) * consensus/clique: unexport calcDifficulty and improve comment (#21619) * trie: fix flaw in stacktrie pool reuse (#21699) * internal/web3ext: improve some web3 apis (#21639) * imporve some web3-ext apis * Update web3ext.go Co-authored-by: Felix Lange <fjl@twurst.com> * eth, p2p: use truncated names (#21698) * peer: return localAddr instead of name to prevent spam We currently use the name (which can be freely set by the peer) in several log messages. This enables malicious actors to write spam into your geth log. This commit returns the localAddr instead of the freely settable name. * p2p: reduce usage of peer.Name in warn messages * eth, p2p: use truncated names * Update peer.go Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de> Co-authored-by: Felix Lange <fjl@twurst.com> * cmd/geth, cmd/utils: fixed flags name (#21700) * miner: don't interrupt mining after successful sync (#21701) * miner: exit loop when downloader Done or Failed Following the logic of the comment at the method, this fixes a regression introduced at 7cf56d6 , which would allow external parties to DoS with blocks, preventing mining progress. Signed-off-by: meows <b5c6@protonmail.com> * miner: remove ineff assign (lint) Signed-off-by: meows <b5c6@protonmail.com> * miner: update test re downloader events Signed-off-by: meows <b5c6@protonmail.com> * Revert "miner: remove ineff assign (lint)" This reverts commit eaefcd34ab4862ebc936fb8a07578aa2744bc058. * Revert "miner: exit loop when downloader Done or Failed" This reverts commit 23abd34265aa246c38fc390bb72572ad6ae9fe3b. * miner: add test showing imprecise TestMiner Signed-off-by: meows <b5c6@protonmail.com> * miner: fix waitForMiningState precision This helper function would return an affirmation on the first positive match on a desired bool. This was imprecise; it return false positives by not waiting initially for an 'updated' value. This fix causes TestMiner_2 to fail, which is expected. Signed-off-by: meows <b5c6@protonmail.com> * miner: remove TestMiner_2 demonstrating broken test This test demonstrated the imprecision of the test helper function waitForMiningState. This function has been fixed with 6d365c2851, and this test test may now be removed. Signed-off-by: meows <b5c6@protonmail.com> * miner: fix test regarding downloader event/mining expectations See comment for logic. Signed-off-by: meows <b5c6@protonmail.com> * miner: add test describing expectations for downloader/mining events We expect that once the downloader emits a DoneEvent, signaling a successful sync, that subsequent StartEvents are not longer permitted to stop the miner. This prevents a security vulnerability where forced syncs via fake high blocks would stall mining operation. Signed-off-by: meows <b5c6@protonmail.com> * miner: use 'canStop' state to fix downloader event handling - Break downloader event handling into event separating Done and Failed events. We need to treat these cases differently since a DoneEvent should prevent the miner from being stopped on subsequent downloader Start events. - Use canStop state to handle the one-off case when a downloader first succeeds. Signed-off-by: meows <b5c6@protonmail.com> * miner: improve comment wording Signed-off-by: meows <b5c6@protonmail.com> * miner: start mining on downloader events iff not already mining Signed-off-by: meows <b5c6@protonmail.com> * miner: refactor miner update logic w/r/t downloader events This makes mining pause/start logic regarding downloader events more explicit. Instead of eternally handling downloader events after the first done event, the subscription is closed when downloader events are no longer actionable. Signed-off-by: meows <b5c6@protonmail.com> * miner: fix handling downloader events on subcription closed Signed-off-by: meows <b5c6@protonmail.com> * miner: (lint:gosimple) use range over chan instead of for/select Signed-off-by: meows <b5c6@protonmail.com> * miner: refactor update loop to remove race condition The go routine handling the downloader events handling vars in parallel with the parent routine, causing a race condition. This change, though ugly, remove the condition while still allowing the downloader event subscription to be closed when the miner has no further use for it (ie DoneEvent). * miner: alternate fix for miner-flaw Co-authored-by: meows <b5c6@protonmail.com> * accounts/keystore: fix flaky test (#21703) * accounts/keystore: add timeout to test to prevent failure on travis The TestWalletNotifications test sporadically fails on travis. This is because we shutdown the event collection before all events are received. Adding a small timeout (10 milliseconds) allows the collector to be scheduled and to consume all pending events before we shut it down. * accounts/keystore: added newlines back in * accounts/keystore: properly fix the walletNotifications test * params: update CHTs (#21706) * miner: set etherbase even if mining isn't possible at the moment (#21707) * p2p/discover: implement v5.1 wire protocol (#21647) This change implements the Discovery v5.1 wire protocol and also adds an interactive test suite for this protocol. * params: go-ethereum v1.9.23 stable * fix: adapt to #21091 - Update generated code (abigen, done with go generate) - Change Unpack to UnpacIntoInterface - Unused dependency (gotest.tools) * fix: revert contract generation Co-authored-by: Péter Szilágyi <peterke@gmail.com> Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de> Co-authored-by: Guillaume Ballet <gballet@gmail.com> Co-authored-by: Martin Holst Swende <martin@swende.se> Co-authored-by: aaronbuchwald <aaron.buchwald56@gmail.com> Co-authored-by: mr_franklin <mr_franklin@126.com> Co-authored-by: shigeyuki azuchi <azuchi@chaintope.com> Co-authored-by: gary rong <garyrong0905@gmail.com> Co-authored-by: Felix Lange <fjl@twurst.com> Co-authored-by: Raw Pong Ghmoa <58883403+q9f@users.noreply.github.com> Co-authored-by: rene <41963722+renaynay@users.noreply.github.com> Co-authored-by: Hanjiang Yu <delacroix.yu@gmail.com> Co-authored-by: Giuseppe Bertone <bertone.giuseppe@gmail.com> Co-authored-by: meows <b5c6@protonmail.com> Co-authored-by: Baptiste Boussemart <baptiste.boussemart@consensys.net>
- Loading branch information