- 11 Oct, 2021 1 commit
-
-
Martin Holst Swende authored
This removes some code: - The clique engine calculated the snapshot twice when verifying headers/blocks. - The method GetBlockHashesFromHash in Header/Block/Lightchain was only used by tests. It is now removed from the API. - The method GetTdByHash internally looked up the number before calling GetTd(hash, num). In many cases, callers already had the number, and used this method just because it has a shorter name. I have removed the method to make the API surface smaller.
-
- 29 Jul, 2021 1 commit
-
-
baptiste-b-pegasys authored
-
- 06 Jul, 2021 1 commit
-
-
gary rong authored
-
- 25 Jun, 2021 1 commit
-
-
Martin Holst Swende authored
This change increases the cache size from 64 to 256 Mb for block bodies. Benchmarks have shown this to be one bottleneck when trying to achieve higher download speeds. The commit also includes a minor optimization for header inserts in package core: previously, the presence of headers in the database was checked for every header before writing it. With the change, if one header fails the presence check, all subsequent headers are also assumed to be missing. This is an improvement because in practice, the headers are almost always missing during sync.
-
- 15 Apr, 2021 1 commit
-
-
Péter Szilágyi authored
* all: add thousandths separators for big numbers on log messages * p2p/sentry: drop accidental file * common, log: add fast number formatter * common, eth/protocols/snap: simplifty fancy num types * log: handle nil big ints
-
- 25 Mar, 2021 1 commit
-
-
Martin Holst Swende authored
-
- 26 Jan, 2021 1 commit
-
-
Martin Holst Swende authored
This PR implements the following modifications - Don't shortcut check if block is present, thus avoid disk lookup - Don't check hash ancestry in early-check (it's still done in parallel checker) - Don't check time.Now for every single header Charts and background info can be found here: https://github.com/holiman/headerimport/blob/main/README.md With these changes, writing 1M headers goes down to from 80s to 62s.
-
- 09 Dec, 2020 1 commit
-
-
Martin Holst Swende authored
* core: add test for headerchain inserts * core, light: write headerchains in batches * core: change to one callback per batch of inserted headers + review concerns * core: error-check on batch write * core: unexport writeHeaders * core: remove callback parameter in InsertHeaderChain The semantics of InsertHeaderChain are now much simpler: it is now an all-or-nothing operation. The new WriteStatus return value allows callers to check for the canonicality of the insertion. This change simplifies use of HeaderChain in package les, where the callback was previously used to post chain events. * core: skip some hashing when writing headers * core: less hashing in header validation * core: fix headerchain flaw regarding blacklisted hashes Co-authored-by:
Felix Lange <fjl@twurst.com>
-
- 25 Nov, 2020 1 commit
-
-
Alex Prut authored
Changes: Simplify nested complexity If an if blocks ends with a return statement then remove the else nesting. Most of the changes has also been reported in golint https://goreportcard.com/report/github.com/ethereum/go-ethereum#golint
-
- 20 Aug, 2020 1 commit
-
-
Péter Szilágyi authored
* core: define and test chain reparation cornercases * core: write up a variety of set-head tests * core, eth: unify chain rollbacks, handle all the cases * core: make linter smile * core: remove commented out legacy code * core, eth/downloader: fix review comments * core: revert a removed recovery mechanism
-
- 22 Apr, 2020 1 commit
-
-
icodezjb authored
* core: fix the condition of reorg * core: fix nitpick to only retrieve head once * core: don't reorg if received chain is longer at same diff Co-authored-by:
Péter Szilágyi <peterke@gmail.com>
-
- 17 Jan, 2020 1 commit
-
-
gary rong authored
* core: write chain data in atomic way * core, light: address comments * core, light: fix linter * core, light: address comments
-
- 26 Sep, 2019 1 commit
-
-
Ryan Schneider authored
This change adds support for EIP-1898.
-
- 17 Sep, 2019 1 commit
-
-
Felföldi Zsolt authored
* les: detailed relative cost metrics * les: filter txpool relative request statistic * les: initialize price factors * les: increased connected bias to lower churn rate * les: fixed clientPool.setLimits * core: do not use mutex in GetAncestor * les: bump factor db version again * les: add metrics * les, light: minor fixes
-
- 11 Jun, 2019 1 commit
-
-
Péter Szilágyi authored
-
- 16 May, 2019 2 commits
-
-
gary rong authored
* core, eth: some fixes for freezer * vendor, core/rawdb, cmd/geth: add db inspector * core, cmd/utils: check ancient store path forceily * cmd/geth, common, core/rawdb: a few fixes * cmd/geth: support windows file rename and fix rename error * core: support ancient plugin * core, cmd: streaming file copy * cmd, consensus, core, tests: keep genesis in leveldb * core: write txlookup during ancient init * core: bump database version
-
gary rong authored
* all: freezer style syncing core, eth, les, light: clean up freezer relative APIs core, eth, les, trie, ethdb, light: clean a bit core, eth, les, light: add unit tests core, light: rewrite setHead function core, eth: fix downloader unit tests core: add receipt chain insertion test core: use constant instead of hardcoding table name core: fix rollback core: fix setHead core/rawdb: remove canonical block first and then iterate side chain core/rawdb, ethdb: add hasAncient interface eth/downloader: calculate ancient limit via cht first core, eth, ethdb: lots of fixes * eth/downloader: print ancient disable log only for fast sync
-
- 02 Apr, 2019 1 commit
-
-
Martin Holst Swende authored
* all: simplify timestamps to uint64 * tests: update definitions * clef, faucet, mobile: leftover uint64 fixups * ethash: fix tests * graphql: update schema for timestamp * ethash: remove unused variable
-
- 26 Mar, 2019 1 commit
-
-
Martin Holst Swende authored
This PR is a more advanced form of the dirty-to-clean cacher (#18995), where we reuse previous database write batches as datasets to uncache, saving a dirty-trie-iteration and a dirty-trie-rlp-reencoding per block.
-
- 06 Mar, 2019 1 commit
-
-
Péter Szilágyi authored
-
- 24 Jan, 2019 1 commit
-
-
b00ris authored
For more information about this light client mode, read https://hackmd.io/s/HJy7jjZpm
-
- 20 Sep, 2018 1 commit
-
-
Péter Szilágyi authored
-
- 30 Jul, 2018 1 commit
-
-
Ha ĐANG authored
-
- 02 Jul, 2018 1 commit
-
-
gary rong authored
-
- 12 Jun, 2018 1 commit
-
-
Felföldi Zsolt authored
-
- 07 May, 2018 1 commit
-
-
Péter Szilágyi authored
-
- 26 Mar, 2018 1 commit
-
-
Péter Szilágyi authored
-
- 26 Feb, 2018 1 commit
-
-
Martin Holst Swende authored
* core: make current*Block atomic, and accessor functions mutex-free * core: fix review concerns * core: fix error in atomic assignment * core/light: implement atomic getter/setter for headerchain
-
- 09 Sep, 2017 1 commit
-
-
Felix Lange authored
* ethdb: add Putter interface and Has method * ethdb: improve docs and add IdealBatchSize * ethdb: remove memory batch lock Batches are not safe for concurrent use. * core: use ethdb.Putter for Write* functions This covers the easy cases. * core/state: simplify StateSync * trie: optimize local node check * ethdb: add ValueSize to Batch * core: optimize HasHeader check This avoids one random database read get the block number. For many uses of HasHeader, the expectation is that it's actually there. Using Has avoids a load + decode of the value. * core: write fast sync block data in batches Collect writes into batches up to the ideal size instead of issuing many small, concurrent writes. * eth/downloader: commit larger state batches Collect nodes into a batch up to the ideal size instead of committing whenever a node is received. * core: optimize HasBlock check This avoids a random database read to get the number. * core: use numberCache in HasHeader numberCache has higher capacity, increasing the odds of finding the header without a database lookup. * core: write imported block data using a batch Restore batch writes of state and add blocks, tx entries, receipts to the same batch. The change also simplifies the miner. This commit also removes posting of logs when a forked block is imported. * core: fix DB write error handling * ethdb: use RLock for Has * core: fix HasBlock comment
-
- 25 May, 2017 1 commit
-
-
changhong authored
1. fix typos 2. methods recevier of struct should be same 3. comments improve (cherry picked from commit 1ba979539582a00b7fd1a7c8a37a6852e59eac0d)
-
- 12 Apr, 2017 1 commit
-
-
Péter Szilágyi authored
* consensus, core, ethstats: use engine specific block beneficiary * core, eth, les, miner: use explicit beneficiary during mining
-
- 06 Apr, 2017 1 commit
-
-
Péter Szilágyi authored
-
- 04 Apr, 2017 1 commit
-
-
Péter Szilágyi authored
This commit adds pluggable consensus engines to go-ethereum. In short, it introduces a generic consensus interface, and refactors the entire codebase to use this interface.
-
- 23 Mar, 2017 1 commit
-
-
Felix Lange authored
This commit solves several issues concerning the genesis block: * Genesis/ChainConfig loading was handled by cmd/geth code. This left library users in the cold. They could specify a JSON-encoded string and overwrite the config, but didn't get any of the additional checks performed by geth. * Decoding and writing of genesis JSON was conflated in WriteGenesisBlock. This made it a lot harder to embed the genesis block into the forthcoming config file loader. This commit changes things so there is a single Genesis type that represents genesis blocks. All uses of Write*Genesis* are changed to use the new type instead. * If the chain config supplied by the user was incompatible with the current chain (i.e. the chain had already advanced beyond a scheduled fork), it got overwritten. This is not an issue in practice because previous forks have always had the highest total difficulty. It might matter in the future though. The new code reverts the local chain to the point of the fork when upgrading configuration. The change to genesis block data removes compression library dependencies from package core.
-
- 22 Mar, 2017 1 commit
-
-
Felföldi Zsolt authored
* les: implement request distributor, fix blocking issues * core: moved header validation before chain mutex lock
-
- 28 Feb, 2017 3 commits
-
-
Felix Lange authored
* common/math: optimize PaddedBigBytes, use it more name old time/op new time/op delta PaddedBigBytes-8 71.1ns ± 5% 46.1ns ± 1% -35.15% (p=0.000 n=20+19) name old alloc/op new alloc/op delta PaddedBigBytes-8 48.0B ± 0% 32.0B ± 0% -33.33% (p=0.000 n=20+20) * all: unify big.Int zero checks Various checks were in use. This commit replaces them all with Int.Sign, which is cheaper and less code. eg templates: func before(x *big.Int) bool { return x.BitLen() == 0 } func after(x *big.Int) bool { return x.Sign() == 0 } func before(x *big.Int) bool { return x.BitLen() > 0 } func after(x *big.Int) bool { return x.Sign() != 0 } func before(x *big.Int) int { return x.Cmp(common.Big0) } func after(x *big.Int) int { return x.Sign() } * common/math, crypto/secp256k1: make ReadBits public in package math
-
Péter Szilágyi authored
-
Péter Szilágyi authored
-
- 23 Feb, 2017 1 commit
-
-
Péter Szilágyi authored
-
- 10 Jan, 2017 1 commit
-
-
Felix Lange authored
-