aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* core: minor code polishes + rebase fixesPéter Szilágyi2019-04-082-41/+54
|
* core: re-omit new log event when logs rebirthrjl4934564422019-04-082-9/+224
|
* all: simplify timestamps to uint64 (#19372)Martin Holst Swende2019-04-089-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
* cmd, core, params: add support for GoerliPéter Szilágyi2019-02-192-1/+13
| | | | (cherry picked from commit b0ed083ead2d58cc25754eacdb48046eb2bc81cb)
* core: fix pruner panic when importing low-diff-large-sidechainPéter Szilágyi2019-02-103-86/+44
|
* core: repro #18977Martin Holst Swende2019-02-102-1/+104
|
* core: fix error in block iterator (#18986)Martin Holst Swende2019-02-102-11/+3
|
* core, cmd/puppeth: implement constantinople fix, disable EIP-1283 (#18486)Martin Holst Swende2019-01-303-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, 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
| |
* | core/asm: rename isAlphaNumeric to isLetter (#16212)Mark Rushakoff2018-02-281-2/+2
| | | | | | | | The function would return false for numbers, so isLetter is a more accurate description of the behavior.
* | core: make current*Block atomic, and accessor functions mutex-free (#16171)Martin Holst Swende2018-02-262-75/+76
| | | | | | | | | | | | | | | | | | | | * 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ágyi2018-02-233-128/+123
| | | | | | | | | | | | * core: flush out trie cache more meaningfully on stop * core: upgrade legacy tests to chain maker
* | core, vm, common: define constantinople fork + shift (#16045)Martin Holst Swende2018-02-235-3/+254
| | | | | | | | | | | | | | | | | | | | | | | | * core, vm, common: define constantinople fork, start implementation of shift instructions * vm: more testcases * vm: add tests for intpool erroneous intpool handling * core, vm, common: fix constantinople review concerns * vm: add string<->op definitions for new opcodes
* | metrics: pull library and introduce ResettingTimer and InfluxDB reporter ↵Anton Evangelatov2018-02-233-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#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: yeah, funny file, drop itPéter Szilágyi2018-02-221-23/+0
| |
* | core: handle ignored error (#16065)ferhat elmas2018-02-151-0/+3
| | | | | | | | | | - according to implementation of `IntrinsicGas` we can continue execution since problem will be detected later. However, early return is future-proof for changes.
* | core/vm: remove unused hashing (#16075)ferhat elmas2018-02-141-7/+0
| |
* | all: update license information (#16089)Felix Lange2018-02-142-0/+32
| |
* | core: soften up state memory force-commit log messages (#16080)Felix Lange2018-02-131-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 blocksPéter Szilágyi2018-02-121-2/+6
| |
* | core, trie: intermediate mempool between trie and database (#15857)Péter Szilágyi2018-02-0622-190/+581
| | | | | | This commit reduces database I/O by not writing every state trie to disk.
* | Merge pull request #15996 from karalabe/drop-redundant-methodsPéter Szilágyi2018-01-311-18/+1
|\ \ | | | | | | core, eth, les, light: get rid of redundant methods
| * | core, eth, les, light: get rid of redundant methodsPéter Szilágyi2018-01-311-18/+1
| |/
* / core, ethdb: reuse database batches (#15989)Martin Holst Swende2018-01-311-1/+1
|/ | | | | | * leveldb: Update leveldb to 211f780 (poolfix) * core, ethdb: reuse database batches
* core: sorted reorg insertion order for proper head header updatingPéter Szilágyi2018-01-222-7/+54
|
* core/vm: Fix comment typoGeorge Ornbo2018-01-161-1/+1
|
* miner: avoid unnecessary work (#15883)Jim McDonald2018-01-151-0/+5
|
* all: regenerate codecs with gencodec commit 90983d99de (#15830)Felix Lange2018-01-087-16/+16
| | | Fixes #15777 because null is now allowed for hexutil.Bytes.
* all: update generated code (#15808)Felix Lange2018-01-087-23/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * core/types, core/vm, eth, tests: regenerate gencodec files * Makefile: update devtools target Install protoc-gen-go and print reminders about npm, solc and protoc. Also switch to github.com/kevinburke/go-bindata because it's more maintained. * contracts/ens: update contracts and regenerate with solidity v0.4.19 The newer upstream version of the FIFSRegistrar contract doesn't set the resolver anymore. The resolver is now deployed separately. * contracts/release: regenerate with solidity v0.4.19 * contracts/chequebook: fix fallback and regenerate with solidity v0.4.19 The contract didn't have a fallback function, payments would be rejected when compiled with newer solidity. References to 'mortal' and 'owned' use the local file system so we can compile without network access. * p2p/discv5: regenerate with recent stringer * cmd/faucet: regenerate * dashboard: regenerate * eth/tracers: regenerate * internal/jsre/deps: regenerate * dashboard: avoid sed -i because it's not portable * accounts/usbwallet/internal/trezor: fix go generate warnings
* tests: update to upstream commit 2bb0c3da3b (#15806)Felix Lange2018-01-041-8/+12
| | | | Also raise traceLimit once again and print the VM error and output on failure.
* all: switch gas limits from big.Int to uint64Péter Szilágyi2018-01-0336-409/+376
|
* core, p2p/discv5: use time.NewTicker instead of time.Tick (#15747)ferhat elmas2018-01-021-2/+3
|
* accounts, consensus, core, eth: make chain maker consensus agnostic (#15497)gary rong2017-12-226-70/+82
| | | | | | | | | | * accounts, consensus, core, eth: make chain maker consensus agnostic * consensus, core: move CalcDifficulty to Engine interface * consensus: add docs for calcDifficulty function * consensus, core: minor comment fixups
* cmd, core, eth/tracers: support fancier js tracing (#15516)Péter Szilágyi2017-12-213-9/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * cmd, core, eth/tracers: support fancier js tracing * eth, internal/web3ext: rework trace API, concurrency, chain tracing * eth/tracers: add three more JavaScript tracers * eth/tracers, vendor: swap ottovm to duktape for tracing * core, eth, internal: finalize call tracer and needed extras * eth, tests: prestate tracer, call test suite, rewinding * vendor: fix windows builds for tracer js engine * vendor: temporary duktape fix * eth/tracers: fix up 4byte and evmdis tracer * vendor: pull in latest duktape with my upstream fixes * eth: fix some review comments * eth: rename rewind to reexec to make it more obvious * core/vm: terminate tracing using defers
* core: silence txpool reorg warning (annoying on import) (#15725)Péter Szilágyi2017-12-211-1/+1
|
* core: fix typos (#15720)Kurkó Mihály2017-12-212-14/+14
|
* core: fix panic when stat-ing a tx from a queue-only account (#15714)Péter Szilágyi2017-12-202-1/+58
|
* core/vm: Remove snapshot param from Interpreter.Run()Paweł Bylica2017-12-152-10/+10
|
* all: use gometalinter.v2, fix new gosimple issues (#15650)Zach2017-12-133-8/+3
|
* core/types: fix typo in comment (#15619)Airead2017-12-071-1/+1
|
* core/vm: track 63/64 call gas off stack (#15563)Felix Lange2017-11-294-99/+55
| | | | | | | | | | | | | | | | | * core/vm: track 63/64 call gas off stack Gas calculations in gasCall* relayed the available gas for calls by replacing it on the stack. This lead to inconsistent traces, which we papered over by copying the pre-execution stack in trace mode. This change relays available gas using a temporary variable, off the stack, and allows removing the weird copy. * core/vm: remove stackCopy * core/vm: pop call gas into pool * core/vm: to -> addr
* core/state: copy trie too, not just contentPéter Szilágyi2017-11-242-1/+52
|
* all: fix code comment typos (#15547)Ricardo Domingos2017-11-242-2/+2
| | | | | | | | | | | | * console: fix typo in comment * contracts/release: fix typo in comment * core: fix typo in comment * eth: fix typo in comment * miner: fix typo in comment
* core/vm, internal/ethapi: tracer no full storage, nicer json output (#15499)Péter Szilágyi2017-11-172-46/+4
| | | | | | * core/vm, internal/ethapi: tracer no full storage, nicer json output * core/vm, internal/ethapi: omit disabled trace fields
* core/bloombits: handle non 8-bit boundary section matchesPéter Szilágyi2017-11-152-23/+40
|
* Merge pull request #14582 from holiman/jumpdest_improvPéter Szilágyi2017-11-152-14/+96
|\ | | | | core/vm: improve jumpdest analysis
| * core/vm: copyright header on test-fileMartin Holst Swende2017-11-141-0/+16
| |
| * core/vm: improve bitvec commentsFelix Lange2017-09-111-7/+7
| |
| * core/vm: Rename + updated doc on jumpdest analysisMartin Holst Swende2017-09-082-5/+5
| |
| * core/vm: make jumpdest code nicerFelix Lange2017-08-241-3/+1
| |
| * core/vm: Address review concernsMartin Holst Swende2017-08-141-14/+19
| |
| * core/vm: improved jumpdest analysisMartin Holst Swende2017-06-052-9/+72
| |
* | Merge pull request #15470 from karalabe/clique-sametd-splitterPéter Szilágyi2017-11-151-1/+6
|\ \ | | | | | | core: split same-td blocks on block height
| * | core: split same-td blocks on block heightPéter Szilágyi2017-11-131-1/+6
| | |
* | | core/vm: fix typos in jump_table.goJay Guo2017-11-141-2/+2
|/ /
* | build: enable unconvert linter (#15456)ferhat elmas2017-11-111-2/+2
| | | | | | | | | | | | | | | | | | * build: enable unconvert linter - fixes #15453 - update code base for failing cases * cmd/puppeth: replace syscall.Stdin with os.Stdin.Fd() for unconvert linter
* | all: gofmt -w -s (#15419)ferhat elmas2017-11-085-21/+21
| |
* | core: respect price bump threshold (#15401)Jim McDonald2017-10-302-11/+14
| | | | | | | | | | | | | | | | | | | | * core: allow price bump at threshold * core: test changes to allow price bump at threshold * core: reinstate tx replacement test underneath threshold * core: minor test failure message cleanups
* | core, swarm: typo fixesferhat elmas2017-10-301-1/+1
| |
* | les, core/bloombits: post-LES/2 fixes (#15391)Felföldi Zsolt2017-10-271-1/+4
| | | | | | | | | | | | * les: fix topic ID * core/bloombits: fix interface conversion
* | core, eth, les: fix messy code (#15367)Péter Szilágyi2017-10-255-148/+99
| | | | | | | | | | | | | | | | * core, eth, les: fix messy code * les: fixed tx status test and rlp encoding * core: add a workaround for light sync
* | les, light: LES/2 protocol version (#14970)Felföldi Zsolt2017-10-247-65/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR implements the new LES protocol version extensions: * new and more efficient Merkle proofs reply format (when replying to a multiple Merkle proofs request, we just send a single set of trie nodes containing all necessary nodes) * BBT (BloomBitsTrie) works similarly to the existing CHT and contains the bloombits search data to speed up log searches * GetTxStatusMsg returns the inclusion position or the pending/queued/unknown state of a transaction referenced by hash * an optional signature of new block data (number/hash/td) can be included in AnnounceMsg to provide an option for "very light clients" (mobile/embedded devices) to skip expensive Ethash check and accept multiple signatures of somewhat trusted servers (still a lot better than trusting a single server completely and retrieving everything through RPC). The new client mode is not implemented in this PR, just the protocol extension.
* | cmd, consensus, core, miner: instatx clique for --dev (#15323)Péter Szilágyi2017-10-244-13/+28
| | | | | | | | | | | | | | | | * cmd, consensus, core, miner: instatx clique for --dev * cmd, consensus, clique: support configurable --dev block times * cmd, core: allow --dev to use persistent storage too
* | core: avoid warning when loading the transaction journalPéter Szilágyi2017-10-201-0/+13
| |
* | core: fire tx event on replace, expand testsPéter Szilágyi2017-10-203-4/+191
| |
* | core/vm: check opcode stack before readonly enforcementPéter Szilágyi2017-10-141-13/+10
| |
* | core/types: fix test for TransactionsByPriceAndNonceJim McDonald2017-10-111-6/+6
| |
* | core: revert invalid block dedup code (#15235)Péter Szilágyi2017-10-041-5/+0
| |
* | core/types, internal: swap Receipt.Failed to StatusPéter Szilágyi2017-10-023-20/+34
| |
* | ethclient, mobile: add TransactionSender (#15127)Felix Lange2017-10-013-126/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * core/types: make Signer derive address instead of public key There are two reasons to do this now: The upcoming ethclient signer doesn't know the public key, just the address. EIP 208 will introduce a new signer which derives the 'entry point' address for transactions with zero signature. The entry point has no public key. Other changes to the interface ease the path make to moving signature crypto out of core/types later. * ethclient, mobile: add TransactionSender The new method can get the right signer without any crypto, and without knowledge of the signature scheme that was used when the transaction was included.
* | core/bloombits, eth/filters: handle null topics (#15195)Péter Szilágyi2017-09-272-2/+42
| | | | | | | | | | | | | | | | | | | | When implementing the new bloombits based filter, I've accidentally broke null topics by removing the special casing of common.Hash{} filter rules, which acted as the wildcard topic until now. This PR fixes the regression, but instead of using the magic hash common.Hash{} as the null wildcard, the PR reworks the code to handle nil topics during parsing, converting a JSON null into nil []common.Hash topic.
* | Merge pull request #15181 from fjl/state-revert-log-indexPéter Szilágyi2017-09-261-0/+1
|\ \ | | | | | | core/state: revert log index when removing logs
| * | core/state: revert log index when removing logsFelix Lange2017-09-221-0/+1
| | |
* | | core/vm: standard vm traces (#15035)cdetrio2017-09-221-3/+19
|/ /
* | params: enable Byzantium on Ropsten/tests, fix failuresPéter Szilágyi2017-09-142-15/+23
| |
* | params: Updated finalized gascosts for ECMUL/MODEXP (#15135)Martin Holst Swende2017-09-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | * params: Updated finalized gascosts for ECMUL/MODEXP * core,tests: Updates pending new tests * tests: Updated with new tests * core: revert state transition bugfix * tests: Add expected failures due to #15119
* | consensus, core, params: rebrand Metro to ByzantiumPéter Szilágyi2017-09-148-21/+21
| |
* | core: only fire one chain head per batch (#15123)Péter Szilágyi2017-09-112-22/+33
| | | | | | | | | | | | * core: only fire one chain head per batch * miner: announce chan events synchronously
* | core, eth/downloader: commit block data using batches (#15115)Felix Lange2017-09-104-199/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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/types, miner: avoid tx sender miscaching (#14773)Mark2017-09-082-11/+13
| |
* | core/asm: use ContainsRune instead of IndexRune (#15098)Fiisio2017-09-081-3/+3
| |
* | core: delete dao.go (#15113)Pawan Singh Pal2017-09-081-75/+0
| | | | | | | | - dao.go is already present in consensus/misc - core/dao.go is not used anywhere in the codebase