- Mar 12, 2021
-
-
lightclient authored
This adds support for EIP-2718 typed transactions as well as EIP-2930 access list transactions (tx type 1). These EIPs are scheduled for the Berlin fork. There very few changes to existing APIs in core/types, and several new APIs to deal with access list transactions. In particular, there are two new constructor functions for transactions: types.NewTx and types.SignNewTx. Since the canonical encoding of typed transactions is not RLP-compatible, Transaction now has new methods for encoding and decoding: MarshalBinary and UnmarshalBinary. The existing EIP-155 signer does not support the new transaction types. All code dealing with transaction signatures should be updated to use the newer EIP-2930 signer. To make this easier for future updates, we have added new constructor functions for types.Signer: types.LatestSigner and types.LatestSignerForChainID. This change also adds support for the YoloV3 testnet. Co-authored-by:
Martin Holst Swende <martin@swende.se> Co-authored-by:
Felix Lange <fjl@twurst.com> Co-authored-by:
Ryan Schneider <ryanleeschneider@gmail.com> # Conflicts: # accounts/abi/bind/backends/simulated.go # cmd/evm/internal/t8ntool/execution.go # cmd/evm/internal/t8ntool/transition.go # cmd/geth/main.go # cmd/geth/usage.go # core/bench_test.go # core/state/statedb.go # core/state_prefetcher.go # core/state_processor.go # core/state_transition.go # core/tx_pool.go # core/types/block.go # core/types/derive_sha.go # core/types/gen_tx_json.go # core/types/receipt.go # core/types/receipt_test.go # core/types/transaction.go # core/types/transaction_signing.go # core/types/transaction_test.go # ethclient/ethclient.go # ethclient/signer.go # graphql/graphql.go # internal/ethapi/api.go # internal/guide/guide_test.go # les/benchmark.go # les/odr_test.go # light/odr_test.go # light/txpool.go # miner/worker.go # miner/worker_test.go # signer/core/api.go # tests/state_test_util.go # trie/stacktrie_test.go # turbo/stages/blockchain_test.go
-
- Mar 10, 2021
-
-
gary rong authored
Transaction unindexing will be enabled by default as of 1.10, which causes tx status retrieval will be broken without this PR. This PR introduces a retry mechanism in TxStatus retrieval. # Conflicts: # les/client.go # les/fetcher_test.go # les/handler_test.go # les/odr.go # les/odr_requests.go # les/odr_test.go # les/peer.go # les/pruner_test.go # les/request_test.go # les/sync_test.go # les/test_helper.go # les/ulc_test.go # light/odr.go # light/odr_util.go
-
gary rong authored
This PR adds a more CLI flag, so that the les-server can serve light clients even the local node is not synced yet. This functionality is needed in some testing environments(e.g. hive). After launching the les server, no more blocks will be imported so the node is always marked as "non-synced". # Conflicts: # cmd/geth/main.go # cmd/geth/usage.go # cmd/utils/flags.go # eth/ethconfig/gen_config.go # les/server.go
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
Péter Szilágyi authored
# Conflicts: # Dockerfile # Dockerfile.alltools
-
Péter Szilágyi authored
# Conflicts: # accounts/abi/bind/bind_test.go
-
Marius van der Wijden authored
This PR prevents users from submitting transactions without EIP-155 enabled. This behaviour can be overridden by specifying the flag --rpc.allow-unprotected-txs=true. # Conflicts: # cmd/geth/main.go # eth/backend.go # les/api_backend.go # les/client.go # node/config.go
-
Martin Holst Swende authored
This PR introduces: - db.put to put a value into the database - db.get to read a value from the database - db.delete to delete a value from the database - db.stats to check compaction info from the database - db.compact to trigger a db compaction It also moves inspectdb to db.inspect. # Conflicts: # cmd/geth/chaincmd.go # cmd/geth/main.go # cmd/utils/flags.go # core/rawdb/database.go # ethdb/leveldb/leveldb.go
-
gary rong authored
# Conflicts: # les/server_handler.go # les/server_requests.go
-
Felföldi Zsolt authored
* les: refactored server handler * tests/fuzzers/les: add fuzzer for les server handler * tests, les: update les fuzzer tests: update les fuzzer tests/fuzzer/les: release resources tests/fuzzer/les: pre-initialize all resources * les: refactored server handler and fuzzer Co-authored-by:
rjl493456442 <garyrong0905@gmail.com> # Conflicts: # les/handler_test.go # les/peer.go # les/protocol.go # les/server_handler.go # les/test_helper.go
-
Felföldi Zsolt authored
* les/lespay/server: fix balance expiration and add test * les: move client balances to a new db * les: rename lespayDb to lesDb # Conflicts: # les/client.go # les/clientpool.go # les/commons.go # les/server.go # les/vflux/server/balance_test.go # les/vflux/server/balance_tracker.go
-
Péter Szilágyi authored
# Conflicts: # build/checksums.txt # build/ci.go
-
Péter Szilágyi authored
# Conflicts: # cmd/utils/flags.go
-
Felföldi Zsolt authored
# Conflicts: # les/api.go # les/client.go # les/clientpool.go # les/clientpool_test.go # les/peer.go # les/protocol.go # les/server.go # les/server_handler.go # les/serverpool.go # les/serverpool_test.go # les/vflux/client/api.go # les/vflux/client/fillset.go # les/vflux/client/fillset_test.go # les/vflux/client/queueiterator.go # les/vflux/client/queueiterator_test.go # les/vflux/client/requestbasket.go # les/vflux/client/requestbasket_test.go # les/vflux/client/timestats.go # les/vflux/client/timestats_test.go # les/vflux/client/valuetracker.go # les/vflux/client/valuetracker_test.go # les/vflux/client/wrsiterator.go # les/vflux/client/wrsiterator_test.go # les/vflux/server/balance.go # les/vflux/server/balance_test.go # les/vflux/server/balance_tracker.go # les/vflux/server/clientdb.go # les/vflux/server/clientdb_test.go # les/vflux/server/prioritypool.go # les/vflux/server/prioritypool_test.go
-
Felix Lange authored
In the random sync algorithm used by the DNS node iterator, we first pick a random tree and then perform one sync action on that tree. This happens in a loop until any node is found. If no trees contain any nodes, the iterator will enter a hot loop spinning at 100% CPU. The fix is complicated. The iterator now checks if a meaningful sync action can be performed on any tree. If there is nothing to do, it waits for the next root record recheck time to arrive and then tries again. Fixes #22306
-
Martin Holst Swende authored
* eth/protocols/eth: split up the eth protocol handlers * eth/protocols/eth: define eth-66 protocol messages * eth/protocols/eth: poc implement getblockheaders on eth/66 * eth/protocols/eth: implement remaining eth-66 handlers * eth/protocols: define handler map for eth 66 * eth/downloader: use protocol constants from eth package * eth/protocols/eth: add ETH66 capability * eth/downloader: tests for eth66 * eth/downloader: fix error in tests * eth/protocols/eth: use eth66 for outgoing requests * eth/protocols/eth: remove unused error type * eth/protocols/eth: define protocol length * eth/protocols/eth: fix pooled tx over eth66 * protocols/eth/handlers: revert behavioural change which caused tests to fail * eth/downloader: fix failing test * eth/protocols/eth: add testcases + fix flaw with header requests * eth/protocols: change comments * eth/protocols/eth: review fixes + fixed flaw in RequestOneHeader * eth/protocols: documentation * eth/protocols/eth: review concerns about types # Conflicts: # eth/downloader/downloader_test.go # eth/downloader/peer.go
-
Martin Holst Swende authored
-
Or Neeman authored
io.Reader may return n > 0 and io.EOF at the end of the input stream. readFull did not handle this correctly, looking only at the error. This fixes it to check for n == len(buf) as well.
-
Martin Holst Swende authored
* core/state: copy the snap when copying the state * core/state: deep-copy snap stuff during state Copy # Conflicts: # core/state/statedb.go
-
Martin Holst Swende authored
This PR optimizes the broadcast loop. Instead of iterating twice through a given set of transactions to weed out which peers have and which do not have a tx, to send/announce transactions, we do it only once.
-
rene authored
This updates the eth protocol test suite to use the message type definitions of the 'production' protocol implementation in eth/protocols/eth. # Conflicts: # cmd/devp2p/internal/ethtest/chain_test.go # cmd/devp2p/internal/ethtest/suite.go # cmd/devp2p/internal/ethtest/types.go
-
Péter Szilágyi authored
# Conflicts: # eth/downloader/downloader.go
-
Péter Szilágyi authored
# Conflicts: # core/state/snapshot/snapshot.go # core/state/snapshot/snapshot_test.go
-
Guillaume Ballet authored
# Conflicts: # rpc/client_test.go
-
Péter Szilágyi authored
# Conflicts: # trie/sync.go
-
Alex Mazalov authored
# Conflicts: # cmd/geth/consolecmd.go
-
Guillaume Ballet authored
Make geth build on FreeBSD, fixes #22309.
-
Péter Szilágyi authored
# Conflicts: # core/blockchain.go
-
rene authored
-
Péter Szilágyi authored
# Conflicts: # eth/ethconfig/config.go
-
Marius van der Wijden authored
There was a dormant error with structured inputs that failed unpacking. This commit fixes the error by switching casting to the better abi.ConvertType function. It also adds a test for calling a view function that returns a struct
-
Sina Mahmoodi authored
adds a flag --log.json which if enabled makes the client format logs with JSON. # Conflicts: # internal/debug/flags.go
-
Martin Holst Swende authored
-
Péter Szilágyi authored
-
gary rong authored
* cmd, core, tests: initial state pruner core: fix db inspector cmd/geth: add verify-state cmd/geth: add verification tool core/rawdb: implement flatdb cmd, core: fix rebase core/state: use new contract code layout core/state/pruner: avoid deleting genesis state cmd/geth: add helper function core, cmd: fix extract genesis core: minor fixes contracts: remove useless core/state/snapshot: plugin stacktrie core: polish core/state/snapshot: iterate storage concurrently core/state/snapshot: fix iteration core: add comments core/state/snapshot: polish code core/state: polish core/state/snapshot: rebase core/rawdb: add comments core/rawdb: fix tests core/rawdb: improve tests core/state/snapshot: fix concurrent iteration core/state: run pruning during the recovery core, trie: implement martin's idea core, eth: delete flatdb and polish pruner trie: fix import core/state/pruner: add log core/state/pruner: fix issues core/state/pruner: don't read back core/state/pruner: fix contract code write core/state/pruner: check root node presence cmd, core: polish log core/state: use HEAD-127 as the target core/state/snapshot: improve tests cmd/geth: fix verification tool cmd/geth: use HEAD as the verification default target all: replace the bloomfilter with martin's fork cmd, core: polish code core, cmd: forcibly delete state root core/state/pruner: add hash64 core/state/pruner: fix blacklist core/state: remove blacklist cmd, core: delete trie clean cache before pruning cmd, core: fix lint cmd, core: fix rebase core/state: fix the special case for clique networks core/state/snapshot: remove useless code core/state/pruner: capping the snapshot after pruning cmd, core, eth: fixes core/rawdb: update db inspector cmd/geth: polish code core/state/pruner: fsync bloom filter cmd, core: print warning log core/state/pruner: adjust the parameters for bloom filter cmd, core: create the bloom filter by size core: polish core/state/pruner: sanitize invalid bloomfilter size cmd: address comments cmd/geth: address comments cmd/geth: address comment core/state/pruner: address comments core/state/pruner: rename homedir to datadir cmd, core: address comments core/state/pruner: address comment core/state: address comments core, cmd, tests: address comments core: address comments core/state/pruner: release the iterator after each commit core/state/pruner: improve pruner cmd, core: adjust bloom paramters core/state/pruner: fix lint core/state/pruner: fix tests core: fix rebase core/state/pruner: remove atomic rename core/state/pruner: address comments all: run go mod tidy core/state/pruner: avoid false-positive for the middle state roots core/state/pruner: add checks for middle roots cmd/geth: replace crit with error * core/state/pruner: fix lint * core: drop legacy bloom filter * core/state/snapshot: improve pruner * core/state/snapshot: polish concurrent logs to report ETA vs. hashes * core/state/pruner: add progress report for pruning and compaction too * core: fix snapshot test API * core/state: fix some pruning logs * core/state/pruner: support recovering from bloom flush fail Co-authored-by:
Péter Szilágyi <peterke@gmail.com> # Conflicts: # cmd/geth/main.go # cmd/geth/usage.go # core/blockchain.go # core/blockchain_snapshot_test.go # core/genesis.go # core/rawdb/database.go # core/rawdb/schema.go # core/state/snapshot/conversion.go # core/state/snapshot/snapshot.go # core/state/snapshot/snapshot_test.go # eth/backend.go # go.mod # go.sum # tests/block_test_util.go # tests/state_test_util.go # trie/stacktrie.go
-
Péter Szilágyi authored
# Conflicts: # params/version.go
-
isdyaufh8o7cq authored
fixes an regression which caused build failure on certain platforms # Conflicts: # metrics/cpu_syscall.go
-