aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* consensus: dexcon: snapshot round height when finalizing block (#170)Wei-Ning Huang2019-01-243-106/+0
| | | | Instead of having BP to send a tx to register the round height, just modify the state when finalizing block.
* core, dex/downloader: polish headers verification and blocks insertion ↵Sonic2019-01-248-509/+614
| | | | | | | logic (#168) Refactor GenerateDexonChain function, move governance tx logic to the user of GenerateDexonChain (testchain_test.go) and move fake node set code to FakeDexcon.
* travis: re-encrypt GCP credential file (#165)bojie2019-01-201-1/+1
|
* params: update testnet genesis and dMomentWei-Ning Huang2019-01-181-2/+1
|
* core, dex: use block hash as witness data (#160)Sonic2019-01-185-50/+17
| | | | | | | | | | Using only state root and receipt root as witness data can not protect other fields in block header, ex: bloom, difficulty, gas limit, gas used... So that everyone can manipulate these fields to create as many valid blocks at the same height as he want. Although this will not effect the state, one can spam us when syncing. Using block hash as witness data can solve this.
* blockchain: add mutex lock to prevent fork (#159)bojie2019-01-171-1/+6
|
* Revert "core: do not panic on fork (#146)"Wei-Ning Huang2019-01-171-8/+4
| | | | This reverts commit bdde6109ffa6fa4d295708a2a75271186a12c761.
* core: sync to latest core (#158)Jimmy Hu2019-01-171-1/+1
| | | | | | * vendor: sync to latest core * param: Update config * core: update genesis alloc
* Revert "core: vm: refactor file structure (#151)"Wei-Ning Huang2019-01-1757-858/+837
| | | | This reverts commit 020c8a477578cef3764b54f33d9ca0cf6caf7631.
* app: fix reward bug with empty block (#155)bojie2019-01-161-3/+2
| | | | | | | | * app: fix reward bug with empty block * make block generation consistent * revert change to dmoment in genesis.json
* core: vm: refactor file structure (#151)JM2019-01-1557-837/+858
| | | | For support other vm types, this pr modified the core/vm file structures.
* core: do not panic on fork (#146)Wei-Ning Huang2019-01-151-4/+8
| | | | | | It is possible for someone on the network to send a block with correct tx and tSig but wrong state root. When this happens, a fork block will be inserted as side chain. Do not panic on this case or all nodes will be down.
* app: remove pending block logic (#149)bojie2019-01-146-276/+179
|
* core: update taipei allocJimmy Hu2019-01-141-1/+1
|
* params: update genesis configWei-Ning Huang2019-01-143-16/+21
|
* consensus: implement DEXON cryptoeconomics v4.0 (#145)Wei-Ning Huang2019-01-145-54/+167
|
* core: vm: add totalSupply and totalStaked in the governance contract (#144)Wei-Ning Huang2019-01-144-35/+144
| | | | | | | Add totalSupply and totalStaked in the governance contract for the preperation of DEXON cryptoeconomics 4.0. Also removed the unstaked variable in node info and improve tests for delegate/undeleate.
* core: vm: move governance abi to a separate file (#143)Wei-Ning Huang2019-01-142-1053/+1074
|
* core: vm: emit events for more governance actions (#142)Wei-Ning Huang2019-01-141-0/+145
|
* core: update testnet genesis_allocJimmy Hu2019-01-141-1/+1
|
* core: update taipei network genesis allocWei-Ning Huang2019-01-141-1/+1
|
* core: fix corner case when initializing round height (#134)Sonic2019-01-141-1/+1
|
* app: implement logic for prepare/verify correctly when chain number change ↵bojie2019-01-145-19/+122
| | | | (#118)
* core: vm: implement byzantine reporting mechanism (#128)Wei-Ning Huang2019-01-142-48/+578
|
* params: update taipei genesis config (#130)Wei-Ning Huang2019-01-141-1/+1
|
* core, indexer, dex: fix DexconApp block deliver after synced (#122)Sonic2019-01-141-5/+6
| | | | | | | When starts a bp node to sync with the network, bc.chainLastHeight map may not be initialized yet. Just return error if we can not get chain last height when preparing payload and verify block.
* core: fix vm wrong round height context (#124)Sonic2019-01-141-0/+45
| | | | Let roundHeightMap be corret whenever we starting a bp node.
* core: update taipei testnet genesis config and alloc (#119)Wei-Ning Huang2019-01-141-1/+1
|
* core: vm: add missing unittests for nodes/delegators (#116)Wei-Ning Huang2019-01-142-3/+13
|
* params: update taipei testnet genesis and config (#113)Wei-Ning Huang2019-01-142-3/+5
|
* core/vm: Add fine to governance. (#107)Jimmy Hu2018-12-282-132/+292
| | | | | | | | * core/vm: Add Fined field to nodeInfo. * core/vm: Add PayFine to Governance * Not qualify if staked-fine < minStake() * Add test for fine * Update genesis hash
* core: add database/sql support for more types (#102)Meng-Ying Yang2018-12-282-8/+112
| | | | | | | | | * core: types: add database/sql support for BlockNonce * common: add database/sql support with Big New Big type is declared to let big.Int support database/sql by implementing Scan() and Value() on new type.
* vendor: sync DEXON core and fix conflicts/missings (#101)Mission Liao2018-12-281-4/+6
| | | | | | | Merging these commits in DEXON consensus core: - https://github.com/dexon-foundation/dexon-consensus/commit/dce509a13ef5873b9cae3c1cabdb97e219b6fb7d - https://github.com/dexon-foundation/dexon-consensus/commit/6d1c1aeea0d3e75d10cbb2712c68b4c422ba8ba6 - https://github.com/dexon-foundation/dexon-consensus/commit/c1ed57c4abaf1f4758e52f082bb7114ad00c8b39
* core/types: SigCache with a limited size (#98)Jimmy Hu2018-12-212-21/+33
| | | | | | * core/types: SigCache with a limited size * minor tweaks
* core, dex, internal: block proposer syncing (first iteration) (#96)Sonic2018-12-212-57/+2
| | | | | | | | | | | | | | | | | | | | | | * dex, internal: block proposer syncing (first iteration) * core: find block from db if not in memory This fix handles stopping proposing and then restarting * core: no need to reorg when reset Dexon will not fork. This commit also fix when a block confirm but its parent is not in db yet, during restarting proposing. * dex: always accept NewBlockMsg, NewBlockHashesMsg We need to accept NewBlockMsg, NewBlockHashesMsg to sync current block with other peers in block proposer mode when syncing lattice data. It's a waste when the node is synced and start proposing. Todo: control msg processing on/off more granular, accept NewBlockMsg, NewBlockHashesMsg when syncing, but stop when synced.
* core: vm: Add `MPKReady` to governance (#97)Jimmy Hu2018-12-212-0/+174
| | | | | | * core/vm: Add DKGMPKReady * param: update GenesisHash * vendor: sync to latest core
* core/vm: fix nodes method in governanceJimmy Hu2018-12-201-1/+1
|
* dex: remove duplicate declaration of WitnessData (#92)Wei-Ning Huang2018-12-192-7/+0
| | | | Remove duplicate declaration of WitnessData and remove the TxHash field in witness data since it does not need to be witnessed.
* core: vm: add undelegate fund lockup mechanism (#94)Wei-Ning Huang2018-12-193-41/+236
| | | | | Only allow a user to withdraw funds after a certain lockup period. This way, the fund of a bad actor could be confiscated before he could escape.
* core: update genesis allocJimmy Hu2018-12-191-1/+1
|
* vendor: sync to latest core (#91)Mission Liao2018-12-193-1/+108
| | | | | | - Implement new methods in db to cache DKG private key. - Implement new methods in db to cache compaction chain tip.
* cache: prune cache correctly (#88)bojie2018-12-191-2/+1
|
* core: governance interface should return correct DKG master public keys (#85)Wei-Ning Huang2018-12-192-24/+21
|
* core, dex: polish sync (#75)Sonic2018-12-191-0/+3
| | | | | | | | | | | | | | | - Broadcasting blocks at chain head event is not correct when the full node is not running in block proposer mode. Introduce NewFinalizedBlockEvent, this event is post by the full node which runs in block proposer mode when a block is witnessed and resulting in some blocks are considered finalized. - Non block proposer node will still broadcast blocks at the following moment (same as ethereum): 1. a sync with a peer is terminated successfully 2. a block passes the fetcher's header check during inserting blocks 3. a block is successfully inserted by fetcher - Don't trigger a sync when we are not behind other peers more than acceptable distance. Fetcher is able to cover this.
* core, dex: Timeout for prepare payload (#72)Jimmy Hu2018-12-192-8/+13
| | | | | | * Timeout on prepare payload * Leave 2 CPU for others * Add hardLimit and softLimit to PreparePayload
* app: add app test case and benchmark (#66)bojie2018-12-193-13/+268
|
* dex: verify header that imported from fetcher (#68)Sonic2018-12-191-0/+4
|
* Fix lintWei-Ning Huang2018-12-192-4/+4
|
* core: Update genesis alloc. (#63)Jimmy Hu2018-12-191-1/+1
|
* core: panic if fork found when inserting header chain (#61)Wei-Ning Huang2018-12-191-1/+6
|
* tests: fix testsWei-Ning Huang2018-12-191-1/+10
|
* dex: fix testsWei-Ning Huang2018-12-191-0/+2
|
* core: fix testsWei-Ning Huang2018-12-192-4/+5
|
* core: vm: fix power2 table calculation (#50)Wei-Ning Huang2018-12-191-3/+3
|
* core: commit states at snapshot height (#49)Sonic2018-12-191-2/+7
|
* core: add Taipei testnet (#47)Wei-Ning Huang2018-12-191-1/+13
| | | | Add a new testnet named Taipei.
* core: various changes on tps tuning (#46)Wei-Ning Huang2018-12-194-11/+12
|
* core: increase tx pool sizeWei-Ning Huang2018-12-191-4/+4
|
* core, dex, downloader: refactor governanceSonic2018-12-192-25/+61
|
* core, dex, dex/downloader: restore insertChain to upstream versionSonic2018-12-192-20/+18
| | | | | Also rename InsertChain2, insertChain2, InsertHeaderChain2, ValidateHeaderChain2
* dex: implement downloader for dexSonic2018-12-191-0/+5
| | | | | | | | | | | We need governance state to verify block's signature (randomness), but in ethereum fast sync mode, eth downloader only downloads the whole state of pivot block, so we don't have governance state to verify the downloaded block that is before pivot block if we don't processing transaction. To avoid running transactions, dex downloader also downloads the governance state (merkle proof and storage) at snapshot height of each round, so that we can verify blocks in fast sync mode.
* core: implement insert chain, headerchain logicSonic2018-12-193-0/+521
|
* core: support extracting governance state from state trieSonic2018-12-193-0/+73
|
* core: add global signature cache and improve concurrency (#42)Wei-Ning Huang2018-12-194-53/+86
| | | | | From the go trace result, the bottleneck hides in the lock of StoreTxCache. To improve this, we update the cache in a batched fassion.
* core, dex: Batch process touchSender. Lower priority for tx. (#41)Jimmy Hu2018-12-191-13/+19
| | | | | | | * dex: Add a tx queue in broadcast * Modify queue parameter * Priority select all messages except tx * Batch process TouchSenders
* dex: add BlockDB, which implements consensus core's blockdb.BlockDatabase (#36)Sonic2018-12-192-0/+58
|
* core: vm: change offset type to int256Wei-Ning Huang2018-12-191-2/+7
| | | | | Since we use -1 to represent the offset of empty value, we should make the return type int256 instead of uint256.
* governance: implement delegate/undelegate function and add tests (#33)Wei-Ning Huang2018-12-194-111/+1152
| | | | | 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 Huang2018-12-191-4/+7
|
* core: more fix on light node synchronization (#32)Wei-Ning Huang2018-12-193-67/+50
| | | | | | 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: vm: add minStake to governance contract variable (#31)Wei-Ning Huang2018-12-193-2/+42
|
* core: fix light node synchronization issue (#30)Wei-Ning Huang2018-12-194-9/+18
| | | | | 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 Huang2018-12-192-10/+10
|
* app: add cache to reuse same tx address which has already recovered (#26)BJ42018-12-193-3/+41
|
* core: refactor validator and fix light node sync (#25)Wei-Ning Huang2018-12-198-147/+92
| | | | | | | 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)Sonic2018-12-191-9/+6
| | | No need to store round 0, it's already pushed in genesis block
* dex, core: Fix make fail (#24)Jimmy Hu2018-12-191-1/+1
|
* core, dex: Optimize sender calculation in block transactions. (#22)Jimmy Hu2018-12-192-0/+34
| | | | | | * 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 Huang2018-12-194-32/+63
| | | | | * vendor: sync consensus core * core: validate DKG set with correct nodeset in round-2
* core: vm: Optimize evm (#13)Jimmy Hu2018-12-195-18/+282
| | | | | | | * core: vm: add an EVM benchmark * core: vm: optimize stack allocation and instruction for calculating 2^n * Add DEXONBet bench
* core: push height of round 0 in genesis block (#17)Sonic2018-12-192-8/+11
| | | | | | | * core: push height of round 0 in genesis block * vm: fix governance dispatch method name mismatch with abi also rename RoundHeightLoc to roundHeightLoc
* dex: return correct pending nonce (#14)Wei-Ning Huang2018-12-191-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.
* params: fix genesis block config and use testnet for test (#10)Wei-Ning Huang2018-12-191-3/+3
|
* core: fix staked calculation in genesis (#8)Jimmy Hu2018-12-191-4/+0
|
* core: vm: expose governance contract ABI (#5)Wei-Ning Huang2018-12-191-2/+2
|
* core: blockchain: fix NewBlockChainWithDexonValidator (#4)Wei-Ning Huang2018-12-191-1/+1
|
* core: genesis: make ToBlock() compatible with legacy ethereum code (#3)Wei-Ning Huang2018-12-191-28/+36
| | | | Make ToBlock() compatible with legacy ethereum code so we can run tests normally.
* app: fix core testBJ42018-12-197-37/+144
|
* core: vm: governance: add node infoWei-Ning Huang2018-12-196-10/+149
|
* core: validate roundHeight mapping in governance contractWei-Ning Huang2018-12-195-4/+43
|
* core: GenerateChainWithRoundChange for testingSonic2018-12-193-0/+598
|
* app: lock by chain correctly and remove old core in vendorBJ42018-12-191-46/+49
|
* core: vm: governance: remove maxIntervalWei-Ning Huang2018-12-191-32/+0
|
* core: vm: add nodesLengh method for reading nodeSet sizeWei-Ning Huang2018-12-191-0/+20
|
* Rename import due to dexon-consensus renameWei-Ning Huang2018-12-193-18/+18
|
* dex: minor refactorWei-Ning Huang2018-12-191-6/+5
|
* app: add lock to prevent concurrent map read writeBojie Wu2018-12-191-0/+3
|
* core: tx_pool: remove transactions on BlockConfirmed eventWei-Ning Huang2018-12-194-41/+53
|
* dex: add block gas limit into governanceWei-Ning Huang2018-12-191-0/+35
|
* app: using lock correctly to use map safelyBojie Wu2018-12-191-56/+86
|
* app: fix concurrent map read write issue and accept fail transaction when ↵Bojie Wu2018-12-191-1/+7
| | | | round change
* core: fix blockReward serializationWei-Ning Huang2018-12-192-37/+28
|
* app: add cache mechanism to increase performanceBojie Wu2018-12-193-149/+133
|
* core: set correct balance for governance contractWei-Ning Huang2018-12-192-1/+7
|
* dex: return round in get block rpc outputWei-Ning Huang2018-12-192-4/+5
|
* app: fix concurrent read write issue with mapBojie Wu2018-12-191-0/+6
|
* dex: remove uneeded info from block headerWei-Ning Huang2018-12-193-90/+87
|
* core: types: fix header marshal jsonSonic2018-12-192-34/+72
|
* vendor: sync consensus core and fix conflictWei-Ning Huang2018-12-191-7/+8
|
* app: correct process pending block logicBojie Wu2018-12-191-126/+111
|
* dex: fix missing randomness assignmentWei-Ning Huang2018-12-191-1/+1
|
* dex: fix DKG round switchingWei-Ning Huang2018-12-191-6/+18
|
* dex: fix round switching and initialize dMoment correctlyWei-Ning Huang2018-12-191-1/+2
|
* dex: misc fixesWei-Ning Huang2018-12-191-3/+3
|
* app: check nonce and balance in prepare payloadBojie Wu2018-12-192-5/+3
|
* core: included Dexcon metadata in blockWei-Ning Huang2018-12-191-2/+3
|
* Remove reference of Rinkeby network.Wei-Ning Huang2018-12-192-13/+0
| | | | We do not need ethereum Rinkeby network in our system, remove it.
* core: populate genesisAlloc in source code with DEXON genesis dataWei-Ning Huang2018-12-193-14/+46
|
* dex: use RLP to encode contract payload dataWei-Ning Huang2018-12-191-6/+6
|
* app: implement verify block logicBojie Wu2018-12-192-1/+51
|
* consensus: dexcon: fetch config from stateWei-Ning Huang2018-12-191-19/+22
|
* core: vm: add blockReward to governanceWei-Ning Huang2018-12-192-4/+39
|
* dex: fix public key parsing due to changes in consensus coreWei-Ning Huang2018-12-191-1/+4
|
* core: set governance owner in genesisWei-Ning Huang2018-12-191-1/+3
|
* params: load blockReward from genesis JSON fileWei-Ning Huang2018-12-191-0/+1
|
* app: fixup message formatWei-Ning Huang2018-12-191-3/+3
|
* app: implement new insert blocks logicBojie Wu2018-12-193-18/+246
|
* test: create account storage for governance contractWei-Ning Huang2018-12-191-1/+1
|
* core/dex: fix governance contract implementationWei-Ning Huang2018-12-191-19/+13
|
* core: vm: implement RAND opcode supportWei-Ning Huang2018-12-199-0/+45
| | | | | | DEXON has a built-in on chain random oracle that allow one to retrieve a random variable. Add a new opcode `RAND` to load the random variable onto the stack.
* dex/core: misc bug fixesWei-Ning Huang2018-12-192-2/+3
|
* app: correct dexon application logicBojie Wu2018-12-191-44/+37
|
* core: fix nil map initializationWei-Ning Huang2018-12-191-0/+7
|
* app: init mapBojie Wu2018-12-191-15/+17
|
* core: setup stake in order so genesis block is deterministicWei-Ning Huang2018-12-191-1/+26
|
* core: vm: modify dkg thresholdJimmy Hu2018-12-191-1/+1
|
* core: vm: add GovernanceStateHelper testWei-Ning Huang2018-12-192-0/+98
|
* core: populate genesis CRS in genesis stateWei-Ning Huang2018-12-191-0/+5
|
* dex: bug fix to allow running geth without crashingWei-Ning Huang2018-12-192-9/+1
|
* dex: implement sendTx related governance methodsWei-Ning Huang2018-12-191-0/+5
|
* core: vm: validate if mpk, complaint, finalize is in DKG setWei-Ning Huang2018-12-191-36/+62
|
* core: vm: allow other people to stake for a nodeWei-Ning Huang2018-12-191-6/+0
|
* dex: implement some governance interface functionsWei-Ning Huang2018-12-191-213/+342
|
* dex: governance: implement governance interfaceWei-Ning Huang2018-12-192-11/+23
|
* app: implement new interface methodBojie Wu2018-12-191-0/+56
|
* core: populate dexon configuration in SetupGenesisBlockWei-Ning Huang2018-12-192-31/+28
|
* dex: implement dexon application interfaceBojie Wu2018-12-191-4/+8
|
* core: add stake and public key to genesis account infoWei-Ning Huang2018-12-194-46/+95
|
* core: vm: check pk ownership in stake()Wei-Ning Huang2018-12-191-1/+12
|
* core: vm: expose nodes as publicWei-Ning Huang2018-12-191-14/+52
|
* core: vm: add eventlog for governance contractWei-Ning Huang2018-12-191-41/+98
|
* core: vm: refactor and add DKGFinalizeds related implementationsWei-Ning Huang2018-12-191-94/+300
|
* dex: redesign p2p network topologySonic2018-12-191-0/+7
| | | | | | | | | | - Let p2p server support direct connection and group connection. - Introduce node meta table to maintain IP of all nodes in node set, in memory and let nodes in the network can sync this table. - Let peerSet able to manage direct connections to notary set and dkg set. The mechanism to refresh the network topology when configuration round change is not done yet.
* core: vm: implement the rest of governance contract methodsWei-Ning Huang2018-12-191-132/+275
|
* core: vm: check if caller already staked when adding dkg mpkJimmy Hu2018-12-191-0/+7
|
* core: vm: fix bug and add gas usageWei-Ning Huang2018-12-192-22/+55
|
* core: vm: finish implementing state helperWei-Ning Huang2018-12-191-23/+206
|
* core: vm: update governance contract ABIWei-Ning Huang2018-12-191-9/+75
|
* core: vm: implement governance contract methodsWei-Ning Huang2018-12-191-51/+218
|
* core: vm: add governance contract skeletonWei-Ning Huang2018-12-192-0/+495
|
* Change import go github.com/dexon-foundation/dexonWei-Ning Huang2018-12-1995-334/+334
|
* 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