aboutsummaryrefslogtreecommitdiffstats
path: root/dex
Commit message (Collapse)AuthorAgeFilesLines
* vendor: sync to latest core and fix conflictJimmy Hu2019-01-141-0/+9
|
* dex: fix cache error (#126)Jimmy Hu2019-01-141-0/+1
|
* core, indexer, dex: fix DexconApp block deliver after synced (#122)Sonic2019-01-141-9/+9
| | | | | | | 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.
* indexer: support data exporting/forwarding (#103)Meng-Ying Yang2018-12-282-0/+19
| | | | | | | | | To support more effective and flexible blockchain info exploring, we add `indexer` package, defines the flow of indexer dameon, and integrate into dex.Dexon fullnode. For more export options, we use Golang built-in `plugin` package to support mulitple implementations.
* dex/downloader: fix bug when syncing (#106)Sonic2018-12-281-2/+13
| | | | | Since blocks will interleave around round change, we will probably need to verify blocks at previous round.
* dex: add pull randomness (#105)Jimmy Hu2018-12-286-14/+203
| | | | | * vendor: sync to latest core * dex: Add PullRandomness
* core, dex, internal: block proposer syncing (first iteration) (#96)Sonic2018-12-215-24/+247
| | | | | | | | | | | | | | | | | | | | | | * 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-211-0/+40
| | | | | | * core/vm: Add DKGMPKReady * param: update GenesisHash * vendor: sync to latest core
* dex: remove duplicate declaration of WitnessData (#92)Wei-Ning Huang2018-12-192-14/+3
| | | | Remove duplicate declaration of WitnessData and remove the TxHash field in witness data since it does not need to be witnessed.
* dex: stop consensus core (#93)Jimmy Hu2018-12-191-0/+1
|
* vendor: sync to latest core (#91)Mission Liao2018-12-193-15/+51
| | | | | | - Implement new methods in db to cache DKG private key. - Implement new methods in db to cache compaction chain tip.
* vendor: sync to latest core and fix conflictJimmy Hu2018-12-193-20/+37
|
* dex, cmd: Add DMoment to command line (#87)Jimmy Hu2018-12-192-6/+5
|
* app: remove unnecessary code (#86)bojie2018-12-192-15/+3
|
* dex: Pull blocks from blockdb if cache miss (#84)Jimmy Hu2018-12-193-4/+40
|
* vendor: sync to latest core and fix conflict (#79)Jimmy Hu2018-12-191-2/+1
|
* app: return retry later instead of retry with sleep time (#78)bojie2018-12-191-31/+22
|
* core, dex: polish sync (#75)Sonic2018-12-196-8/+79
| | | | | | | | | | | | | | | - 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.
* app: misc fixes (#76)bojie2018-12-191-50/+30
| | | | Use sync map to prevent concurrent read write. Use last pending state to prepare/verify transactions.
* dex: replace total difficulty with block number (#73)Sonic2018-12-1910-177/+143
| | | | | | | In dexon, we don't "mine" and the blockchain won't and shouldn't fork, so there is no difficulty concept, just replace it with block number. Note: this commit only replace total difficulty related logic and code in dex, dex/downloader package.
* core, dex: Timeout for prepare payload (#72)Jimmy Hu2018-12-191-0/+55
| | | | | | * Timeout on prepare payload * Leave 2 CPU for others * Add hardLimit and softLimit to PreparePayload
* dex: use whole id to query peer info (#74)Sonic2018-12-191-1/+1
|
* app: add app test case and benchmark (#66)bojie2018-12-193-19/+723
|
* dex: verify header that imported from fetcher (#68)Sonic2018-12-191-1/+1
|
* Fix lintWei-Ning Huang2018-12-1910-109/+111
|
* dex: add metrics (#54)Sonic2018-12-191-32/+84
|
* dex/downloader: fix testsSonic2018-12-192-242/+114
|
* dex: fix testsWei-Ning Huang2018-12-194-43/+93
|
* core: fix testsWei-Ning Huang2018-12-192-8/+2
|
* core: various changes on tps tuning (#46)Wei-Ning Huang2018-12-192-7/+4
|
* app: skip tx which has been confirmed (#45)bojie2018-12-191-9/+8
| | | | | | * app: skip tx which has been confirmed * fixup! app: skip tx which has been confirmed
* api: allow sending batch of raw transactionsWei-Ning Huang2018-12-191-0/+4
|
* core, dex, downloader: refactor governanceSonic2018-12-194-221/+48
|
* core, dex, dex/downloader: restore insertChain to upstream versionSonic2018-12-192-7/+7
| | | | | Also rename InsertChain2, insertChain2, InsertHeaderChain2, ValidateHeaderChain2
* dex: implement downloader for dexSonic2018-12-1911-88/+499
| | | | | | | | | | | 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.
* dex: use dex/downloader in dexSonic2018-12-198-19/+19
| | | | | To compatible with ethereum code base, make Downloader a interface in internal/ethapi
* dex: copy fetcher and downloader from ethSonic2018-12-1915-0/+7440
|
* core: add global signature cache and improve concurrency (#42)Wei-Ning Huang2018-12-192-2/+2
| | | | | 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-0/+1
| | | | | | | * dex: Add a tx queue in broadcast * Modify queue parameter * Priority select all messages except tx * Batch process TouchSenders
* dex: Tx message optimization (#39)Jimmy Hu2018-12-192-7/+42
| | | | | | | | * dex: Add a tx queue in broadcast * Modify queue parameter * Priority select all messages except tx
* dex: add BlockDB, which implements consensus core's blockdb.BlockDatabase (#36)Sonic2018-12-192-11/+56
|
* governance: implement delegate/undelegate function and add tests (#33)Wei-Ning Huang2018-12-192-4/+4
| | | | | Implement delegate/undelegate function to allow others to delegate it's fund to stake on a node. Also added governance contract tests.
* core: more fix on light node synchronization (#32)Wei-Ning Huang2018-12-192-8/+7
| | | | | | Fix gas calculation in governance contract. Correctly register round height when processing pending blocks. We should register the mapping when we get the pending block instead of waiting for block confirmation.
* core: fix light node synchronization issue (#30)Wei-Ning Huang2018-12-192-0/+5
| | | | | InsertChain() need to record the correct roundHeight mapping in order to process snapshotRoundHeight() governance method correctly.
* app: remove notify to prevent dead lock with consensus coreBJ42018-12-191-39/+3
|
* app: add cache to reuse same tx address which has already recovered (#26)BJ42018-12-191-9/+2
|
* core: refactor validator and fix light node sync (#25)Wei-Ning Huang2018-12-193-49/+79
| | | | | | | 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.
* dex: remove gasprice package and use eth/gasprice insteadWei-Ning Huang2018-12-194-192/+3
| | | | We did not change anything in eth/gasprice, don't copy it into dex.
* dex, core: Fix make fail (#24)Jimmy Hu2018-12-191-1/+1
|
* core, dex: Optimize sender calculation in block transactions. (#22)Jimmy Hu2018-12-191-0/+6
| | | | | | * 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-191-4/+2
| | | | | * vendor: sync consensus core * core: validate DKG set with correct nodeset in round-2
* dex: return correct pending nonce (#14)Wei-Ning Huang2018-12-192-4/+5
| | | | We need to return the correct pending nonce (include those in the tx pool). Also, StateAndHeaderByNumber is also fixed to use pending block.
* dex: porting test to enode (#9)Sonic2018-12-194-112/+132
|
* app: bug fix (#7)bojie2018-12-191-0/+7
| | | | Add notify mutex to prevent missing chain issue while concurrent appending with same slice.
* app: fix core testBJ42018-12-191-1/+2
|
* dex: remove useless codeSonic2018-12-191-115/+0
|
* dex: peer: more fix on ID conversionWei-Ning Huang2018-12-191-53/+53
|
* dex: fix conflict caused by rebaseWei-Ning Huang2018-12-194-59/+79
|
* HACK: enable TX handling temporarilyWei-Ning Huang2018-12-191-0/+3
|
* dex: increase governance tx gas priceWei-Ning Huang2018-12-191-0/+4
|
* core: validate roundHeight mapping in governance contractWei-Ning Huang2018-12-191-0/+7
|
* dex: proofread and fix bugsWei-Ning Huang2018-12-191-161/+145
|
* test: disable standalone RPC server as BroadcastBlock currently cause forkingWei-Ning Huang2018-12-191-3/+1
|
* test: start a separate RPC node for testing block syncWei-Ning Huang2018-12-192-10/+5
|
* app: add back mutex to prevent concurrent map read writeBJ42018-12-191-1/+9
|
* dex: remove finalization information in block cacheJimmy Hu2018-12-191-0/+2
|
* app: lock by chain correctly and remove old core in vendorBJ42018-12-191-24/+12
|
* core: vm: governance: remove maxIntervalWei-Ning Huang2018-12-191-1/+0
|
* Rename import due to dexon-consensus renameWei-Ning Huang2018-12-1910-68/+68
|
* dex: implement PullBlocks/PullVotes (#1)Jimmy Hu2018-12-196-2/+415
|
* dex: minor refactorWei-Ning Huang2018-12-191-12/+18
|
* dex: set blocktime to millisecond timestampWei-Ning Huang2018-12-191-1/+1
|
* dex: increase TX queue sizeWei-Ning Huang2018-12-191-1/+1
|
* core: tx_pool: remove transactions on BlockConfirmed eventWei-Ning Huang2018-12-191-1/+2
|
* vendor: sync consensus core and fix conflicJimmy Hu2018-12-191-0/+21
|
* dex: add block gas limit into governanceWei-Ning Huang2018-12-192-11/+4
|
* app: refactor prepare logicBojie Wu2018-12-191-11/+17
|
* app: using lock correctly to use map safelyBojie Wu2018-12-191-63/+77
|
* app: fix nil pointer issueBojie Wu2018-12-191-4/+6
|
* vendor: sync consensus core and fix conflictWei-Ning Huang2018-12-191-0/+5
|
* app: add cache mechanism to increase performanceBojie Wu2018-12-191-103/+63
|
* app: add mutex to prevent concurrent read write mapBojie Wu2018-12-191-0/+3
|
* dex: update default network IDWei-Ning Huang2018-12-191-1/+1
|
* dex: fix types changes in consensus coreSonic2018-12-191-10/+9
|
* dex: remove uneeded info from block headerWei-Ning Huang2018-12-191-15/+5
|
* vendor: sync consensus core and fix conflictWei-Ning Huang2018-12-195-27/+30
|
* app: fix bug when prepare transactionBojie Wu2018-12-191-2/+7
|
* dex: fix testSonic2018-12-191-1/+1
|
* app: correct process pending block logicBojie Wu2018-12-191-29/+38
|
* dex: fix missing randomness assignmentWei-Ning Huang2018-12-191-1/+2
|
* dex: fix DKG round switchingWei-Ning Huang2018-12-191-3/+3
|
* dex: prevent broadcasting agreement and randomness indefinitelyWei-Ning Huang2018-12-191-2/+6
|
* dex: fix round switching and initialize dMoment correctlyWei-Ning Huang2018-12-191-1/+8
|
* dex: misc fixesWei-Ning Huang2018-12-192-8/+17
|
* app: check nonce and balance in prepare payloadBojie Wu2018-12-191-20/+111
|
* geth: add propose flag to enable/disable proposingSonic2018-12-191-0/+7
|
* core: included Dexcon metadata in blockWei-Ning Huang2018-12-191-5/+11
|
* dex: no need to rlp encode/decode now, consensus supports itSonic2018-12-194-41/+31
|
* dex: use RLP to encode contract payload dataWei-Ning Huang2018-12-191-6/+6
|
* dex: fix public key conversionWei-Ning Huang2018-12-191-6/+2
|
* dex: fix DKGMasterPublicKey and DKGComplaints unmarshalWei-Ning Huang2018-12-191-3/+2
|
* dex: pass logger object to consensus coreWei-Ning Huang2018-12-191-1/+1
|
* app: implement verify block logicBojie Wu2018-12-191-22/+195
|
* consensus: dexcon: fetch config from stateWei-Ning Huang2018-12-194-7/+15
|
* dex: fix public key parsing due to changes in consensus coreWei-Ning Huang2018-12-191-12/+8
|
* app: fixup message formatWei-Ning Huang2018-12-191-8/+8
|
* app: implement new insert blocks logicBojie Wu2018-12-191-147/+66
|
* core/dex: fix governance contract implementationWei-Ning Huang2018-12-191-8/+8
|
* dex: add initial block to RunJimmy Hu2018-12-191-1/+3
|
* dex: polish network related functionSonic2018-12-194-103/+211
|
* dex: let notary nodes connect to some dkg nodesSonic2018-12-194-185/+204
| | | | BuildConnection builds notary and dkg connections together
* dex/core: misc bug fixesWei-Ning Huang2018-12-193-2/+10
|
* dex: register ethereum APIsWei-Ning Huang2018-12-193-1/+1036
|
* dex: implement peerSetLoopSonic2018-12-196-11/+74
|
* app: fix log messageBojie Wu2018-12-191-8/+8
|
* hack: temp fix for running testsWei-Ning Huang2018-12-192-8/+5
|
* app: correct dexon application logicBojie Wu2018-12-191-81/+51
|
* core: fix nil map initializationWei-Ning Huang2018-12-191-1/+2
|
* dex: gov: using dex-consensus-core NodeSetCacheSonic2018-12-195-64/+71
|
* dex: add subprotocolsSonic2018-12-191-1/+1
|
* dex: run consensus core on StartWei-Ning Huang2018-12-191-0/+1
|
* app: add default block rewardBojie Wu2018-12-191-1/+1
|
* dex: set tmp dMoment for testingWei-Ning Huang2018-12-191-1/+2
|
* dex: fix flaky testSonic2018-12-191-0/+12
|
* dex: add self node meta after StartSonic2018-12-194-6/+47
|
* dex: add method to get NumChains, NotarySet, DKGSet easilySonic2018-12-196-43/+80
|
* dex: move dexcon blockdb into datadirWei-Ning Huang2018-12-191-1/+3
|
* dex: interface updateWei-Ning Huang2018-12-191-1/+3
|
* app: pass chain config instead of nilBojie Wu2018-12-191-3/+6
|
* dex: network: implement the network interfaceSonic2018-12-199-58/+1024
|
* dex: bug fix to allow running geth without crashingWei-Ning Huang2018-12-193-45/+51
|
* dex: implement sendTx related governance methodsWei-Ning Huang2018-12-192-6/+128
|
* dex: pass p2p nodeKey to Dexon instanceWei-Ning Huang2018-12-193-13/+20
|
* app: modify for new interface methodBojie Wu2018-12-191-19/+33
|
* dex: implement some governance interface functionsWei-Ning Huang2018-12-194-22/+98
|
* dex: governance: implement governance interfaceWei-Ning Huang2018-12-193-16/+38
|
* app: implement new interface methodBojie Wu2018-12-191-27/+104
|
* dex: add api_backend.go and it's dependenciesWei-Ning Huang2018-12-194-2/+557
|
* dex: update application interfaceWei-Ning Huang2018-12-191-20/+27
|
* app: correct validation logicBojie Wu2018-12-191-4/+10
|
* dex: implement dexon application interfaceBojie Wu2018-12-193-17/+285
|
* dex: remove DAO related codeSonic2018-12-192-62/+2
|
* core: vm: refactor and add DKGFinalizeds related implementationsWei-Ning Huang2018-12-192-4/+13
|
* dex: redesign p2p network topologySonic2018-12-1912-449/+1825
| | | | | | | | | | - 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-193-4/+16
|
* core: vm: add governance contract skeletonWei-Ning Huang2018-12-191-7/+7
|
* dex: update consensus core interfaceWei-Ning Huang2018-12-194-36/+38
|
* Change import go github.com/dexon-foundation/dexonWei-Ning Huang2018-12-1911-66/+66
|
* Use dex.Config instead of eth.ConfigWei-Ning Huang2018-12-194-72/+18
|
* dex: implement notary node info propagation and management mechanismSonic2018-12-193-16/+183
|
* dex: implement notarySet for keeping notary set infoSonic2018-12-191-0/+203
|
* dex: introduce dex64 and remove eth62, eth63Sonic2018-12-193-18/+37
|
* dex: let peer able to send notary node infoSonic2018-12-191-3/+41
|
* dex: let peerSet able to manage notary peersSonic2018-12-191-1/+64
|
* dex: fix use of internal package not allowedSonic2018-12-191-1/+1
|
* Change package name from eth to dexSonic2018-12-198-8/+8
|
* Copy codebase from ethSonic2018-12-198-0/+2407
|
* dex: update interface and use static bls libWei-Ning Huang2018-12-191-0/+5
|
* dex: make geth buildable and update interface skeletonWei-Ning Huang2018-12-194-5/+177
|
* Add udpated governance interface and app interfaceWei-Ning Huang2018-12-192-2/+34
|
* Add dex packageWei-Ning Huang2018-12-192-0/+80