Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | core, dex: Timeout for prepare payload (#72) | Jimmy Hu | 2019-06-12 | 1 | -7/+9 |
| | | | | | | * Timeout on prepare payload * Leave 2 CPU for others * Add hardLimit and softLimit to PreparePayload | ||||
* | app: add app test case and benchmark (#66) | bojie | 2019-06-12 | 1 | -2/+14 |
| | |||||
* | dex: verify header that imported from fetcher (#68) | Sonic | 2019-06-12 | 1 | -0/+4 |
| | |||||
* | core: panic if fork found when inserting header chain (#61) | Wei-Ning Huang | 2019-06-12 | 1 | -1/+6 |
| | |||||
* | core: commit states at snapshot height (#49) | Sonic | 2019-06-12 | 1 | -2/+7 |
| | |||||
* | core: various changes on tps tuning (#46) | Wei-Ning Huang | 2019-06-12 | 1 | -0/+2 |
| | |||||
* | core, dex, downloader: refactor governance | Sonic | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | core, dex, dex/downloader: restore insertChain to upstream version | Sonic | 2019-06-12 | 1 | -16/+14 |
| | | | | | Also rename InsertChain2, insertChain2, InsertHeaderChain2, ValidateHeaderChain2 | ||||
* | core: implement insert chain, headerchain logic | Sonic | 2019-06-12 | 1 | -0/+226 |
| | |||||
* | core: support extracting governance state from state trie | Sonic | 2019-06-12 | 1 | -0/+27 |
| | |||||
* | core: add global signature cache and improve concurrency (#42) | Wei-Ning Huang | 2019-06-12 | 1 | -1/+1 |
| | | | | | From the go trace result, the bottleneck hides in the lock of StoreTxCache. To improve this, we update the cache in a batched fassion. | ||||
* | governance: implement delegate/undelegate function and add tests (#33) | Wei-Ning Huang | 2019-06-12 | 1 | -2/+5 |
| | | | | | Implement delegate/undelegate function to allow others to delegate it's fund to stake on a node. Also added governance contract tests. | ||||
* | core: blockchain: fix concurrent map read and write (#34) | Wei-Ning Huang | 2019-06-12 | 1 | -4/+7 |
| | |||||
* | core: more fix on light node synchronization (#32) | Wei-Ning Huang | 2019-06-12 | 1 | -10/+11 |
| | | | | | | Fix gas calculation in governance contract. Correctly register round height when processing pending blocks. We should register the mapping when we get the pending block instead of waiting for block confirmation. | ||||
* | core: fix light node synchronization issue (#30) | Wei-Ning Huang | 2019-06-12 | 1 | -0/+1 |
| | | | | | InsertChain() need to record the correct roundHeight mapping in order to process snapshotRoundHeight() governance method correctly. | ||||
* | core: revert changes to StateProcessor.Process (#29) | Wei-Ning Huang | 2019-06-12 | 1 | -7/+9 |
| | |||||
* | app: add cache to reuse same tx address which has already recovered (#26) | BJ4 | 2019-06-12 | 1 | -2/+4 |
| | |||||
* | core: refactor validator and fix light node sync (#25) | Wei-Ning Huang | 2019-06-12 | 1 | -96/+25 |
| | | | | | | | | Remove custom Dexon validator by adding a new `ValidateWitnessData` method into the validator interface. This allow us to properly detect know blocks. This also allow other gdex "light" client to sync compaction chain. Also, setup a standalone RPC node for handling RPC reqeusts. | ||||
* | core: use storeRoundHeight to avoid type mismatch (#21) | Sonic | 2019-06-12 | 1 | -9/+6 |
| | | | No need to store round 0, it's already pushed in genesis block | ||||
* | dex, core: Fix make fail (#24) | Jimmy Hu | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | core, dex: Optimize sender calculation in block transactions. (#22) | Jimmy Hu | 2019-06-12 | 1 | -0/+4 |
| | | | | | | * Add Transactions.TouchSenders that calculates sender and update cache * Use TouchSenders to fill the caches | ||||
* | core: validate DKG set with correct nodeset in round-2 (#19) | Wei-Ning Huang | 2019-06-12 | 1 | -3/+7 |
| | | | | | * vendor: sync consensus core * core: validate DKG set with correct nodeset in round-2 | ||||
* | dex: return correct pending nonce (#14) | Wei-Ning Huang | 2019-06-12 | 1 | -2/+11 |
| | | | | We need to return the correct pending nonce (include those in the tx pool). Also, StateAndHeaderByNumber is also fixed to use pending block. | ||||
* | core: blockchain: fix NewBlockChainWithDexonValidator (#4) | Wei-Ning Huang | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | app: fix core test | BJ4 | 2019-06-12 | 1 | -1/+77 |
| | |||||
* | core: vm: governance: add node info | Wei-Ning Huang | 2019-06-12 | 1 | -0/+4 |
| | |||||
* | core: validate roundHeight mapping in governance contract | Wei-Ning Huang | 2019-06-12 | 1 | -0/+12 |
| | |||||
* | app: lock by chain correctly and remove old core in vendor | BJ4 | 2019-06-12 | 1 | -46/+49 |
| | |||||
* | Rename import due to dexon-consensus rename | Wei-Ning Huang | 2019-06-12 | 1 | -2/+2 |
| | |||||
* | dex: minor refactor | Wei-Ning Huang | 2019-06-12 | 1 | -6/+5 |
| | |||||
* | app: add lock to prevent concurrent map read write | Bojie Wu | 2019-06-12 | 1 | -0/+3 |
| | |||||
* | core: tx_pool: remove transactions on BlockConfirmed event | Wei-Ning Huang | 2019-06-12 | 1 | -8/+18 |
| | |||||
* | app: using lock correctly to use map safely | Bojie Wu | 2019-06-12 | 1 | -56/+86 |
| | |||||
* | app: fix concurrent map read write issue and accept fail transaction when ↵ | Bojie Wu | 2019-06-12 | 1 | -1/+7 |
| | | | | round change | ||||
* | app: add cache mechanism to increase performance | Bojie Wu | 2019-06-12 | 1 | -101/+77 |
| | |||||
* | app: fix concurrent read write issue with map | Bojie Wu | 2019-06-12 | 1 | -0/+6 |
| | |||||
* | dex: remove uneeded info from block header | Wei-Ning Huang | 2019-06-12 | 1 | -9/+17 |
| | |||||
* | app: correct process pending block logic | Bojie Wu | 2019-06-12 | 1 | -126/+111 |
| | |||||
* | dex: fix missing randomness assignment | Wei-Ning Huang | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | app: check nonce and balance in prepare payload | Bojie Wu | 2019-06-12 | 1 | -3/+3 |
| | |||||
* | app: implement verify block logic | Bojie Wu | 2019-06-12 | 1 | -1/+49 |
| | |||||
* | app: fixup message format | Wei-Ning Huang | 2019-06-12 | 1 | -3/+3 |
| | |||||
* | app: implement new insert blocks logic | Bojie Wu | 2019-06-12 | 1 | -2/+193 |
| | |||||
* | app: correct dexon application logic | Bojie Wu | 2019-06-12 | 1 | -44/+37 |
| | |||||
* | core: fix nil map initialization | Wei-Ning Huang | 2019-06-12 | 1 | -0/+7 |
| | |||||
* | app: init map | Bojie Wu | 2019-06-12 | 1 | -15/+17 |
| | |||||
* | app: implement new interface method | Bojie Wu | 2019-06-12 | 1 | -0/+56 |
| | |||||
* | Change import go github.com/dexon-foundation/dexon | Wei-Ning Huang | 2019-06-12 | 1 | -16/+16 |
| | |||||
* | core: minor code polishes + rebase fixes | Péter Szilágyi | 2019-04-08 | 1 | -37/+48 |
| | |||||
* | core: re-omit new log event when logs rebirth | rjl493456442 | 2019-04-08 | 1 | -8/+19 |
| | |||||
* | all: simplify timestamps to uint64 (#19372) | Martin Holst Swende | 2019-04-08 | 1 | -6/+6 |
| | | | | | | | | | | | | | | * 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 | ||||
* | core: fix pruner panic when importing low-diff-large-sidechain | Péter Szilágyi | 2019-02-10 | 1 | -11/+17 |
| | |||||
* | core: fix error in block iterator (#18986) | Martin Holst Swende | 2019-02-10 | 1 | -3/+3 |
| | |||||
* | core, eth: fix database version (#18429) | gary rong | 2019-01-11 | 1 | -1/+1 |
| | | | | | | * core, eth: fix database version * eth: polish error message | ||||
* | core, internal, eth, miner, les: Take VM config from BlockChain (#17955) | Paweł Bylica | 2018-12-06 | 1 | -0/+5 |
| | | | | | | | | | | | Until this commit, when sending an RPC request that called `NewEVM`, a blank `vm.Config` would be taken so as to set some options, based on the default configuration. If some extra configuration switches were passed to the blockchain, those would be ignored. This PR adds a function to get the config from the blockchain, and this is what is now used for RPC calls. Some subsequent changes need to be made, see https://github.com/ethereum/go-ethereum/pull/17955#pullrequestreview-182237244 for the details of the discussion. | ||||
* | core: more detailed metrics for block processing (#18119) | Martin Holst Swende | 2018-11-28 | 1 | -1/+12 |
| | |||||
* | core: return error if repair block failed (#18126) | mr_franklin | 2018-11-23 | 1 | -1/+5 |
| | | | | | | * core: return error if repair block failed * make error a bit shorter | ||||
* | Merge pull request #17973 from holiman/splitter2 | Péter Szilágyi | 2018-11-22 | 1 | -153/+221 |
|\ | | | | | core: better side-chain importing | ||||
| * | core: polish side chain importer a bit | Péter Szilágyi | 2018-11-21 | 1 | -290/+181 |
| | | |||||
| * | core: better side-chain importing | Martin Holst Swende | 2018-11-20 | 1 | -96/+273 |
| | | |||||
* | | core: better printout of receipts in bad block reports (#18156) | Martin Holst Swende | 2018-11-22 | 1 | -2/+4 |
|/ | | | | | | * core/blockchain: better printout of receipts in bad block reports * fix splleing | ||||
* | core, eth/downloader: fix ancestor lookup for fast sync | Péter Szilágyi | 2018-11-16 | 1 | -2/+11 |
| | |||||
* | cmd, core, eth, light, trie: add trie read caching layer | Péter Szilágyi | 2018-11-15 | 1 | -7/+14 |
| | |||||
* | core: fix default trie cache limit (#17860) | gary rong | 2018-11-13 | 1 | -1/+1 |
| | |||||
* | rawdb: remove unused parameter for WritePreimages func (#18059) | Corey Lin | 2018-11-09 | 1 | -1/+1 |
| | | | | | | | * rawdb: remove unused parameter for WritePreimages func and modify a spelling mistake * rawdb: update the doc for function WritePreimages | ||||
* | core, internal/ethapi: add and use LRU cache for receipts (#17610) | Ryan Schneider | 2018-09-30 | 1 | -6/+18 |
| | |||||
* | core, eth: fix dependency cycle (#17720) | gary rong | 2018-09-21 | 1 | -50/+21 |
| | |||||
* | all: protect self-mined block during reorg (#17656) | gary rong | 2018-09-20 | 1 | -4/+44 |
| | |||||
* | common, core, light: add block age into info logs | Péter Szilágyi | 2018-09-20 | 1 | -10/+18 |
| | |||||
* | core, eth, trie: use common/prque (#17508) | Wenbiao Zheng | 2018-09-03 | 1 | -3/+3 |
| | |||||
* | miner: move agent logic to worker (#17351) | gary rong | 2018-08-14 | 1 | -3/+4 |
| | | | | | | | | * miner: move agent logic to worker * miner: polish * core: persist block before reorg | ||||
* | core: fix some small typos on comment code (#17278) | Ha ĐANG | 2018-07-30 | 1 | -1/+1 |
| | |||||
* | core: report progress on log chain exports (#17066) | Raghav Sood | 2018-07-26 | 1 | -3/+7 |
| | | | | | | * core/blockchain: export progress * core: polish up chain export progress report a bit | ||||
* | ethdb, core: implement delete for db batch (#17101) | gary rong | 2018-07-02 | 1 | -3/+6 |
| | |||||
* | trie: cache collapsed tries node, not rlp blobs (#16876) | Péter Szilágyi | 2018-06-21 | 1 | -2/+2 |
| | | | | | | | | | | | | The current trie memory database/cache that we do pruning on stores trie nodes as binary rlp encoded blobs, and also stores the node relationships/references for GC purposes. However, most of the trie nodes (everything apart from a value node) is in essence just a collection of references. This PR switches out the RLP encoded trie blobs with the collapsed-but-not-serialized trie nodes. This permits most of the references to be recovered from within the node data structure, avoiding the need to track them a second time (expensive memory wise). | ||||
* | core, eth, les: more efficient hash-based header chain retrieval (#16946) | Felföldi Zsolt | 2018-06-12 | 1 | -0/+12 |
| | |||||
* | core: improve getBadBlocks to return full block rlp (#16902) | Martin Holst Swende | 2018-06-11 | 1 | -13/+7 |
| | | | | | | | | * core: improve getBadBlocks to return full block rlp * core, eth, ethapi: changes to getBadBlocks formatting * ethapi: address review concerns | ||||
* | core: concurrent background transaction sender ecrecover | Péter Szilágyi | 2018-06-05 | 1 | -0/+7 |
| | |||||
* | core, eth, trie: streaming GC for the trie cache (#16810) | Péter Szilágyi | 2018-06-04 | 1 | -22/+20 |
| | | | | | | * core, eth, trie: streaming GC for the trie cache * trie: track memcache statistics | ||||
* | core/rawdb: separate raw database access to own package (#16666) | Péter Szilágyi | 2018-05-07 | 1 | -70/+69 |
| | |||||
* | core: check transaction/receipt count match when reconstructing blocks (#16272) | Kyuntae Ethan Kim | 2018-03-07 | 1 | -2/+8 |
| | |||||
* | core: make current*Block atomic, and accessor functions mutex-free (#16171) | Martin Holst Swende | 2018-02-26 | 1 | -57/+55 |
| | | | | | | | | | | * 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 | ||||
* | core: flush out trie cache more meaningfully on stop (#16143) | Péter Szilágyi | 2018-02-23 | 1 | -13/+12 |
| | | | | | | * core: flush out trie cache more meaningfully on stop * core: upgrade legacy tests to chain maker | ||||
* | metrics: pull library and introduce ResettingTimer and InfluxDB reporter ↵ | Anton Evangelatov | 2018-02-23 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | (#15910) * go-metrics: fork library and introduce ResettingTimer and InfluxDB reporter. * vendor: change nonsense/go-metrics to ethersphere/go-metrics * go-metrics: add tests. move ResettingTimer logic from reporter to type. * all, metrics: pull in metrics package in go-ethereum * metrics/test: make sure metrics are enabled for tests * metrics: apply gosimple rules * metrics/exp, internal/debug: init expvar endpoint when starting pprof server * internal/debug: tiny comment formatting fix | ||||
* | core: soften up state memory force-commit log messages (#16080) | Felix Lange | 2018-02-13 | 1 | -6/+2 |
| | | | | | | Talk about "state" instead of "trie timing", "trie memory" and remove the overzealous warning when the limit is just reached. Since the time limit is always reached on slow machines, move the message to info level so users don't freak out about internal details. | ||||
* | core: force import known but rolled back blocks | Péter Szilágyi | 2018-02-12 | 1 | -2/+6 |
| | |||||
* | core, trie: intermediate mempool between trie and database (#15857) | Péter Szilágyi | 2018-02-06 | 1 | -71/+263 |
| | | | This commit reduces database I/O by not writing every state trie to disk. | ||||
* | Merge pull request #15996 from karalabe/drop-redundant-methods | Péter Szilágyi | 2018-01-31 | 1 | -18/+1 |
|\ | | | | | core, eth, les, light: get rid of redundant methods | ||||
| * | core, eth, les, light: get rid of redundant methods | Péter Szilágyi | 2018-01-31 | 1 | -18/+1 |
| | | |||||
* | | core, ethdb: reuse database batches (#15989) | Martin Holst Swende | 2018-01-31 | 1 | -1/+1 |
|/ | | | | | | * leveldb: Update leveldb to 211f780 (poolfix) * core, ethdb: reuse database batches | ||||
* | core: sorted reorg insertion order for proper head header updating | Péter Szilágyi | 2018-01-22 | 1 | -7/+6 |
| | |||||
* | all: switch gas limits from big.Int to uint64 | Péter Szilágyi | 2018-01-03 | 1 | -4/+4 |
| | |||||
* | core, p2p/discv5: use time.NewTicker instead of time.Tick (#15747) | ferhat elmas | 2018-01-02 | 1 | -2/+3 |
| | |||||
* | core: split same-td blocks on block height | Péter Szilágyi | 2017-11-13 | 1 | -1/+6 |
| | |||||
* | core: revert invalid block dedup code (#15235) | Péter Szilágyi | 2017-10-04 | 1 | -5/+0 |
| | |||||
* | core: only fire one chain head per batch (#15123) | Péter Szilágyi | 2017-09-11 | 1 | -21/+32 |
| | | | | | | * core: only fire one chain head per batch * miner: announce chan events synchronously | ||||
* | core, eth/downloader: commit block data using batches (#15115) | Felix Lange | 2017-09-10 | 1 | -127/+97 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 | ||||
* | core, eth: add bloombit indexer, filter based on it | Zsolt Felfoldi | 2017-09-06 | 1 | -15/+0 |
| | |||||
* | core: make txpool operate on immutable state | Péter Szilágyi | 2017-09-05 | 1 | -12/+0 |
| | |||||
* | core, light: send chain events using event.Feed (#14865) | Miya Chen | 2017-08-18 | 1 | -23/+69 |
| | |||||
* | core: avoid write existing block again (#14849) | Mark | 2017-07-31 | 1 | -0/+5 |
| | |||||
* | core: remove redundant storage of transactions and receipts (#14801) | Péter Szilágyi | 2017-07-15 | 1 | -24/+9 |
| | | | | | | | | | | | | | | * core: remove redundant storage of transactions and receipts * core, eth, internal: new transaction schema usage polishes * eth: implement upgrade mechanism for db deduplication * core, eth: drop old sequential key db upgrader * eth: close last iterator on successful db upgrage * core: prefix the lookup entries to make their purpose clearer | ||||
* | core: fix an off-by-one when the block import counts blocks | Martin Holst Swende | 2017-06-29 | 1 | -1/+1 |
| | |||||
* | core/state: access trie through Database interface, track errors (#14589) | Felix Lange | 2017-06-27 | 1 | -22/+16 |
| | | | | | | | | | With this commit, core/state's access to the underlying key/value database is mediated through an interface. Database errors are tracked in StateDB and returned by CommitTo or the new Error method. Motivation for this change: We can remove the light client's duplicated copy of core/state. The light client now supports node iteration, so tracing and storage enumeration can work with the light client (not implemented in this commit). | ||||
* | core: fix minor accidental typos and comment errors | Péter Szilágyi | 2017-05-25 | 1 | -5/+5 |
| | |||||
* | core: typos and comments improve | changhong | 2017-05-25 | 1 | -236/+237 |
| | | | | | | | | 1. fix typos 2. methods recevier of struct should be same 3. comments improve (cherry picked from commit 1ba979539582a00b7fd1a7c8a37a6852e59eac0d) | ||||
* | core: fix processing regression during receipt import | Péter Szilágyi | 2017-05-08 | 1 | -3/+4 |
| | |||||
* | core, light: delete SplitStatTy, ChainSplitEvent (unused) | Felix Lange | 2017-04-22 | 1 | -6/+3 |
| | |||||
* | consensus, core, ethstats: use engine specific block beneficiary (#14318) | Péter Szilágyi | 2017-04-12 | 1 | -0/+3 |
| | | | | | | * consensus, core, ethstats: use engine specific block beneficiary * core, eth, les, miner: use explicit beneficiary during mining | ||||
* | core: fix comment typo | Justin | 2017-04-10 | 1 | -1/+1 |
| | |||||
* | consensus, core: drop all the legacy custom core error types | Péter Szilágyi | 2017-04-06 | 1 | -9/+8 |
| | |||||
* | core, consensus: pluggable consensus engines (#3817) | Péter Szilágyi | 2017-04-05 | 1 | -36/+26 |
| | | | | | 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. | ||||
* | les: implement request distributor, fix blocking issues (#3660) | Felföldi Zsolt | 2017-03-23 | 1 | -1/+6 |
| | | | | | * les: implement request distributor, fix blocking issues * core: moved header validation before chain mutex lock | ||||
* | core, eth, les: support resuming fast sync on heavy rollback (#3743) | Péter Szilágyi | 2017-03-22 | 1 | -24/+49 |
| | |||||
* | all: swap out the C++ ethash to the pure Go one (mining todo) | Péter Szilágyi | 2017-03-09 | 1 | -0/+3 |
| | |||||
* | Merge pull request #3739 from karalabe/logger-updates-4 | Péter Szilágyi | 2017-03-04 | 1 | -2/+0 |
|\ | | | | | all: update light logs (and a few others) to the new model | ||||
| * | all: update light logs (and a few others) to the new model | Péter Szilágyi | 2017-03-03 | 1 | -2/+0 |
| | | |||||
* | | core: reorg logs crashed, add a check for corner cases | Péter Szilágyi | 2017-03-03 | 1 | -6/+9 |
|/ | |||||
* | core, log: track field length and pad to align | Péter Szilágyi | 2017-02-28 | 1 | -5/+5 |
| | |||||
* | all: next batch of log polishes to contextual versions | Péter Szilágyi | 2017-02-28 | 1 | -83/+68 |
| | |||||
* | all: blidly swap out glog to our log15, logs need rework | Péter Szilágyi | 2017-02-23 | 1 | -52/+52 |
| | |||||
* | core, core/state, core/vm: remove exported account getters (#3618) | Jeffrey Wilcke | 2017-02-23 | 1 | -1/+0 |
| | | | | Removed exported statedb object accessors, reducing the chance for nasty bugs to creep in. It's also ugly and unnecessary to have these methods. | ||||
* | core/blockchain: Change iterator in procFutureBlocks to use lru.Peek instead ↵ | Martin Holst Swende | 2017-02-18 | 1 | -1/+1 |
| | | | | of Get (#3655) | ||||
* | core, eth, internal: Added `debug_getBadBlocks()` method (#3654) | Martin Holst Swende | 2017-02-14 | 1 | -1/+29 |
| | | | | | | | | | | | | | | | | * core,eth,internal: Added `debug_getBadBlocks()` method When bad blocks are discovered, these are stored within geth. An RPC-endpoint makes them availablewithin the `debug` namespace. This feature makes it easier to discover network forks. ``` * core, api: go format + docs * core/blockchain: Documentation, fix minor nitpick * core: fix failing blockchain test | ||||
* | core: fix a small typo in blockchain.go (#3611) | Vivek Anand | 2017-01-26 | 1 | -1/+1 |
| | |||||
* | core/blockchain: Made logging of reorgs more structured (#3573) | Martin Holst Swende | 2017-01-17 | 1 | -6/+13 |
| | | | | | | | | * core: Made logging of reorgs more structured, also always log if reorg is > 63 blocks long * core/blockchain: go fmt * core/blockchain: Minor fixes to the reorg reporting | ||||
* | cmd/geth, core: add support for recording SHA3 preimages (#3543) | Nick Johnson | 2017-01-17 | 1 | -2/+8 |
| | |||||
* | core: improve import log alignment | Felix Lange | 2017-01-11 | 1 | -9/+7 |
| | |||||
* | all: fix ineffectual assignments and remove uses of crypto.Sha3 | Felix Lange | 2017-01-09 | 1 | -2/+1 |
| | | | | | go get github.com/gordonklaus/ineffassign ineffassign . | ||||
* | logger, pow/dagger, pow/ezp: delete dead code | Felix Lange | 2017-01-07 | 1 | -3/+0 |
| | |||||
* | all: fix issues reported by honnef.co/go/simple/cmd/gosimple | Felix Lange | 2017-01-07 | 1 | -4/+1 |
| | |||||
* | all: gofmt -w -s | Felix Lange | 2017-01-06 | 1 | -1/+1 |
| | |||||
* | core/vm: move Log to core/types | Felix Lange | 2017-01-06 | 1 | -3/+3 |
| | | | | | | | | This significantly reduces the dependency closure of ethclient, which no longer depends on core/vm as of this change. All uses of vm.Logs are replaced by []*types.Log. NewLog is gone too, the constructor simply returned a literal. | ||||
* | core: import future blocks one-by-one, enfore chain ancestry | Péter Szilágyi | 2016-12-13 | 1 | -3/+29 |
| | |||||
* | core, core/vm, eth/filters: move Removed field into vm.Log | Felix Lange | 2016-12-05 | 1 | -14/+15 |
| | | | | | | | | | | | | This field used to be assigned by the filter system and returned through the RPC API. Now that we have a Go client that uses the underlying type, the field needs to move. It is now assigned to true when the RemovedLogs event is generated so the filter system doesn't need to care about the field at all. While here, remove the log list from ChainSideEvent. There are no users of this field right now and any potential users could subscribe to RemovedLogsEvent instead. | ||||
* | core: fixed unwinding bad hash (#3347) | Jeffrey Wilcke | 2016-11-28 | 1 | -3/+8 |
| | | | Fixed unwinding of bad hashes when already on the canon chain | ||||
* | core: improved bad block error reporting (#3320) | Jeffrey Wilcke | 2016-11-23 | 1 | -8/+21 |
| | |||||
* | core/types, params: EIP#155 | Jeffrey Wilcke | 2016-11-13 | 1 | -5/+8 |
| | |||||
* | core, core/state, trie: EIP158, reprice & skip empty account write | Jeffrey Wilcke | 2016-11-13 | 1 | -5/+6 |
| | | | | | | | | | | | | | | | This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke <jeffrey@ethereum.org> | ||||
* | light: light chain, VM env and tx pool | Zsolt Felfoldi | 2016-11-09 | 1 | -26/+32 |
| | |||||
* | cmd/geth, code, eth/downloader: tune import logs and mem stats | Péter Szilágyi | 2016-10-21 | 1 | -2/+15 |
| | |||||
* | Merge pull request #3156 from holiman/metrics-blocks | Jeffrey Wilcke | 2016-10-18 | 1 | -0/+2 |
|\ | | | | | core: Add block processing time metric collection | ||||
| * | core: Add block processing time metric collection | Martin Holst Swende | 2016-10-18 | 1 | -0/+2 |
| | | |||||
* | | common, core, eth/downloader: adjust import log formatting | Péter Szilágyi | 2016-10-18 | 1 | -16/+23 |
|/ | |||||
* | trie, core/state: improve memory usage and performance (#3135) | Felix Lange | 2016-10-15 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * trie: store nodes as pointers This avoids memory copies when unwrapping node interface values. name old time/op new time/op delta Get 388ns ± 8% 215ns ± 2% -44.56% (p=0.000 n=15+15) GetDB 363ns ± 3% 202ns ± 2% -44.21% (p=0.000 n=15+15) UpdateBE 1.57µs ± 2% 1.29µs ± 3% -17.80% (p=0.000 n=13+15) UpdateLE 1.92µs ± 2% 1.61µs ± 2% -16.25% (p=0.000 n=14+14) HashBE 2.16µs ± 6% 2.18µs ± 6% ~ (p=0.436 n=15+15) HashLE 7.43µs ± 3% 7.21µs ± 3% -2.96% (p=0.000 n=15+13) * trie: close temporary databases in GetDB benchmark * trie: don't keep []byte from DB load around Nodes decoded from a DB load kept hashes and values as sub-slices of the DB value. This can be a problem because loading from leveldb often returns []byte with a cap that's larger than necessary, increasing memory usage. * trie: unload old cached nodes * trie, core/state: use cache unloading for account trie * trie: use explicit private flags (fixes Go 1.5 reflection issue). * trie: fixup cachegen overflow at request of nick * core/state: rename journal size constant | ||||
* | core: fixed import reporter | Jeffrey Wilcke | 2016-10-11 | 1 | -1/+1 |
| | |||||
* | core: print import stats more often | Felix Lange | 2016-10-08 | 1 | -11/+42 |
| | | | | | | If geth is busy importing 2048 heavy blocks it can take a while before it prints anything. This change ensures that a message gets printed every 8s. | ||||
* | core, eth, trie: reuse trie journals in all our code | Péter Szilágyi | 2016-09-28 | 1 | -1/+6 |
| | |||||
* | core/state: track all accounts in canon state | Felix Lange | 2016-09-26 | 1 | -13/+22 |
| | | | | | This change introduces a global, per-state cache that keeps account data in the canon state. Thanks to @karalabe for lots of fixes. | ||||
* | core: ensure the canonical block is written before the canonical hash is set | Bas van Kervel | 2016-08-16 | 1 | -9/+9 |
| | |||||
* | core: solve a remote-import/local-mine data race | Péter Szilágyi | 2016-07-08 | 1 | -4/+3 |
| | |||||
* | core: improved chainDb using sequential keys | zsfelfoldi | 2016-06-07 | 1 | -52/+72 |
| | |||||
* | core, core/state, trie: enterprise hand-tuned multi-level caching | Péter Szilágyi | 2016-05-26 | 1 | -1/+6 |
| | |||||
* | eth: enable bad block reports | Felix Lange | 2016-05-25 | 1 | -4/+1 |
| | | | | | | | | | | | | We used to have reporting of bad blocks, but it was disabled before the Frontier release. We need it back because users are usually unable to provide the full RLP data of a bad block when it occurs. A shortcoming of this particular implementation is that the origin peer is not tracked for blocks received during eth/63 sync. No origin peer info is still better than no report at all though. | ||||
* | core: Provide a public accessor for ChainConfig | Nicholas Johnson | 2016-04-29 | 1 | -0/+3 |
| | | | | This is necessary for external users of the go-ethereum code who want to, for instance, build a custom node that plays back transactions, as core.ApplyTransaction requires a ChainConfig as a parameter. | ||||
* | all: fix go vet warnings | Felix Lange | 2016-04-15 | 1 | -2/+2 |
| | |||||
* | core, core/types, eth: add and use Block.Body | Felix Lange | 2016-04-15 | 1 | -1/+1 |
| | | | | | This fixes a few uses of unkeyed Body literals which go vet was complaining about. | ||||
* | core: added basic chain configuration | Jeffrey Wilcke | 2016-04-01 | 1 | -15/+10 |
| | | | | | | | | | Added chain configuration options and write out during genesis database insertion. If no "config" was found, nothing is written to the database. Configurations are written on a per genesis base. This means that any chain (which is identified by it's genesis hash) can have their own chain settings. | ||||
* | core, eth, cmd: temporary work around for enabling the jit | Jeffrey Wilcke | 2016-03-24 | 1 | -1/+6 |
| | | | | | This commit serves as a temporary workaround for enabling the jit until the block customisation PR is merged in. | ||||
* | core: Added EVM configuration options | Jeffrey Wilcke | 2016-03-24 | 1 | -1/+1 |
| | | | | | The EVM is now initialised with an additional configured object that allows you to turn on debugging options. | ||||
* | Merge pull request #2341 from leijurv/patch-2 | Péter Szilágyi | 2016-03-16 | 1 | -3/+3 |
|\ | | | | | core: fixed various typos | ||||
| * | core: fixed various typos | Leif Jurvetson | 2016-03-16 | 1 | -3/+3 |
| | | |||||
* | | core, eth: replace reorganiz with reorganis | Leif Jurvetson | 2016-03-16 | 1 | -1/+1 |
|/ | |||||
* | Merge pull request #2311 from obscuren/future-proc-fix | Jeffrey Wilcke | 2016-03-12 | 1 | -14/+15 |
|\ | | | | | core: added future proc mutex lock | ||||
| * | core: added future proc mutex lock | Jeffrey Wilcke | 2016-03-11 | 1 | -14/+15 |
| | | | | | | | | | | | | | | | | | | | | Added a future lock which prevents the anything being added or removed from or to the set when looping over the set of blocks. This fixes a nil pointer in the range loop when trying to retrieve a block from the set which was previously available but removed due to regular chain processing. Fixes #2305 | ||||
* | | core: cache fresh headers and tds to avoid db trashing | Péter Szilágyi | 2016-03-11 | 1 | -2/+2 |
|/ | |||||
* | core: create a header chain structure shared by core.BlockChain and ↵ | zsfelfoldi | 2016-03-10 | 1 | -340/+125 |
| | | | | light.LightChain | ||||
* | core: announce ChainSideEvent during reorg | Jeffrey Wilcke | 2016-03-08 | 1 | -6/+21 |
| | | | | | | | | | | | Previously all blocks that were already in our chain were never re announced as potential uncle block (e.g. ChainSideEvent). This is problematic during mining where you want to gather as much possible uncles as possible increasing the profit. This is now addressed in this PR where during reorganisations of chains the old chain is regarded as uncles. Fixed #2298 | ||||
* | core: Added new TD strategy which mitigate the risk for selfish mining | Jeffrey Wilcke | 2016-02-18 | 1 | -6/+14 |
| | | | | | | | | | | | | | | | | Assuming the following scenario where a miner has 15% of all hashing power and the ability to exert a moderate control over the network to the point where if the attacker sees a message A, it can't stop A from propagating, but what it **can** do is send a message B and ensure that most nodes see B before A. The attacker can then selfish mine and augment selfish mining strategy by giving his own blocks an advantage. This change makes the time at which a block is received less relevant and so the level of control an attacker has over the network no longer makes a difference. This change changes the current td algorithm `B_td > C_td` to the new algorithm `B_td > C_td || B_td == C_td && rnd < 0.5`. | ||||
* | eth/filters: ✨ pending logs ✨ | Jeffrey Wilcke | 2016-02-13 | 1 | -1/+1 |
| | | | | | | Pending logs are now filterable through the Go API. Filter API changed such that each filter type has it's own bucket and adding filter explicitly requires you specify the bucket to put it in. | ||||
* | core, eth/downloader: ensure state presence in ancestor lookup | Péter Szilágyi | 2016-01-04 | 1 | -0/+13 |
| | |||||
* | core: write individual transactions and receipts too on fast sync | Péter Szilágyi | 2015-12-04 | 1 | -0/+12 |
| | |||||
* | core: added a new RemovedLogEvent | Jeffrey Wilcke | 2015-12-01 | 1 | -2/+20 |
| | | | | | | When a chain reorganisation occurs we collect the logs that were deleted during the chain reorganisation. The removed logs are posted to the event mux indicating that those were deleted during the reorg. | ||||
* | cmd, common, core, eth, node, rpc, tests, whisper, xeth: use protocol stacks | Péter Szilágyi | 2015-11-27 | 1 | -5/+1 |
| | |||||
* | core, eth, miner, xeth: clean up tx/receipt db accessors | Péter Szilágyi | 2015-11-19 | 1 | -6/+6 |
| | |||||
* | core, eth, rpc: split out block validator and state processor | Jeffrey Wilcke | 2015-11-18 | 1 | -20/+114 |
| | | | | | | | | | | | | This removes the burden on a single object to take care of all validation and state processing. Now instead the validation is done by the `core.BlockValidator` (`types.Validator`) that takes care of both header and uncle validation through the `ValidateBlock` method and state validation through the `ValidateState` method. The state processing is done by a new object `core.StateProcessor` (`types.Processor`) and accepts a new state as input and uses that to process the given block's transactions (and uncles for rewords) to calculate the state root for the next block (P_n + 1). | ||||
* | core: only reset head header/fastblock if stale | Péter Szilágyi | 2015-10-28 | 1 | -11/+18 |
| | |||||
* | core, eth, trie: fix data races and merge/review issues | Péter Szilágyi | 2015-10-21 | 1 | -29/+42 |
| | |||||
* | core, eth: roll back uncertain headers in failed fast syncs | Péter Szilágyi | 2015-10-19 | 1 | -1/+36 |
| | |||||
* | eth/downloader: concurrent receipt and state processing | Péter Szilágyi | 2015-10-19 | 1 | -86/+180 |
| | |||||
* | core, eth, trie: direct state trie synchronization | Péter Szilágyi | 2015-10-19 | 1 | -4/+21 |
| | |||||
* | core, eth: receipt chain reconstruction | Péter Szilágyi | 2015-10-19 | 1 | -40/+170 |
| | |||||
* | core: fix block canonical mark / content write race | Péter Szilágyi | 2015-10-19 | 1 | -20/+11 |
| | |||||
* | core: support inserting pure header chains | Péter Szilágyi | 2015-10-19 | 1 | -65/+233 |
| | |||||
* | Merge pull request #1899 from obscuren/mipmap-bloom | Jeffrey Wilcke | 2015-10-17 | 1 | -5/+22 |
|\ | | | | | core, eth/filters, miner, xeth: Optimised log filtering | ||||
| * | core, eth/filters, miner, xeth: Optimised log filtering | Jeffrey Wilcke | 2015-10-17 | 1 | -5/+22 |
| | | | | | | | | | | | | | | Log filtering is now using a MIPmap like approach where addresses of logs are added to a mapped bloom bin. The current levels for the MIP are in ranges of 1.000.000, 500.000, 100.000, 50.000, 1.000. Logs are therefor filtered in batches of 1.000. | ||||
* | | core/state, core, miner: handle missing root error from state.New | Gustav Simonsson | 2015-10-16 | 1 | -1/+1 |
|/ | |||||
* | core, eth, event, miner, xeth: fix event post / subscription race | Péter Szilágyi | 2015-10-12 | 1 | -38/+27 |
| | |||||
* | core: fixed head write on block insertion | Jeffrey Wilcke | 2015-10-05 | 1 | -0/+3 |
| | | | | | Due to a rebase this probably got overlooked / ignored. This fixes the issue of a block insertion never writing the last block. | ||||
* | cmd/geth, cmd/utils, core, rpc: renamed to blockchain | Jeffrey Wilcke | 2015-10-04 | 1 | -0/+809 |
* Renamed ChainManager to BlockChain * Checkpointing is no longer required and never really properly worked when the state was corrupted. |