aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* dex: implement recovery mechanism (#258)Wei-Ning Huang2019-06-122-5/+5
| | | | | | | | | * dex: implement recovery mechanism The DEXON recovery protocol allows us to use the Ethereum blockchain as a fallback consensus chain to coordinate recovery. * fix
* core: vm: group min gas price with related state variables (#257)Wei-Ning Huang2019-06-123-16/+16
|
* core: vm: implement transfer node ownership (#255)Wei-Ning Huang2019-06-123-9/+83
|
* core: vm: create new oracle contract instance in each call (#251)Wei-Ning Huang2019-06-123-6/+16
| | | | | Since the VM might be called from different source (downloader, RPC, etc.). We need to make the call state separate. Modify the calling sequence so a new oracle contract instance is used on each run.
* vendor: sync to latest core (#253)Jimmy Hu2019-06-122-3/+56
|
* core/vm: use core util to get threshold of tsig (#250)Jimmy Hu2019-06-121-3/+4
|
* params: update testnet config to 40 nodesJimmy Hu2019-06-121-1/+1
|
* vendor: sync to latest core and fix conflictJimmy Hu2019-06-121-2/+2
|
* core: touch verifierCache at 90% of round (#247)Jimmy Hu2019-06-121-2/+35
|
* app: new app test flow (#244)bojie2019-06-126-65/+8
|
* core: vm: remove delegation mechanism (#245)Wei-Ning Huang2019-06-126-997/+263
| | | | | | | | | | | | | The current delegation mechanism are prone to unstaking attack. i.e. a malicious attacker could unstake a small amount from a lot of node it staked before and make them unqualified, which leads to potential failure of the network. Since DEXON does not use consensus like DPoS, node is required to have at least MinStake in order to become a node. Voting mechanism is not required in our system since qualified node does not depends on the number of votes. Instead of managing the delegation mechanism in governance contract, we should let the owner manage the delegation and reward distribution mechanism on their own.
* core: vm: expose CRSRound and DKGRound and fix consistency (#236)Wei-Ning Huang2019-06-123-60/+118
|
* app: refactor app run as single chain (#226)bojie2019-06-121-146/+14
|
* core: fix dkgJimmy Hu2019-06-121-12/+47
|
* params: Change taipei to 40 nodes (#227)Jimmy Hu2019-06-121-1/+1
|
* dex: fill in correct coinbase address (#223)Wei-Ning Huang2019-06-121-0/+9
| | | Also remove app_test.go because of the refactor bojie@ is working on.
* params: Update config (#224)Jimmy Hu2019-06-121-1/+1
| | | | | | * params: Update config * Update taipei to 30 nodes setup
* core: vm: validate addDKGMasterPublicKey caller properly (#220)Wei-Ning Huang2019-06-123-60/+59
| | | | | | There are two keys in the system: one is the owner's key which is used for stake / unstake. The other is the node key which is used for DKG related operations. We need to allow them to be different so fund renmains safe even if the the node key is lost.
* core: vm: flatten governanceWei-Ning Huang2019-06-1210-524/+523
|
* core: sync to latest core (#214)Jimmy Hu2019-06-123-7/+20
| | | | | * vendor: sync to latest core * fix for single chain
* params: add Yilan network (#207)Mission Liao2019-06-123-0/+25
| | | | | | * Add Yilan network * Fixup: remove dummy log
* core: Fixed gas price (#205)Jimmy Hu2019-06-126-2/+96
| | | | | | | | | | * core/vm: update abi * core/vm: add MinGasPrice to gov * params: Add MinGasPrice to Config * dex: SuggestPrice from Governance * test: add minGasPrice to genesis.json * core: check underpriced tx * dex: verify with gas price
* core: set oracle contract's code (#209)Sonic2019-06-122-1/+6
| | | So that other contract can call oracle contract.
* fee: fix wrong gas used (#208)bojie2019-06-121-0/+2
|
* core: Remove K, Phi and NumChains from Governance (#198)Jimmy Hu2019-06-125-174/+37
| | | | | | * change default sync_core.sh * vendor: sync to latest core * core: Remove K, Phi and NumChain
* copy testnet config to taipeiJimmy Hu2019-06-121-1/+1
|
* core/vm: fix getConfigState (#203)Jimmy Hu2019-06-121-4/+3
|
* vm: reset DKG (#190)Jimmy Hu2019-06-124-70/+562
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vm: Update gov abi * vm: Add DKGResetCount to state helper * vm: add getter * vm: Add DKGReset event * vm: Add resetDKG method * vm: check resetDKG criteria * vm: Add new CRS * vm: add helper pop2DByteArray * vm: emit event * vm: Add CoreMock to GovernanceContract * vm: bug fix * add test for resetDKG * vm: Add test * fix test * Modify mock interface
* transaction: use all transaction gas to reduce attack intention (#180)bojie2019-06-121-1/+25
| | | The ci test in /tests will use origin evm logic.
* core/vm: modify Withdrawn event and add NodeRemoved event (#179)Jimmy Hu2019-06-122-4/+31
| | | | | | * core/vm: add delegatorAddr to withdrawn event * core/vm: update gov abi * core/vm: add NodeRemoved event
* core: vm: refactor governance and add node info oracle (#174)Wei-Ning Huang2019-06-125-682/+953
|
* core: vm: Add amount to undelegate event (#176)Jimmy Hu2019-06-122-4/+9
|
* core: vm: more change to the randomness calculation (#175)Wei-Ning Huang2019-06-121-5/+5
| | | | To prevent attacker from sending TX through a intermediate contract. Always use the original tx sender's adddress and nonce.
* core: vm: modify randomness calculation algorithm (#173)Wei-Ning Huang2019-06-122-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | The original algorithm used for calculating algorithm is vulnerable to cross context re-entry attack. Example as follows: contract B { event Value(uint256 value); uint256 public value; function call() public { value = rand; emit Value(value); } } contract A { function randTwice(address bAddr) public { B b = B(bAddr); b.call.gas(100000)(); b.call.gas(100000)(); } } The two `b.call` will result in the same randomness value. This commit fix the issue by recording a called index used to store how many times opRand is called, and use it as argument to the Keccak call.
* consensus: dexcon: snapshot round height when finalizing block (#170)Wei-Ning Huang2019-06-123-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 logic ↵Sonic2019-06-128-509/+614
| | | | | | | | (#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-06-121-1/+1
|
* params: update testnet genesis and dMomentWei-Ning Huang2019-06-121-2/+1
|
* core, dex: use block hash as witness data (#160)Sonic2019-06-125-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-06-121-1/+6
|
* core: sync to latest core (#158)Jimmy Hu2019-06-121-1/+1
| | | | | | * vendor: sync to latest core * param: Update config * core: update genesis alloc
* app: fix reward bug with empty block (#155)bojie2019-06-121-3/+2
| | | | | | | | * app: fix reward bug with empty block * make block generation consistent * revert change to dmoment in genesis.json
* app: remove pending block logic (#149)bojie2019-06-126-296/+197
|
* core: update taipei allocJimmy Hu2019-06-121-1/+1
|
* params: update genesis configWei-Ning Huang2019-06-123-16/+21
|
* consensus: implement DEXON cryptoeconomics v4.0 (#145)Wei-Ning Huang2019-06-125-57/+153
|
* core: vm: add totalSupply and totalStaked in the governance contract (#144)Wei-Ning Huang2019-06-124-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-06-122-1053/+1074
|
* core: vm: emit events for more governance actions (#142)Wei-Ning Huang2019-06-121-0/+145
|
* core: update testnet genesis_allocJimmy Hu2019-06-121-1/+1
|
* core: update taipei network genesis allocWei-Ning Huang2019-06-121-1/+1
|
* core: fix corner case when initializing round height (#134)Sonic2019-06-121-1/+1
|
* app: implement logic for prepare/verify correctly when chain number change ↵bojie2019-06-125-19/+122
| | | | (#118)
* core: vm: implement byzantine reporting mechanism (#128)Wei-Ning Huang2019-06-122-48/+578
|
* params: update taipei genesis config (#130)Wei-Ning Huang2019-06-121-1/+1
|
* core, indexer, dex: fix DexconApp block deliver after synced (#122)Sonic2019-06-121-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-06-121-0/+45
| | | | Let roundHeightMap be corret whenever we starting a bp node.
* core: update taipei testnet genesis config and alloc (#119)Wei-Ning Huang2019-06-121-1/+1
|
* core: vm: add missing unittests for nodes/delegators (#116)Wei-Ning Huang2019-06-122-3/+13
|
* params: update taipei testnet genesis and config (#113)Wei-Ning Huang2019-06-122-3/+5
|
* core/vm: Add fine to governance. (#107)Jimmy Hu2019-06-122-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 Yang2019-06-122-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 Liao2019-06-121-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 Hu2019-06-122-21/+33
| | | | | | * core/types: SigCache with a limited size * minor tweaks
* core, dex, internal: block proposer syncing (first iteration) (#96)Sonic2019-06-122-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 Hu2019-06-122-0/+174
| | | | | | * core/vm: Add DKGMPKReady * param: update GenesisHash * vendor: sync to latest core
* core/vm: fix nodes method in governanceJimmy Hu2019-06-121-1/+1
|
* dex: remove duplicate declaration of WitnessData (#92)Wei-Ning Huang2019-06-122-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 Huang2019-06-123-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 Hu2019-06-121-1/+1
|
* vendor: sync to latest core (#91)Mission Liao2019-06-123-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)bojie2019-06-121-2/+1
|
* core: governance interface should return correct DKG master public keys (#85)Wei-Ning Huang2019-06-122-24/+21
|
* core, dex: polish sync (#75)Sonic2019-06-121-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 Hu2019-06-122-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)bojie2019-06-123-13/+268
|
* dex: verify header that imported from fetcher (#68)Sonic2019-06-121-0/+4
|
* Fix lintWei-Ning Huang2019-06-122-3/+3
|
* core: Update genesis alloc. (#63)Jimmy Hu2019-06-121-1/+1
|
* core: panic if fork found when inserting header chain (#61)Wei-Ning Huang2019-06-121-1/+6
|
* tests: fix testsWei-Ning Huang2019-06-121-1/+10
|
* dex: fix testsWei-Ning Huang2019-06-121-0/+2
|
* core: fix testsWei-Ning Huang2019-06-122-4/+5
|
* core: vm: fix power2 table calculation (#50)Wei-Ning Huang2019-06-121-3/+3
|
* core: commit states at snapshot height (#49)Sonic2019-06-121-2/+7
|
* core: add Taipei testnet (#47)Wei-Ning Huang2019-06-121-1/+13
| | | | Add a new testnet named Taipei.
* core: various changes on tps tuning (#46)Wei-Ning Huang2019-06-125-11/+14
|
* core: increase tx pool sizeWei-Ning Huang2019-06-121-4/+4
|
* core, dex, downloader: refactor governanceSonic2019-06-122-25/+61
|
* core, dex, dex/downloader: restore insertChain to upstream versionSonic2019-06-122-20/+18
| | | | | Also rename InsertChain2, insertChain2, InsertHeaderChain2, ValidateHeaderChain2
* dex: implement downloader for dexSonic2019-06-121-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 logicSonic2019-06-123-0/+521
|
* core: support extracting governance state from state trieSonic2019-06-123-0/+73
|
* core: add global signature cache and improve concurrency (#42)Wei-Ning Huang2019-06-124-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 Hu2019-06-121-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)Sonic2019-06-122-0/+58
|
* core: vm: change offset type to int256Wei-Ning Huang2019-06-121-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 Huang2019-06-124-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 Huang2019-06-121-4/+7
|
* core: more fix on light node synchronization (#32)Wei-Ning Huang2019-06-123-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 Huang2019-06-122-1/+42
|
* core: fix light node synchronization issue (#30)Wei-Ning Huang2019-06-124-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 Huang2019-06-122-10/+10
|
* app: add cache to reuse same tx address which has already recovered (#26)BJ42019-06-123-3/+41
|
* core: refactor validator and fix light node sync (#25)Wei-Ning Huang2019-06-128-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)Sonic2019-06-121-9/+6
| | | No need to store round 0, it's already pushed in genesis block
* dex, core: Fix make fail (#24)Jimmy Hu2019-06-121-1/+1
|
* core, dex: Optimize sender calculation in block transactions. (#22)Jimmy Hu2019-06-122-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 Huang2019-06-124-32/+63
| | | | | * vendor: sync consensus core * core: validate DKG set with correct nodeset in round-2
* core: vm: Optimize evm (#13)Jimmy Hu2019-06-125-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)Sonic2019-06-122-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 Huang2019-06-121-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 Huang2019-06-121-3/+3
|
* core: fix staked calculation in genesis (#8)Jimmy Hu2019-06-121-4/+0
|
* core: vm: expose governance contract ABI (#5)Wei-Ning Huang2019-06-121-2/+2
|
* core: blockchain: fix NewBlockChainWithDexonValidator (#4)Wei-Ning Huang2019-06-121-1/+1
|
* core: genesis: make ToBlock() compatible with legacy ethereum code (#3)Wei-Ning Huang2019-06-121-28/+36
| | | | Make ToBlock() compatible with legacy ethereum code so we can run tests normally.
* app: fix core testBJ42019-06-127-37/+144
|
* core: vm: governance: add node infoWei-Ning Huang2019-06-126-10/+149
|
* core: validate roundHeight mapping in governance contractWei-Ning Huang2019-06-125-4/+43
|
* core: GenerateChainWithRoundChange for testingSonic2019-06-123-0/+598
|
* app: lock by chain correctly and remove old core in vendorBJ42019-06-121-46/+49
|
* core: vm: governance: remove maxIntervalWei-Ning Huang2019-06-121-32/+0
|
* core: vm: add nodesLengh method for reading nodeSet sizeWei-Ning Huang2019-06-121-0/+20
|
* Rename import due to dexon-consensus renameWei-Ning Huang2019-06-123-18/+18
|
* dex: minor refactorWei-Ning Huang2019-06-121-6/+5
|
* app: add lock to prevent concurrent map read writeBojie Wu2019-06-121-0/+3
|
* core: tx_pool: remove transactions on BlockConfirmed eventWei-Ning Huang2019-06-124-41/+53
|
* dex: add block gas limit into governanceWei-Ning Huang2019-06-121-0/+35
|
* app: using lock correctly to use map safelyBojie Wu2019-06-121-56/+86
|
* app: fix concurrent map read write issue and accept fail transaction when ↵Bojie Wu2019-06-121-1/+7
| | | | round change
* core: fix blockReward serializationWei-Ning Huang2019-06-122-37/+28
|
* app: add cache mechanism to increase performanceBojie Wu2019-06-123-152/+136
|
* core: set correct balance for governance contractWei-Ning Huang2019-06-122-1/+7
|
* dex: return round in get block rpc outputWei-Ning Huang2019-06-122-4/+5
|
* app: fix concurrent read write issue with mapBojie Wu2019-06-121-0/+6
|
* dex: remove uneeded info from block headerWei-Ning Huang2019-06-123-90/+87
|
* core: types: fix header marshal jsonSonic2019-06-122-34/+72
|
* vendor: sync consensus core and fix conflictWei-Ning Huang2019-06-121-7/+8
|
* app: correct process pending block logicBojie Wu2019-06-121-126/+111
|
* dex: fix missing randomness assignmentWei-Ning Huang2019-06-121-1/+1
|
* dex: fix DKG round switchingWei-Ning Huang2019-06-121-6/+18
|
* dex: fix round switching and initialize dMoment correctlyWei-Ning Huang2019-06-121-1/+2
|
* dex: misc fixesWei-Ning Huang2019-06-121-3/+3
|
* app: check nonce and balance in prepare payloadBojie Wu2019-06-122-5/+3
|
* core: included Dexcon metadata in blockWei-Ning Huang2019-06-121-2/+3
|
* Remove reference of Rinkeby and Goerli network.Wei-Ning Huang2019-06-122-26/+1
| | | | We do not need ethereum Rinkeby and Goerli network in our system, remove it.
* core: populate genesisAlloc in source code with DEXON genesis dataWei-Ning Huang2019-06-123-15/+46
|
* dex: use RLP to encode contract payload dataWei-Ning Huang2019-06-121-6/+6
|
* app: implement verify block logicBojie Wu2019-06-122-1/+51
|
* consensus: dexcon: fetch config from stateWei-Ning Huang2019-06-121-19/+22
|
* core: vm: add blockReward to governanceWei-Ning Huang2019-06-122-4/+39
|
* dex: fix public key parsing due to changes in consensus coreWei-Ning Huang2019-06-121-1/+4
|
* core: set governance owner in genesisWei-Ning Huang2019-06-121-1/+3
|
* params: load blockReward from genesis JSON fileWei-Ning Huang2019-06-121-0/+1
|
* app: fixup message formatWei-Ning Huang2019-06-121-3/+3
|
* app: implement new insert blocks logicBojie Wu2019-06-123-18/+246
|
* test: create account storage for governance contractWei-Ning Huang2019-06-121-1/+1
|
* core/dex: fix governance contract implementationWei-Ning Huang2019-06-121-19/+13
|
* core: vm: implement RAND opcode supportWei-Ning Huang2019-06-129-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 Huang2019-06-122-2/+3
|
* app: correct dexon application logicBojie Wu2019-06-122-48/+37
|
* core: fix nil map initializationWei-Ning Huang2019-06-121-0/+7
|
* app: init mapBojie Wu2019-06-121-15/+17
|
* core: setup stake in order so genesis block is deterministicWei-Ning Huang2019-06-121-1/+26
|
* core: vm: modify dkg thresholdJimmy Hu2019-06-121-1/+1
|
* core: vm: add GovernanceStateHelper testWei-Ning Huang2019-06-122-0/+98
|
* core: populate genesis CRS in genesis stateWei-Ning Huang2019-06-121-0/+5
|
* dex: bug fix to allow running geth without crashingWei-Ning Huang2019-06-122-9/+1
|
* dex: implement sendTx related governance methodsWei-Ning Huang2019-06-121-0/+5
|
* core: vm: validate if mpk, complaint, finalize is in DKG setWei-Ning Huang2019-06-121-36/+62
|
* core: vm: allow other people to stake for a nodeWei-Ning Huang2019-06-121-6/+0
|
* dex: implement some governance interface functionsWei-Ning Huang2019-06-121-213/+342
|
* dex: governance: implement governance interfaceWei-Ning Huang2019-06-122-11/+23
|
* app: implement new interface methodBojie Wu2019-06-121-0/+56
|
* core: populate dexon configuration in SetupGenesisBlockWei-Ning Huang2019-06-122-31/+28
|
* dex: implement dexon application interfaceBojie Wu2019-06-121-0/+4
|
* core: add stake and public key to genesis account infoWei-Ning Huang2019-06-124-46/+95
|
* core: vm: check pk ownership in stake()Wei-Ning Huang2019-06-121-1/+12
|
* core: vm: expose nodes as publicWei-Ning Huang2019-06-121-14/+52
|
* core: vm: add eventlog for governance contractWei-Ning Huang2019-06-121-41/+98
|
* core: vm: refactor and add DKGFinalizeds related implementationsWei-Ning Huang2019-06-121-94/+300
|
* dex: redesign p2p network topologySonic2019-06-121-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 Huang2019-06-121-132/+275
|
* core: vm: check if caller already staked when adding dkg mpkJimmy Hu2019-06-121-0/+7
|
* core: vm: fix bug and add gas usageWei-Ning Huang2019-06-122-22/+55
|
* core: vm: finish implementing state helperWei-Ning Huang2019-06-121-23/+206
|
* core: vm: update governance contract ABIWei-Ning Huang2019-06-121-9/+75
|
* core: vm: implement governance contract methodsWei-Ning Huang2019-06-121-51/+218
|
* core: vm: add governance contract skeletonWei-Ning Huang2019-06-122-0/+495
|
* Change import go github.com/dexon-foundation/dexonWei-Ning Huang2019-06-1295-333/+333
|
* 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
| |