aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* les, les/flowcontrol: implement LES/3 (#19329)Felföldi Zsolt2019-05-312-17/+17
| | | les, les/flowcontrol: implement LES/3
* core: concurrent database reinit from freezer dumpPéter Szilágyi2019-05-273-38/+135
| | | | | | | | * core: reinit chain from freezer in batches * core/rawdb: concurrent database reinit from freezer dump * core/rawdb: reinit from freezer in sequential order
* core/rawdb: keep genesis in key-value store for full sync tooPéter Szilágyi2019-05-271-4/+10
|
* core: never delete genesis block (#19617)gary rong2019-05-271-4/+10
|
* core/state: unified function receiver names (#19615)Mohanson2019-05-261-118/+118
|
* core/rawdb, eth/downloader: align 64bit atomic fieldsPéter Szilágyi2019-05-172-2/+10
|
* cmd/geth, core/rawdb: seamless freezer consistency, friendly removedbPéter Szilágyi2019-05-165-36/+68
|
* cosensus, core, eth, params, trie: fixes + clique history capPéter Szilágyi2019-05-164-28/+64
|
* core, cmd, vendor: fixes and database inspection tool (#15)gary rong2019-05-1611-67/+353
| | | | | | | | | | | | | | | | | | | | | | * 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
* freezer: disable compression on hashes and difficulties (#14)Martin Holst Swende2019-05-163-5/+15
| | | | | | | | * freezer: disable compression on hashes and difficulties * core/rawdb: address review concerns * core/rawdb: address review concerns
* core/rawdb: support starting offset for future deletionMartin Holst Swende2019-05-162-30/+175
|
* all: integrate the freezer with fast syncgary rong2019-05-1613-267/+895
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* core/rawdb: add file lock for freezerrjl4934564422019-05-162-5/+36
|
* freezer: implement split files for dataMartin Holst Swende2019-05-162-95/+815
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * freezer: implement split files for data * freezer: add tests * freezer: close old head-file when opening next * freezer: fix truncation * freezer: more testing around close/open * rawdb/freezer: address review concerns * freezer: fix minor review concerns * freezer: fix remaining concerns + testcases around truncation * freezer: docs * freezer: implement multithreading * core/rawdb: fix freezer nitpicks + change offsets to uint32 * freezer: preopen files, simplify lock constructs * freezer: delete files during truncation
* cmd, core, eth, les, node: chain freezer on top of db reworkPéter Szilágyi2019-05-166-26/+683
|
* core, eth, trie: bloom filter for trie node dedup during fast sync (#19489)Péter Szilágyi2019-05-133-8/+16
| | | | | | | | | | | | * core, eth, trie: bloom filter for trie node dedup during fast sync * eth/downloader, trie: address review comments * core, ethdb, trie: restart fast-sync bloom construction now and again * eth/downloader: initialize fast sync bloom on startup * eth: reenable eth/62 until we properly remove it
* core: fix formatting error (trailing whitepace)Péter Szilágyi2019-05-131-1/+1
|
* core: move error variable to error.go (#19560)PilkyuJung2019-05-132-3/+4
| | | | | | | | * move error variable to error.go * Update error.go Edit "Genesis" to "genesis"
* core: fix import errors on clique crashes + empty blocks (#19544)Péter Szilágyi2019-05-102-2/+47
| | | | | | | | | | * core: fix import errors on clique crashes + empty blocks * cosensus/clique, core: add test for the mirrored state issue * core: address todo question wrt log count * core: raise a louder warning for non-clique known blocks
* core: handle importing known blocks more gracefully (#19417)gary rong2019-05-082-125/+303
| | | | | | | | | | * core: import known blocks if they can be inserted as canonical blocks * core: insert knowns blocks * core: remove useless * core: doesn't process head block in reorg function
* core: fix canonicality confusion (#19514)Martin Holst Swende2019-05-072-1/+130
| | | | | | * core: add tests for canonicality confusion * core: delete stale future canon number mappings during reorg to shorter+heavier chain
* core/rawdb: fix typo (#19526)유용환2019-05-041-2/+2
|
* consensus,core,miner: avoid overhead of creating a new block (#19301)Martin Holst Swende2019-04-302-2/+2
| | | | | | | | * consensus,core,miner: avoid overhead of creating a new block * consensus: nitpick dot * consensus: fix some comment formatting nits
* core/rawdb: typo fix storea => stores (#19498)Hongbin Mao2019-04-261-1/+1
| | | | | | * typo fix * change to stores
* core: lookup txs by block number instead of block hash (#19431)Matthew Halpern2019-04-253-68/+97
| | | | | | | | | | | | | | | | | | | * core: lookup txs by block number instead of block hash Transaction hashes now store a reference to their corresponding block number as opposed to their hash. In benchmarks this was shown to reduce storage by over 12 GB. The main limitation of this approach is that transactions on non-canonical blocks could never be looked up, however that is currently not supported. The database version has been upgraded to version 5 and the transaction lookup process is backwards-compatible with the prior two transaction lookup formats prexisting in the database instance. Tests have been added to ensure this. * core/rawdb: tiny review nit fixes
* core/types: fix cummulative gas bug and legacy decoding testsgary rong2019-04-162-22/+36
|
* core, eth, les, light: scope receipt functionality a bit cleanerPéter Szilágyi2019-04-159-272/+233
|
* core, eth, les, light: store transaction receipts without txHash and gasCostMatthew Halpern2019-04-157-110/+536
|
* consensus,core: shortcut uncle validationMartin Holst Swende2019-04-082-1/+20
|
* core/state: fix state iterator (#19127)gary rong2019-04-052-5/+18
| | | | | | * core/state: fix state iterator * core: fix state iterator more elegant
* core: minor code polishes + rebase fixesPéter Szilágyi2019-04-042-43/+57
|
* core: re-omit new log event when logs rebirthrjl4934564422019-04-042-9/+224
|
* core/vm: fix typos in comments (#19391)hydai2019-04-041-2/+2
|
* core/vm: instruction tests (#16327)Martin Holst Swende2019-04-0422-87/+159
| | | | | | This PR makes it easy to generate and execute testcases for VM arithmetic operations. By enabling and running the testcase TestWriteExpectedValues, a set of json files are created which contain input and output for each arith operation. The test TestJsonTestcases executes all of those tests. While meaningless as is, this PR makes it less risky to make changes (optimizations) to the vm operations, since there will be a larger body of testcases.
* all: simplify timestamps to uint64 (#19372)Martin Holst Swende2019-04-039-31/+28
| | | | | | | | | | | | | | * 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
* Merge pull request #19328 from karalabe/preloadPéter Szilágyi2019-04-026-81/+202
|\ | | | | core: prefetch next block state concurrently
| * cmd, core, eth: support disabling the concurrent state prefetcherPéter Szilágyi2019-04-011-15/+18
| |
| * core: prefetch next block state concurrentlyPéter Szilágyi2019-04-016-75/+193
| |
* | core: fix typo in insertChain method doc (#19371)Runchao Han2019-04-021-1/+1
| |
* | Merge pull request #19348 from LiangMa/overflowPRPéter Szilágyi2019-04-012-22/+21
|\ \ | |/ |/| core/vm: Correct the Memory Gas Overflow condition
| * core/vm: polish gas PR, fix tests, make table drivenPéter Szilágyi2019-04-012-21/+20
| |
| * core/vm: Correct the Memory Gas Overflow conditionLiang Ma2019-03-291-3/+3
| | | | | | | | | | | | | | previous overflow condition is too big to use. 0x7FFFFFFFF squre operation is overflowed uint64. 0x7FFFFFFFF^2 = 0x3F FFFF FFF0 0000 0001
* | core: cache tx signature before obtaining lock贺鹏飞2019-03-291-0/+7
|/
* core/types: add block location fields to receipt (#17662)Brent2019-03-277-2/+54
| | | | Solves #15210 without changing consensus, in a backwards compatible way, by adding tx inclusion information to the Receipt struct.
* core: 3rd try on splitting the trie metrics correctlyPéter Szilágyi2019-03-271-18/+25
|
* core, ethdb, trie: mode dirty data to clean cache on flush (#19307)Martin Holst Swende2019-03-266-11/+20
| | | | | 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.
* Merge pull request #19308 from holiman/fix_reset_txpoolPéter Szilágyi2019-03-261-1/+16
|\ | | | | core: make txpool handle reorg due to setHead
| * core: make txpool handle reorg due to setHeadMartin Holst Swende2019-03-211-1/+16
| |
* | core: split trie op metrics from the correct chain metricsPéter Szilágyi2019-03-251-6/+3
| |
* | core: split out detailed trie access metrics from insertion time (#19316)Péter Szilágyi2019-03-253-18/+98
|/ | | | | | * core: split out detailed trie access metrics from insertion time * cmd, core, metrics: support expensive optional metrics
* cmd, core, eth, trie: get rid of trie cache generations (#19262)Péter Szilágyi2019-03-143-67/+45
| | | | | | * cmd, core, eth, trie: get rid of trie cache generations * core, trie: get rid of remainder of cache gen boilerplate
* asm: remove unused parameter for function Lex (#18058)Corey Lin2019-03-142-2/+2
|
* core: use headers only where blocks are unnecessaryPéter Szilágyi2019-03-135-11/+11
|
* core/vm: 64 bit memory and gas calculations (#19210)Martin Holst Swende2019-03-129-737/+910
| | | | | | | | | | | | | | | | | | | | | | * core/vm: remove function call for stack validation from evm runloop * core/vm: separate gas calc into static + dynamic * core/vm: optimize push1 * core/vm: reuse pooled bigints for ADDRESS, ORIGIN and CALLER * core/vm: use generic error message for jump/jumpi, to avoid string interpolation * testdata: fix tests for new error message * core/vm: use 64-bit memory calculations * core/vm: fix error in memory calculation * core/vm: address review concerns * core/vm: avoid unnecessary use of big.Int:BitLen()
* state: fix emptyStatet to emptyRoot (#19254)Sheldon2019-03-121-3/+3
|
* all: clean up and proerly abstract database accessPéter Szilágyi2019-03-0631-209/+422
|
* core/types: fix receipt legacy decodingPéter Szilágyi2019-02-282-4/+12
|
* travis, appveyor, Dockerfile: upgrade to Go 1.12Samuel Marks2019-02-271-1/+1
|
* les, les/flowcontrol: improved request serving and flow control (#18230)Felföldi Zsolt2019-02-261-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | This change - implements concurrent LES request serving even for a single peer. - replaces the request cost estimation method with a cost table based on benchmarks which gives much more consistent results. Until now the allowed number of light peers was just a guess which probably contributed a lot to the fluctuating quality of available service. Everything related to request cost is implemented in a single object, the 'cost tracker'. It uses a fixed cost table with a global 'correction factor'. Benchmark code is included and can be run at any time to adapt costs to low-level implementation changes. - reimplements flowcontrol.ClientManager in a cleaner and more efficient way, with added capabilities: There is now control over bandwidth, which allows using the flow control parameters for client prioritization. Target utilization over 100 percent is now supported to model concurrent request processing. Total serving bandwidth is reduced during block processing to prevent database contention. - implements an RPC API for the LES servers allowing server operators to assign priority bandwidth to certain clients and change prioritized status even while the client is connected. The new API is meant for cases where server operators charge for LES using an off-protocol mechanism. - adds a unit test for the new client manager. - adds an end-to-end test using the network simulator that tests bandwidth control functions through the new API.
* core: remove unnecessary fields in logs, receipts and tx lookups (#17106)gary rong2019-02-219-51/+133
| | | | | | | | | | | | * core: remove unnecessary fields in log * core: bump blockchain database version * core, les: remove unnecessary fields in txlookup * eth: print db version explicitly * core/rawdb: drop txlookup entry struct wrapper
* core: more tests for sidechain import, fixes #19105 (#19113)Martin Holst Swende2019-02-212-20/+115
| | | | | | | | | | * blockchain: more tests for sidechain import, fixes #19105 * core/blockchain: rework import of pruned canon blocks and canon-prepended sidechains * core/blockchain: minor clarity change * core/blockchain: remove unused method
* core/vm: remove unused constants (#19095)Péter Szilágyi2019-02-201-4/+0
|\
| * core/vm: remove unused constantsMatthew Halpern2019-02-181-4/+0
| |
* | core: remove redundant parentheses (#19106)Matthew Halpern2019-02-192-2/+2
|/
* core: remove unused function (#19097)Matthew Halpern2019-02-181-17/+0
|
* core/vm: update annotation (#19050)needkane2019-02-181-9/+6
|
* core: enforce camel case variable names (#19058)Matthew Halpern2019-02-151-6/+6
|
* core: fix pruner panic when importing low-diff-large-sidechainPéter Szilágyi2019-02-083-86/+44
|
* core: repro #18977Martin Holst Swende2019-02-082-1/+104
|
* cmd/utils, eth: relinquish GC cache to read cache in archive modePéter Szilágyi2019-02-072-4/+4
|
* core/state: more memory efficient preimage allocation (#16663)atsushi-ishibashi2019-02-072-1/+10
|
* core/vm: unshadow err to make it visible in tracers(#18504)Martin Holst Swende2019-02-041-3/+4
|
* Merge pull request #18121 from karalabe/goerliPéter Szilágyi2019-02-042-1/+13
|\ | | | | cmd, core, params: add support for Goerli
| * cmd, core, params: add support for GoerliPéter Szilágyi2019-02-042-1/+13
| |
* | core: fix error in block iterator (#18986)Martin Holst Swende2019-02-042-11/+3
|/
* core/types: remove use of package unsafeGus2019-01-291-2/+4
|
* les: implement ultralight client (#16904)b00ris2019-01-241-6/+10
| | | | For more information about this light client mode, read https://hackmd.io/s/HJy7jjZpm
* core/vm: fix typos and use ExpGas for EXP (#18400)Nalin Bhardwaj2019-01-241-2/+2
| | | | | This replaces the GasSlowStep constant with params.ExpGas. Both constants have value 10.
* core, cmd/puppeth: implement constantinople fix, disable EIP-1283 (#18486)Martin Holst Swende2019-01-243-2/+9
| | | | | | | | | | | | | | | | | This PR adds a new fork which disables EIP-1283. Internally it's called Petersburg, but the genesis/config field is ConstantinopleFix. The block numbers are: 7280000 for Constantinople on Mainnet 7280000 for ConstantinopleFix on Mainnet 4939394 for ConstantinopleFix on Ropsten 9999999 for ConstantinopleFix on Rinkeby (real number decided later) This PR also defaults to using the same ConstantinopleFix number as whatever Constantinople is set to. That is, it will default to mainnet behaviour if ConstantinopleFix is not set.This means that for private networks which have already transitioned to Constantinople, this PR will break the network unless ConstantinopleFix is explicitly set!
* core: only cache non-nil receipts from the database (#18447)silence2019-01-171-0/+3
| | | receipts may be null for very short time in some condition. For this case, we should not add the null value into cache. Because you will not get the right result if you keep requesting that receipt.
* core, light: get rid of the dual mutexes, hard to reason withPéter Szilágyi2019-01-112-51/+31
|
* core, eth: fix database version (#18429)gary rong2019-01-112-8/+16
| | | | | | * core, eth: fix database version * eth: polish error message
* Merge pull request #18371 from jeremyschlatter/patch-1Péter Szilágyi2019-01-041-1/+1
|\ | | | | core/types: update incorrect comment
| * core/types: update incorrect commentJeremy Schlatter2018-12-291-1/+1
| |
* | vendor, crypto, swarm: switch over to upstream sha3 packageDave McGregor2019-01-043-8/+8
|/
* core: sanitize more TxPoolConfig fields (#17210)Jordan Krage2018-12-202-1/+21
| | | | | | * core: sanitize more TxPoolConfig fields * core: fix TestTransactionPendingMinimumAllowance
* core/state: rename 'new' variable (#18301)Shuai Qi2018-12-141-2/+2
|
* Comment error (#18303)qd-ethan2018-12-141-1/+1
|
* cmd/geth, core, eth: implement Constantinople override flag (#18273)Martin Holst Swende2018-12-111-0/+6
| | | | | | | | * geth/core/eth: implement constantinople override flag * les: implemnent constantinople override flag for les clients * cmd/geth, eth, les: fix typo, move flag to experimentals
* cmd/evm, core/vm, eth: implement api methods to do stdjson dump to local ↵Martin Holst Swende2018-12-101-0/+83
| | | | filesystem
* core, internal, eth, miner, les: Take VM config from BlockChain (#17955)Paweł Bylica2018-12-061-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.
* tests, core: update tests and make STATICCALL cause touch-delete (#18187)Martin Holst Swende2018-11-291-0/+6
|
* core: more detailed metrics for block processing (#18119)Martin Holst Swende2018-11-281-1/+12
|
* fix mixHash/nonce for parity compatible network (#18166)Jaynti Kanani2018-11-262-12/+12
|
* core: return error if repair block failed (#18126)mr_franklin2018-11-231-1/+5
| | | | | | * core: return error if repair block failed * make error a bit shorter
* Merge pull request #17973 from holiman/splitter2Péter Szilágyi2018-11-223-157/+368
|\ | | | | core: better side-chain importing
| * core: polish side chain importer a bitPéter Szilágyi2018-11-213-294/+328
| |
| * core: better side-chain importingMartin Holst Swende2018-11-201-96/+273
| |
* | core: better printout of receipts in bad block reports (#18156)Martin Holst Swende2018-11-221-2/+4
| | | | | | | | | | | | * core/blockchain: better printout of receipts in bad block reports * fix splleing
* | core: fix comment typo (#18144)mr_franklin2018-11-211-1/+1
|/
* core, eth/downloader: fix ancestor lookup for fast syncPéter Szilágyi2018-11-162-2/+20
|
* cmd, core, eth, light, trie: add trie read caching layerPéter Szilágyi2018-11-152-11/+24
|
* core: fix default trie cache limit (#17860)gary rong2018-11-131-1/+1
|
* rawdb: remove unused parameter for WritePreimages func (#18059)Corey Lin2018-11-093-5/+4
| | | | | | | * rawdb: remove unused parameter for WritePreimages func and modify a spelling mistake * rawdb: update the doc for function WritePreimages
* core/state: remove lock (#18065)Felix Lange2018-11-091-6/+0
| | | | The lock in StateDB is useless. It's only held in Copy, but Copy is safe for concurrent use because all it does is read.
* Merge pull request #17982 from holiman/polish_contantinople_extcodehashPéter Szilágyi2018-11-081-1/+6
|\ | | | | core/vm: check empty in extcodehash
| * core/vm: check empty in extcodehashMartin Holst Swende2018-10-261-1/+6
| |
* | core/vm, eth/tracers: use pointer receiver for GetRefund (#18018)Corey Lin2018-11-081-1/+1
| |
* | eth/downloader: speed up tests by generating chain only once (#17916)Felix Lange2018-11-071-16/+28
| | | | | | | | | | | | | | | | | | | | | | | | * core: speed up GenerateChain Use a mock implementation of ChainReader instead of creating and destroying a BlockChain object for each generated block. * eth/downloader: speed up tests by generating chain only once This change reworks the downloader tests so they share a common test blockchain instead of generating a chain in every test. The tests are roughly twice as fast now.
* | core, eth/downloader: fix validation flaw, fix downloader printout flaw (#17974)Martin Holst Swende2018-11-071-6/+6
|/
* core/state: simplify proof methods (#17965)Felix Lange2018-10-242-17/+13
| | | | This fixes the import cycle build error in core/vm tests. There is no need to refer to core/vm for a type definition.
* core/vm: adds refund as part of the json standard trace (#17910)Martin Holst Swende2018-10-233-36/+50
| | | | | | | This adds the global accumulated refund counter to the standard json output as a numeric json value. Previously this was not very interesting since it was not used much, but with the new sstore gas changes the value is a lot more interesting from a consensus investigation perspective.
* core: fix a typo (#17941)Wuxiang2018-10-191-1/+1
|
* EIP-1186 eth_getProof (#17737)Simon Jentzsch2018-10-192-0/+30
| | | | | | | | | | | | | | | | * first impl of eth_getProof * fixed docu * added comments and refactored based on comments from holiman * created structs * handle errors correctly * change Value to *hexutil.Big in order to have the same output as parity * use ProofList as return type
* core/types: fix comment for func SignatureValues (#17921)Smilenator2018-10-161-1/+1
|
* core/vm: add shortcuts for trivial exp cases (#16851)Martin Holst Swende2018-10-161-4/+16
|
* core/asm: Use hexadecimal addresses in assembly dumps (#17870)Guillaume Ballet2018-10-091-4/+4
|
* core/types: Log.Index is the index in block, not receipt (#17866)Wenbiao Zheng2018-10-081-1/+1
|
* core/vm: reuse Keccak-256 hashes across opcode executions (#17863)Péter Szilágyi2018-10-083-6/+48
|
* core/vm : fix failing testcase (#17852)Martin Holst Swende2018-10-061-1/+2
| | | | | | * core/vm : fix failing testcase * core/vm: fix nitpick
* core/vm: SHA3 word cost for CREATE2 (#17812)Martin Holst Swende2018-10-052-0/+87
| | | | | | | | * core/vm: create2 address generation tests * core/vm: per byte cost of CREATE2 * core/vm: fix linter issue in test
* core/vm: faster create/create2 (#17806)Martin Holst Swende2018-10-046-52/+145
| | | | | | | | | | | | | | | | | | | | | | | | * core/vm/runtim: benchmark create/create2 * core/vm: do less hashing in CREATE2 * core/vm: avoid storing jumpdest analysis for initcode * core/vm: avoid unneccesary lookups, remove unused fields * core/vm: go formatting tests * core/vm: save jumpdest analysis locally * core/vm: use common.Hash instead of nil, fix review comments * core/vm: removed type destinations * core/vm: correct check for empty hash * eth: more elegant api_tracer * core/vm: address review concerns
* core: use ChainHeadEvent subscription in the chain indexer (#17826)Felföldi Zsolt2018-10-031-6/+6
|
* core: fix unnecessary ancestor lookup after a fast sync (#17825)Péter Szilágyi2018-10-031-5/+5
|
* core, internal/ethapi: add and use LRU cache for receipts (#17610)Ryan Schneider2018-09-301-6/+18
|
* core/types: make tx signature values optional in JSON (#17742)reinerRubin2018-09-302-12/+23
|
* core/types: fix typos (#17762)thumb84322018-09-301-2/+2
|
* all: fix various comment typos (#17748)Liang ZOU2018-09-252-2/+2
|
* Merge pull request #17383 from holiman/eip1283Péter Szilágyi2018-09-218-138/+164
|\ | | | | Eip1283
| * core, params: polish net gas metering PR a bitPéter Szilágyi2018-09-189-218/+138
| |
| * core,state: finish implementing Eip 1283Martin Holst Swende2018-09-186-16/+41
| |
| * core, state: initial implementation of Eip-1283Martin Holst Swende2018-09-185-3/+84
| |
* | core: fix a typo (#17733)Wuxiang2018-09-211-2/+2
| |
* | core, eth: fix dependency cycle (#17720)gary rong2018-09-211-50/+21
| |
* | all: protect self-mined block during reorg (#17656)gary rong2018-09-208-35/+75
| |
* | common, core, light: add block age into info logsPéter Szilágyi2018-09-202-12/+30
| |
* | core/vm: add switches to select evm+ewasm interpreters (#17687)Guillaume Ballet2018-09-202-2/+25
| | | | | | | | | | Interpreter initialization is left to the PRs implementing them. Options for external interpreters are passed after a colon in the `--vm.ewasm` and `--vm.evm` switches.
* | core, eth: fix goimports for Go 1.11Péter Szilágyi2018-09-191-1/+1
|/
* Merge pull request #17622 from karalabe/chain-maker-sealPéter Szilágyi2018-09-171-2/+8
|\ | | | | consensus/clique, core: chain maker clique + error tests
| * consensus/clique, core: chain maker clique + error testsPéter Szilágyi2018-09-111-2/+8
| |
* | all: simplify s[:] to s where s is a slice (#17673)Emil2018-09-152-3/+3
| |
* | core/vm: fix typo 'EVM EVM' ==> 'EVM' (#17654)Liang ZOU2018-09-131-1/+1
|/
* core/vm: Hide read only flag from Interpreter interface (#17461)Paweł Bylica2018-09-082-30/+16
| | | | | Makes Interface interface a bit more stateless and abstract. Obviously this change is dictated by EVMC design. The EVMC tries to keep the responsibility for EVM features totally inside the VMs, if feasible. This makes VM "stateless" because VM does not need to pass any information between executions, all information is included in parameters of the execute function.
* core: fix typo in comment (#17586)Hyung-Kyu Hqueue Choi2018-09-051-1/+1
|
* core/vm, tests: update tests, enable constantinople statetests, fix SAR ↵Martin Holst Swende2018-09-041-1/+1
| | | | | | | | | | | | | | | opcode (#17538) This commit does a few things at once: - Updates the tests to contain the latest data from ethereum/tests repo. - Enables Constantinople state tests. This is needed to be able to fuzz-test the evm with constantinople rules. - Fixes the error in opSAR that we've known about for some time. I was kind of saving it to see if we hit upon it with the random test generator, but it's difficult to both enable the tests and have the bug there -- we don't want to forget about it, so maybe it's better to just fix it.
* core, eth, trie: use common/prque (#17508)Wenbiao Zheng2018-09-032-6/+6
|
* cmd, core, eth, miner, params: configurable gas floor and ceilPéter Szilágyi2018-08-293-10/+17
|
* core: safe indexer operation when syncing starts before the checkpoint (#17511)Felföldi Zsolt2018-08-281-11/+45
|
* all: make indexer configurable (#17188)gary rong2018-08-281-1/+0
|
* core: fix typos in comment (#17531)Sheldon2018-08-281-4/+4
|
* all: remove the duplicate 'the' in annotations (#17509)Wenbiao Zheng2018-08-273-3/+3
|
* miner: fix state commit, track old work packages too (#17490)gary rong2018-08-231-23/+0
| | | | | | | | | | * miner: commit state which is relative with sealing result * consensus, core, miner, mobile: introduce sealHash interface * miner: evict pending task with threshold * miner: go fmt
* core/statedb: deep copy logs (#17489)gary rong2018-08-231-3/+6
|
* cmd, core, miner: add --txpool.locals and priority miningPéter Szilágyi2018-08-221-4/+35
|
* core/types: fix docs about protected Vs (#17436)Aditya2018-08-201-1/+1
|
* miner: regenerate mining work every 3 seconds (#17413)gary rong2018-08-161-3/+0
| | | | | | * miner: regenerate mining work every 3 seconds * miner: polish
* light: CHT and bloom trie indexers working in light mode (#16534)Felföldi Zsolt2018-08-162-10/+26
| | | | | | | This PR enables the indexers to work in light client mode by downloading a part of these tries (the Merkle proofs of the last values of the last known section) in order to be able to add new values and recalculate subsequent hashes. It also adds CHT data to NodeInfo.
* miner: move agent logic to worker (#17351)gary rong2018-08-141-3/+4
| | | | | | | | * miner: move agent logic to worker * miner: polish * core: persist block before reorg
* crypto: change formula for create2 (#17393)gary rong2018-08-141-1/+1
|
* core: fix comment typo (#17376)Mymskmkt2018-08-131-2/+2
|
* core/vm: fix comment typo (#17319)stormpang2018-08-061-1/+1
| | | | antything --> anything :P
* core/vm: update benchmarks for core/vm (#17308)Hyung-Kyu Hqueue Choi2018-08-031-0/+4
| | | | | | - Update benchmarks to use a pool of int pools. Unless benchmarks are aborted with segmentation fault. Signed-off-by: Hyung-Kyu Choi <hqueue@users.noreply.github.com>
* core/vm: fix typo in cryptographic hash function name (#17285)Ha ĐANG2018-07-311-1/+1
|
* core: fix some small typos on comment code (#17278)Ha ĐANG2018-07-303-3/+3
|
* all: simplify switches (#17267)Oleg Kovalov2018-07-301-2/+1
| | | | | | * all: simplify switches * silly mistake
* core: report progress on log chain exports (#17066)Raghav Sood2018-07-261-3/+7
| | | | | | * core/blockchain: export progress * core: polish up chain export progress report a bit
* core/vm: support for multiple interpreters (#17093)Guillaume Ballet2018-07-256-240/+315
| | | | | | - Define an Interpreter interface - One contract can call contracts from other interpreter types. - Pass the interpreter to the operands instead of the evm. This is meant to prevent type assertions in operands.
* core: fixed typo in addresssByHeartbeat (#17243)Antoine Rondelet2018-07-251-5/+5
|
* core: fix typo in comment codehadv2018-07-251-1/+1
|
* core: fix txpool guarantee comment (#17214)Osuke2018-07-241-1/+1
| | | | | | * fixed-typo * core: fix txpool guarantee comment
* core/vm, params: implement EXTCODEHASH opcode (#17202)gary rong2018-07-244-0/+45
| | | | | | | | * core/vm, params: implement EXTCODEHASH opcode * core, params: tiny fixes and polish * core: add function description
* core, crypto, params: implement CREATE2 evm instrction (#17196)gary rong2018-07-246-17/+87
| | | | | | | | | | * core, crypto, params: implement CREATE2 evm instrction * core/vm: add opcode to string mapping * core: remove past fork checking * core, crypto: use option2 to generate new address
* core: fix comment typo (#17236)Wenbiao Zheng2018-07-241-3/+3
|
* core/bloombits, light: fix typos (#17235)Sheldon2018-07-242-6/+6
|
* core, ethdb: two tiny fixes (#17183)gary rong2018-07-181-12/+18
| | | | | | | | * ethdb: fix memory database * core: fix bloombits checking * core: minor polish
* core/types: polish TxDifference code and docs a bit (#17130)Smilenator2018-07-091-3/+3
| | | | | | | | | * core: fix func TxDifference fix a typo in func comment; change named return to unnamed as there's explicit return in the body * fix another typo in TxDifference
* core/vm: reuse bigint pools across transactions (#17070)Guillaume Ballet2018-07-034-2/+112
| | | | | | | | * core/vm: A pool for int pools * core/vm: fix rebase issue * core/vm: push leftover stack items after execution, not before
* ethdb, core: implement delete for db batch (#17101)gary rong2018-07-022-10/+18
|
* core/vm: clear linter warnings (#17057)Guillaume Ballet2018-06-269-30/+51
| | | | | | | | * core/vm: clear linter warnings * core/vm: review input * core/vm.go: revert lint in noop as per request
* trie: cache collapsed tries node, not rlp blobs (#16876)Péter Szilágyi2018-06-213-5/+5
| | | | | | | | | | | | 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: remove dead code, limit test code scope (#17006)Wenbiao Zheng2018-06-194-48/+34
| | | | | | * core: move test util var/func to test file * core: remove useless func
* core/asm: correct comments typo (#16974)Caesar Chad2018-06-141-2/+2
| | | | | | | | * core/asm/compiler: correct comments typo core/asm/compiler: correct comments typo * Correct comments typo
* core: reduce nesting in transaction pool code (#16980)Wenbiao Zheng2018-06-141-5/+3
|
* core/vm: optimize MSTORE and SLOAD (#16939)Martin Holst Swende2018-06-143-11/+68
| | | | | | | | | | * vm/test: add tests+benchmarks for mstore * core/vm: less alloc and copying for mstore * core/vm: less allocs in sload * vm: check for errors more correctly
* core/asm: correct comments typo (#16975)Caesar Chad2018-06-141-1/+1
| | | core/asm/lexer: correct comments typo
* core: change comment to match code more closely (#16963)John C. Vernaleo2018-06-131-1/+1
|
* core, eth, les: more efficient hash-based header chain retrieval (#16946)Felföldi Zsolt2018-06-122-0/+49
|
* core/rawdb: wrap db key creations (#16914)Wenbiao Zheng2018-06-114-48/+85
| | | | | | | | * core/rawdb: use wrappered helper to assemble key * core/rawdb: wrappered helper to assemble key * core/rawdb: rewrite the wrapper, pass common.Hash
* core: improve getBadBlocks to return full block rlp (#16902)Martin Holst Swende2018-06-111-13/+7
| | | | | | | | * core: improve getBadBlocks to return full block rlp * core, eth, ethapi: changes to getBadBlocks formatting * ethapi: address review concerns
* core: relax type requirement for bc in ApplyTransaction (#16901)ledgerwatch2018-06-071-1/+1
|
* Merge pull request #16882 from karalabe/streaming-ecrecoverPéter Szilágyi2018-06-053-0/+113
|\ | | | | core: concurrent background transaction sender ecrecover
| * core: concurrent background transaction sender ecrecoverPéter Szilágyi2018-06-053-0/+113
| |
* | params: fix golint warnings (#16853)kiel barry2018-06-054-13/+13
|/ | | params: fix golint warnings
* core: fix typo in comment codehadv2018-06-051-1/+1
|
* core, eth, trie: streaming GC for the trie cache (#16810)Péter Szilágyi2018-06-041-22/+20
| | | | | | * core, eth, trie: streaming GC for the trie cache * trie: track memcache statistics
* core: fix transaction event asynchronicityPéter Szilágyi2018-05-301-1/+1
|
* trie: rename TrieSync to Sync and improve hexToKeybytes (#16804)Wenbiao Zheng2018-05-291-3/+3
| | | | | | | This removes a golint warning: type name will be used as trie.TrieSync by other packages, and that stutters; consider calling this Sync. In hexToKeybytes len(hex) is even and (even+1)/2 == even/2, remove the +1.
* Merge pull request #16831 from abeln/patch-1Péter Szilágyi2018-05-291-1/+1
|\ | | | | core/vm: fix typo in comment
| * core/vm: fix typo in commentAbel Nieto2018-05-291-1/+1
| |
* | core: improve test for TransactionPriceNonceSort (#16413)kimmylin2018-05-291-22/+7
|/
* common: improve documentation comments (#16701)kiel barry2018-05-292-4/+4
| | | | | This commit adds many comments and removes unused code. It also removes the EmptyHash function, which had some uses but was silly.
* core: use a wrapped map to remove contention in `TxPool.Get`. (#16670)Ryan Schneider2018-05-233-69/+132
| | | | | | * core: use a wrapped `map` and `sync.RWMutex` for `TxPool.all` to remove contention in `TxPool.Get`. * core: Remove redundant `txLookup.Find` and improve comments on txLookup methods.
* core/vm: fix typo in instructions.go (#16788)Abel Nieto2018-05-231-1/+1
|
* core/types: convert status type from uint to uint64 (#16784)gary rong2018-05-232-8/+10
|
* Merge pull request #16758 from hadv/fix/typosPéter Szilágyi2018-05-201-1/+1
|\ | | | | Fix some typos in comment code and output log
| * core, consensus: fix some typos in comment code and output loghadv2018-05-191-1/+1
| |
* | core, eth: minor txpool event cleanupsPéter Szilágyi2018-05-184-47/+44
| |
* | all: collate new transaction events togetherrjl4934564422018-05-184-33/+66
|/
* all: get rid of error when creating memory database (#16716)gary rong2018-05-0919-131/+96
| | | | | | | | * all: get rid of error when create mdb * core: clean up variables definition * all: inline mdb definition
* core/rawdb: separate raw database access to own package (#16666)Péter Szilágyi2018-05-0716-945/+989
|
* Merge pull request #16576 from CrispinFlowerday/bugfix/local_underpriced_txsPéter Szilágyi2018-05-022-10/+14
|\ | | | | core: ensure local transactions aren't discarded as underpriced
| * core: ensure local transactions aren't discarded as underpricedCrispin Flowerday2018-05-022-10/+14
| | | | | | | | | | This fixes an issue where local transactions are discarded as underpriced when the pool and queue are full.
* | core: golint updates for this or self warning (#16633)kiel barry2018-05-024-18/+18
|/
* core, eth: fix tracer dirty finalizationPéter Szilágyi2018-04-272-21/+5
|
* core/state: cache missing storage entries (#16584)Felix Lange2018-04-271-4/+1
|
* core/types: avoid duplicating transactions on changing signer (#16435)kimmylin2018-04-241-1/+4
|
* all: fix various typos (#16533)Wuxiang2018-04-191-1/+1
| | | | | | | | * fix typo * fix typo * fix typo
* core/asm: accept uppercase instructions (#16531)dm42018-04-191-2/+2
|
* core/asm: remove unused condition (#16487)dm42018-04-181-3/+0
|
* build: enable goimports and varcheck linters (#16446)thomasmodeneis2018-04-184-10/+0
|
* core: txpool stable underprice drop order, perf fixesPéter Szilágyi2018-04-123-24/+101
|
* core/state: fix ripemd-cornercase in CopyMartin Holst Swende2018-04-111-2/+8
|
* core/state: fix bug in copy of copy StateMartin Holst Swende2018-04-112-0/+26
|
* core: remove stray account creations in state transition (#16470)Felix Lange2018-04-101-42/+16
| | | | | | | | | | | | | | | | The 'from' and 'to' methods on StateTransitions are reader methods and shouldn't have inadvertent side effects on state. It is safe to remove the check in 'from' because account existence is implicitly checked by the nonce and balance checks. If the account has non-zero balance or nonce, it must exist. Even if the sender account has nonce zero at the start of the state transition or no balance, the nonce is incremented before execution and the account will be created at that time. It is safe to remove the check in 'to' because the EVM creates the account if necessary. Fixes #15119
* common: delete StringToAddress, StringToHash (#16436)Felix Lange2018-04-101-2/+2
| | | | | | | | | | * common: delete StringToAddress, StringToHash These functions are confusing because they don't parse hex, but use the bytes of the string. This change removes them, replacing all uses of StringToAddress(s) by BytesToAddress([]byte(s)). * eth/filters: remove incorrect use of common.BytesToAddress
* Merge pull request #15225 from holiman/test_removefrom_dirtysetPéter Szilágyi2018-04-106-91/+277
|\ | | | | Change handling of dirty objects in state
| * core: add blockchain benchmarksMartin Holst Swende2018-04-101-0/+111
| |
| * state: handle nil in journal dirtiesMartin Holst Swende2018-04-101-1/+11
| |
| * core/state: avoid linear overhead on journal dirty listingPéter Szilágyi2018-03-284-66/+92
| |
| * core/state: rework dirty handling to avoid quadratic overheadMartin Holst Swende2018-03-285-73/+112
| |
* | cmd/evm: print vm output when debug flag is on (#16326)dm42018-04-061-0/+7
| |
* | core/types: remove String methods from struct types (#16205)Steven Roose2018-04-055-102/+1
| | | | | | | | | | | | Most of these methods did not contain all the relevant information inside the object and were not using a similar formatting type. Moreover, the existence of a suboptimal String method breaks usage with more advanced data dumping tools like go-spew.
* | core/state: avoid redundant addition to code size cache (#16427)Jia Chenhui2018-04-031-4/+1
|/
* core/state: uniform parameter style (#16398)Jia Chenhui2018-03-281-10/+10
| | | - Uniform code style.
* core/vm: Fixed typos in core/vm/interpreter.gohydai2018-03-271-2/+2
|
* core/vm: Fixed typo in core/vm/evm.gohydai2018-03-261-3/+3
|
* core/state: fix typo (#16370)Jia Chenhui2018-03-261-2/+2
|
* core/asm: fixed typo (posititon -> position) (#16366)hydai2018-03-261-1/+1
|
* core/vm: remove JIT VM codes (#16362)hydai2018-03-267-434/+9
|
* core: minor evm polishes and optimizationsPéter Szilágyi2018-03-264-101/+107
|
* Merge pull request #15990 from markya0616/sim_backend_block_hashMartin Holst Swende2018-03-191-1/+13
|\ | | | | accounts/abi, core: add AddTxWithChain in BlockGen for simulation
| * accounts/abi, core: add AddTxWithChain in BlockGen for simulationmark.lin2018-01-291-1/+13
| |
* | core/asm: fixed typo (labal -> label) (#16313)hydai2018-03-142-2/+2
| |
* | core/vm: optimize eq, slt, sgt and iszero + tests (#16047)Martin Holst Swende2018-03-082-25/+61
| | | | | | | | | | | | | | | | * vm: optimize eq, slt, sgt and iszero + tests * core/vm: fix error in slt/sgt, found by vmtests. Added testcase * core/vm: make slt/sgt cleaner
* | core: check transaction/receipt count match when reconstructing blocks (#16272)Kyuntae Ethan Kim2018-03-071-2/+8
| |
* | core: update txpool tests for the removal fixPéter Szilágyi2018-03-072-53/+112
| |
* | core: should enqueue the invalids tx anywaycui2018-03-071-5/+6
| | | | | | | | even the pending is empty we shoud enqueue the invalid txs
* | core/vm, crypto/bn256: switch over to cloudflare library (#16203)Péter Szilágyi2018-03-051-25/+6
| | | | | | | | | | | | | | | | | | | | * core/vm, crypto/bn256: switch over to cloudflare library * crypto/bn256: unmarshal constraint + start pure go impl * crypto/bn256: combo cloudflare and google lib * travis: drop 386 test job
* | cmd/evm, core/vm, internal/ethapi: don't disable call gas meteringPéter Szilágyi2018-03-051-10/+5
| |
* | eth/downloader: save and load trie sync progress (#16224)Péter Szilágyi2018-03-031-0/+20
| |