Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | dex: add pullblock rate limit (#363) | Jimmy Hu | 2019-06-15 | 1 | -8/+20 |
| | |||||
* | core: implement DKG success (#362) | Jimmy Hu | 2019-06-15 | 1 | -0/+14 |
| | | | | | | | | * vendor: sync to latest core * core: implmenet dkg success * cmd: govtool: add DKGSuccess | ||||
* | dex: implement bad peer detect and disconnect mechanism (#360) | Wei-Ning Huang | 2019-06-15 | 3 | -13/+55 |
| | |||||
* | dex: update recovery contract ABI (#357) | Wei-Ning Huang | 2019-06-15 | 1 | -54/+0 |
| | |||||
* | core: add reset to dkg private key db (#355) | Jimmy Hu | 2019-06-15 | 1 | -13/+10 |
| | | | | | * vendor: sync to latest core * core: dkg private key db | ||||
* | dex: remove time alignment when force sync (#349) | Jimmy Hu | 2019-06-15 | 1 | -16/+1 |
| | | | | | | * vendor: sync to latest core * dex: remove time alignment when force sync | ||||
* | dex: reduce agreement result (#348) | Jimmy Hu | 2019-06-15 | 1 | -0/+1 |
| | |||||
* | dex: remove RandomnessMsg (#342) | Sonic | 2019-06-15 | 1 | -5/+4 |
| | |||||
* | core: update mainnet and testnet config and genesis alloc (#337) | Wei-Ning Huang | 2019-06-15 | 1 | -1/+2 |
| | |||||
* | core: vm: cache GPK to prevent DoS (#335) | Wei-Ning Huang | 2019-06-15 | 1 | -16/+16 |
| | | | | Cache GPK so one can not slow the chain down with the ProposeCRS method call. | ||||
* | vendor: sync to latest core | Wei-Ning Huang | 2019-06-15 | 1 | -3/+4 |
| | |||||
* | dex: remove node table (#330) | Sonic | 2019-06-15 | 8 | -542/+29 |
| | | | | | | * dex: remove node table Node table is not so useful, go back to rely on kademlia * p2p: fix direct dial still have resolve delay | ||||
* | dex: get synced consensus before sleep (#331) | Jimmy Hu | 2019-06-15 | 1 | -3/+5 |
| | |||||
* | dex: try to reduce the chance to pull non-finalized blocks (#327) | Mission Liao | 2019-06-15 | 5 | -57/+156 |
| | | | | | | | | | | | | | | | | * Send non-finalized blocks to notary set only * Update randomness field for blocks in cache upon receiving agreement result * Filter AgreementResult by its position * Avoid overwriting finalized blocks with non-finalized ones * Add blocks to finalized cache when pulling * Update to finalized cache when we have corresponding element in non-finalized one. | ||||
* | p2p, p2p/discover: more aggressive dial strategy for direct dial (#326) | Sonic | 2019-06-15 | 1 | -1/+1 |
| | | | | | * p2p/discover: bump failure counter only if no nodes were provided * p2p: more aggressive dial strategy for direct dial | ||||
* | dexcon: correctly fine DKGSet for not producing blocks (#325) | Wei-Ning Huang | 2019-06-15 | 2 | -2/+2 |
| | |||||
* | vendor: sync to latest core (#320) | Jimmy Hu | 2019-06-15 | 7 | -69/+47 |
| | | | | | | | | * vendor: sync to latest core * dex, core: fix conflict x | ||||
* | dex: fix a panic (#317) | Jimmy Hu | 2019-06-15 | 1 | -1/+1 |
| | |||||
* | core: fix forget connection in resetDKG (#314) | Jimmy Hu | 2019-06-15 | 2 | -1/+12 |
| | |||||
* | dex: fix initial build connection bug (#311) | Jimmy Hu | 2019-06-15 | 2 | -4/+7 |
| | |||||
* | dex: rebuild connection if dkg reset, core/vm: fix gov (#308) | Jimmy Hu | 2019-06-15 | 3 | -2/+21 |
| | | | | | * dex: rebuild connection if dkg reset * core: vm: fix governance contract | ||||
* | core: merge notarySet and DKGSet (#265) | Jimmy Hu | 2019-06-15 | 8 | -396/+248 |
| | | | | | | | | * vendor: sync to latest core * core: merge notarySet and dkgSet * dex: optimize network traffic for finalized block | ||||
* | backport from v1.8.23 (#304) | Sonic | 2019-06-13 | 12 | -87/+433 |
| | | | | | | | | | | | | | | | | | | * dex: backport f6193ad * dex/downloader: backport accc0fa accc0fab 174083c3 * dex: backport 434dd5b * dex: backport 42a914a 0983d02 * dex: backport 48b70ec 31b3334 and some modification * dex/downloader: backport 5f251a6 * dex/downloader: backport 81c3dc7 * dex, dex/downloader: fix typos | ||||
* | dex: do not propose skip block if not in notary set (#303) | Wei-Ning Huang | 2019-06-13 | 1 | -0/+10 |
| | |||||
* | dex: fix missing trie node when fast syncing (#301) | Sonic | 2019-06-13 | 2 | -2/+4 |
| | | | | | | * dex: don't panic when we don't have gov state peer requested * dex: use correct head block Since we are fast syncing, we probably don't have body, receipt, state | ||||
* | dex: fix deadlock (#299) | Sonic | 2019-06-13 | 1 | -1/+1 |
| | |||||
* | dex: skip duplicate vote to reduce gas used (#293) | Wei-Ning Huang | 2019-06-13 | 1 | -27/+45 |
| | |||||
* | dex: fix fast sync in BP mode (#291) | Wei-Ning Huang | 2019-06-13 | 4 | -44/+78 |
| | | | | Start blockproposer only after fast sync is completed (received ChainHead event), so watchcat is not falsely triggered. | ||||
* | dex: reduce msg when broadcast tx (#292) | Sonic | 2019-06-13 | 2 | -19/+51 |
| | | | | | | | | | | Our network topology is different from ethereum, the nodes in notary set will connect each other directly. So there is a waste for flooding tx msgs in notary set. And nodes in notary set are more likely to propose block successfully, it is not useful to broadcast tx msgs to non notary set nodes. This PR will increase some tx confirm latency, but can reduce waste tx msgs a lot. | ||||
* | core/vm: remove round from addDKG functions (#279) | Jimmy Hu | 2019-06-13 | 3 | -20/+20 |
| | | | | | | | | * vendor: sync to latest core * core/vm: remove addDKG functions * core: fix conflict | ||||
* | dex: recieve bp msg when recovery, use atomic to protect the flag (#286) | Sonic | 2019-06-13 | 2 | -17/+19 |
| | |||||
* | dex: ignore acceptableDist when force synchronise (#285) | Sonic | 2019-06-13 | 3 | -5/+23 |
| | |||||
* | consensus: dexcon: disqualify dead node (#280) | Wei-Ning Huang | 2019-06-13 | 4 | -103/+14 |
| | | | | | | | | | | Since a qualified node might fail stopped, we need to remove them from qualified nodes to maintain network integrity. We do this by inspect the previous round to see if there are dead nodes. A dead node is a notary set node that does not propose any block in the previous round. We disqualify them by fining them so their staked value is 1 wei below minStake. This make them unqualified for being notary set in the follow on rounds. | ||||
* | dex: fix start bp node with empty datadir (#278) | Sonic | 2019-06-13 | 2 | -22/+31 |
| | | | also modify some debug log | ||||
* | dex: add block confirme latency (#275) | Jimmy Hu | 2019-06-13 | 2 | -0/+3 |
| | |||||
* | dex: do not start watchcat when blockchain is empty (#273) | Wei-Ning Huang | 2019-06-12 | 1 | -4/+8 |
| | |||||
* | core: vm: add extra checks to prevent DKG spamming (#272) | Wei-Ning Huang | 2019-06-12 | 1 | -1/+6 |
| | | | | Add two maps to check the uniqueness of DKGMasterPublicKey and DKGComplaints to prevent malicious actors from spamming it. | ||||
* | app: validate gas price while preparing block (#274) | bojie | 2019-06-12 | 2 | -34/+126 |
| | | | | Skip tx which is under price and add test case. Use the key which has balance in test case to run test more correctly. | ||||
* | dex: align recovery dMoment when resuming consensus (#271) | Wei-Ning Huang | 2019-06-12 | 1 | -1/+16 |
| | | | | | | In theory BA should tolerant inconsistant start time between every node. Since the vote cache is limited, we can not keep all the votes and pass them around all nodes. To fix this, we align the next recovery dmoment so nodes start at the same time. | ||||
* | p2p, dex: add debug log (#269) | Sonic | 2019-06-12 | 3 | -18/+63 |
| | |||||
* | dex: properly shutdown protocol stack (#267) | Wei-Ning Huang | 2019-06-12 | 3 | -6/+12 |
| | |||||
* | dex: properly start and stop the block proposer module (#264) | Wei-Ning Huang | 2019-06-12 | 3 | -16/+11 |
| | | | | Stop blockproposer in the Stop() method of node service so the process doens't hang. | ||||
* | core: fill in genesis timstamp and remove dMoment from protocol handshake (#263) | Wei-Ning Huang | 2019-06-12 | 6 | -29/+13 |
| | | | | | | Fill in dmoment as genesis block timestamp. This allow us to remove dMoment check from protocol handshake since genesis block hash itself will protect us against different dMoment. | ||||
* | dex: implement recovery mechanism (#258) | Wei-Ning Huang | 2019-06-12 | 6 | -5/+576 |
| | | | | | | | | | * dex: implement recovery mechanism The DEXON recovery protocol allows us to use the Ethereum blockchain as a fallback consensus chain to coordinate recovery. * fix | ||||
* | app: remove log handler in test (#261) | bojie | 2019-06-12 | 1 | -3/+0 |
| | |||||
* | dex: add meter for agreement result (#260) | Wei-Ning Huang | 2019-06-12 | 1 | -12/+14 |
| | |||||
* | dex: rename lattice to core | Wei-Ning Huang | 2019-06-12 | 7 | -43/+43 |
| | |||||
* | app: set delivered height correctly (#259) | bojie | 2019-06-12 | 1 | -0/+1 |
| | |||||
* | dex: priority for ba vote (#256) | Jimmy Hu | 2019-06-12 | 1 | -0/+17 |
| | | | | | | | | * dex: priority select on vote * More aggressive priority for vote * collect all queuedVotes | ||||
* | core: vm: implement transfer node ownership (#255) | Wei-Ning Huang | 2019-06-12 | 1 | -1/+2 |
| | |||||
* | vendor: sync to latest core (#253) | Jimmy Hu | 2019-06-12 | 1 | -0/+14 |
| | |||||
* | app: new app test flow (#244) | bojie | 2019-06-12 | 2 | -1/+2281 |
| | |||||
* | dex: fetcher: modify parameters to speedup syncing (#239) | Wei-Ning Huang | 2019-06-12 | 2 | -5/+6 |
| | |||||
* | dex: rename IsLatticeSyncing to IsCoreSyncing (#238) | Wei-Ning Huang | 2019-06-12 | 3 | -5/+5 |
| | |||||
* | dex, dex/downloader: remove some TODO comments (#232) | Sonic | 2019-06-12 | 5 | -13/+1 |
| | |||||
* | app: refactor app run as single chain (#226) | bojie | 2019-06-12 | 1 | -129/+145 |
| | |||||
* | dex: fill in correct coinbase address (#223) | Wei-Ning Huang | 2019-06-12 | 2 | -723/+10 |
| | | | Also remove app_test.go because of the refactor bojie@ is working on. | ||||
* | core: vm: flatten governance | Wei-Ning Huang | 2019-06-12 | 6 | -78/+79 |
| | |||||
* | core: sync to latest core (#214) | Jimmy Hu | 2019-06-12 | 9 | -241/+104 |
| | | | | | * vendor: sync to latest core * fix for single chain | ||||
* | params: add Yilan network (#207) | Mission Liao | 2019-06-12 | 2 | -2/+1 |
| | | | | | | * Add Yilan network * Fixup: remove dummy log | ||||
* | core: Fixed gas price (#205) | Jimmy Hu | 2019-06-12 | 3 | -7/+48 |
| | | | | | | | | | | * 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: Remove K, Phi and NumChains from Governance (#198) | Jimmy Hu | 2019-06-12 | 3 | -183/+37 |
| | | | | | | * change default sync_core.sh * vendor: sync to latest core * core: Remove K, Phi and NumChain | ||||
* | dex: some minor improvements (#195) | Sonic | 2019-06-12 | 3 | -144/+117 |
| | | | | | | | | | | * dex: improve some msg propagation * dex: support send a batch of lattice blocks, votes, randomnesses To reduce msgs number of PullBlocks, PullVotes, PullRandomness * dex: minor improvement | ||||
* | dex: Add a flag to GetBlockHeadersMsg and GetBlockBodiesMsg (#188) | Sonic | 2019-06-12 | 7 | -63/+95 |
| | | | | | | | | | * dex: Add a flag to GetBlockHeadersMsg and GetBlockBodiesMsg So that we can dispatch the response msg to fetcher or downloader easily. * fixup! dex: Add a flag to GetBlockHeadersMsg and GetBlockBodiesMsg | ||||
* | p2p, dex: some fixes (#189) | Sonic | 2019-06-12 | 1 | -0/+3 |
| | | | | | * p2p: try resolving direct dial when dial fail * dex: avoid concurrent map read and map write | ||||
* | p2p, dex: rework connection management (#183) | Sonic | 2019-06-12 | 7 | -684/+398 |
| | | | | | | * p2p, dex: rework connection management * dex: refresh our node record periodically * dex: don't send new record event if no new record | ||||
* | app: prepare/verify block limit in correct round (#181) | bojie | 2019-06-12 | 1 | -2/+2 |
| | |||||
* | consensus: dexcon: snapshot round height when finalizing block (#170) | Wei-Ning Huang | 2019-06-12 | 3 | -29/+0 |
| | | | | Instead of having BP to send a tx to register the round height, just modify the state when finalizing block. | ||||
* | dex: reduce pullVote (#172) | Jimmy Hu | 2019-06-12 | 1 | -2/+3 |
| | |||||
* | dex: Add rate limit for pullVote (#169) | Jimmy Hu | 2019-06-12 | 1 | -7/+21 |
| | |||||
* | core, dex/downloader: polish headers verification and blocks insertion logic ↵ | Sonic | 2019-06-12 | 4 | -116/+227 |
| | | | | | | | | (#168) Refactor GenerateDexonChain function, move governance tx logic to the user of GenerateDexonChain (testchain_test.go) and move fake node set code to FakeDexcon. | ||||
* | dex: add block number gauge (#140) | haoping-ku | 2019-06-12 | 1 | -18/+25 |
| | |||||
* | core, dex: use block hash as witness data (#160) | Sonic | 2019-06-12 | 2 | -24/+13 |
| | | | | | | | | | | 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. | ||||
* | Fix the usage of sync.Map (#156) | Mission Liao | 2019-06-12 | 1 | -4/+2 |
| | |||||
* | vendor: sync to latest core (#154) | Jimmy Hu | 2019-06-12 | 1 | -0/+1 |
| | | | | | | * vendor: sync to latest core with BA3.0 * params: Update dmoment | ||||
* | app: remove pending block logic (#149) | bojie | 2019-06-12 | 4 | -162/+142 |
| | |||||
* | params: write dMoment into ChainConfig (#150) | Wei-Ning Huang | 2019-06-12 | 6 | -15/+30 |
| | |||||
* | consensus: implement DEXON cryptoeconomics v4.0 (#145) | Wei-Ning Huang | 2019-06-12 | 3 | -8/+20 |
| | |||||
* | dex: remove unused log (#136) | Sonic | 2019-06-12 | 1 | -4/+0 |
| | | | | | | * fixup! app: use gcp storage instead of azure for builds (#81) * dex: remove unused log | ||||
* | app: implement logic for prepare/verify correctly when chain number change ↵ | bojie | 2019-06-12 | 2 | -6/+257 |
| | | | | (#118) | ||||
* | dex: replace NodeMeta with ENR (#132) | Sonic | 2019-06-12 | 9 | -255/+236 |
| | |||||
* | core: vm: implement byzantine reporting mechanism (#128) | Wei-Ning Huang | 2019-06-12 | 2 | -15/+66 |
| | |||||
* | dex: fix test due to consensus-core change | Wei-Ning Huang | 2019-06-12 | 1 | -9/+9 |
| | |||||
* | vendor: sync to latest core (#129) | Wei-Ning Huang | 2019-06-12 | 1 | -0/+9 |
| | |||||
* | dex: fix cache error (#126) | Jimmy Hu | 2019-06-12 | 1 | -0/+1 |
| | |||||
* | core, indexer, dex: fix DexconApp block deliver after synced (#122) | Sonic | 2019-06-12 | 1 | -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 Yang | 2019-06-12 | 2 | -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) | Sonic | 2019-06-12 | 1 | -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 Hu | 2019-06-12 | 6 | -14/+203 |
| | | | | | * vendor: sync to latest core * dex: Add PullRandomness | ||||
* | core, dex, internal: block proposer syncing (first iteration) (#96) | Sonic | 2019-06-12 | 5 | -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 Hu | 2019-06-12 | 1 | -0/+40 |
| | | | | | | * core/vm: Add DKGMPKReady * param: update GenesisHash * vendor: sync to latest core | ||||
* | dex: remove duplicate declaration of WitnessData (#92) | Wei-Ning Huang | 2019-06-12 | 2 | -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 Hu | 2019-06-12 | 1 | -0/+1 |
| | |||||
* | vendor: sync to latest core (#91) | Mission Liao | 2019-06-12 | 3 | -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 conflict | Jimmy Hu | 2019-06-12 | 3 | -20/+37 |
| | |||||
* | dex, cmd: Add DMoment to command line (#87) | Jimmy Hu | 2019-06-12 | 2 | -6/+5 |
| | |||||
* | app: remove unnecessary code (#86) | bojie | 2019-06-12 | 2 | -15/+3 |
| | |||||
* | dex: Pull blocks from blockdb if cache miss (#84) | Jimmy Hu | 2019-06-12 | 3 | -4/+40 |
| | |||||
* | vendor: sync to latest core and fix conflict (#79) | Jimmy Hu | 2019-06-12 | 1 | -2/+1 |
| | |||||
* | app: return retry later instead of retry with sleep time (#78) | bojie | 2019-06-12 | 1 | -31/+22 |
| | |||||
* | core, dex: polish sync (#75) | Sonic | 2019-06-12 | 6 | -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) | bojie | 2019-06-12 | 1 | -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) | Sonic | 2019-06-12 | 10 | -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 Hu | 2019-06-12 | 1 | -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) | Sonic | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | app: add app test case and benchmark (#66) | bojie | 2019-06-12 | 3 | -19/+723 |
| | |||||
* | dex: verify header that imported from fetcher (#68) | Sonic | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | Fix lint | Wei-Ning Huang | 2019-06-12 | 10 | -109/+111 |
| | |||||
* | dex: add metrics (#54) | Sonic | 2019-06-12 | 1 | -32/+84 |
| | |||||
* | dex/downloader: fix tests | Sonic | 2019-06-12 | 2 | -242/+114 |
| | |||||
* | dex: fix tests | Wei-Ning Huang | 2019-06-12 | 4 | -43/+93 |
| | |||||
* | core: fix tests | Wei-Ning Huang | 2019-06-12 | 2 | -8/+2 |
| | |||||
* | core: various changes on tps tuning (#46) | Wei-Ning Huang | 2019-06-12 | 2 | -7/+4 |
| | |||||
* | app: skip tx which has been confirmed (#45) | bojie | 2019-06-12 | 1 | -9/+8 |
| | | | | | | * app: skip tx which has been confirmed * fixup! app: skip tx which has been confirmed | ||||
* | api: allow sending batch of raw transactions | Wei-Ning Huang | 2019-06-12 | 1 | -0/+4 |
| | |||||
* | core, dex, downloader: refactor governance | Sonic | 2019-06-12 | 4 | -221/+48 |
| | |||||
* | core, dex, dex/downloader: restore insertChain to upstream version | Sonic | 2019-06-12 | 2 | -7/+7 |
| | | | | | Also rename InsertChain2, insertChain2, InsertHeaderChain2, ValidateHeaderChain2 | ||||
* | dex: implement downloader for dex | Sonic | 2019-06-12 | 11 | -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 dex | Sonic | 2019-06-12 | 8 | -19/+19 |
| | | | | | To compatible with ethereum code base, make Downloader a interface in internal/ethapi | ||||
* | dex: copy fetcher and downloader from eth | Sonic | 2019-06-12 | 15 | -0/+7440 |
| | |||||
* | core: add global signature cache and improve concurrency (#42) | Wei-Ning Huang | 2019-06-12 | 2 | -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 Hu | 2019-06-12 | 1 | -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 Hu | 2019-06-12 | 2 | -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) | Sonic | 2019-06-12 | 2 | -11/+56 |
| | |||||
* | governance: implement delegate/undelegate function and add tests (#33) | Wei-Ning Huang | 2019-06-12 | 2 | -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 Huang | 2019-06-12 | 2 | -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 Huang | 2019-06-12 | 2 | -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 core | BJ4 | 2019-06-12 | 1 | -39/+3 |
| | |||||
* | app: add cache to reuse same tx address which has already recovered (#26) | BJ4 | 2019-06-12 | 1 | -9/+2 |
| | |||||
* | core: refactor validator and fix light node sync (#25) | Wei-Ning Huang | 2019-06-12 | 3 | -47/+75 |
| | | | | | | | | 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 instead | Wei-Ning Huang | 2019-06-12 | 4 | -192/+3 |
| | | | | We did not change anything in eth/gasprice, don't copy it into dex. | ||||
* | dex, core: Fix make fail (#24) | Jimmy Hu | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | core, dex: Optimize sender calculation in block transactions. (#22) | Jimmy Hu | 2019-06-12 | 1 | -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 Huang | 2019-06-12 | 1 | -4/+2 |
| | | | | | * vendor: sync consensus core * core: validate DKG set with correct nodeset in round-2 | ||||
* | dex: return correct pending nonce (#14) | Wei-Ning Huang | 2019-06-12 | 2 | -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) | Sonic | 2019-06-12 | 4 | -112/+132 |
| | |||||
* | app: bug fix (#7) | bojie | 2019-06-12 | 1 | -0/+7 |
| | | | | Add notify mutex to prevent missing chain issue while concurrent appending with same slice. | ||||
* | app: fix core test | BJ4 | 2019-06-12 | 1 | -1/+2 |
| | |||||
* | dex: remove useless code | Sonic | 2019-06-12 | 1 | -115/+0 |
| | |||||
* | dex: peer: more fix on ID conversion | Wei-Ning Huang | 2019-06-12 | 1 | -53/+53 |
| | |||||
* | dex: fix conflict caused by rebase | Wei-Ning Huang | 2019-06-12 | 4 | -59/+79 |
| | |||||
* | dex: increase governance tx gas price | Wei-Ning Huang | 2019-06-12 | 1 | -0/+4 |
| | |||||
* | core: validate roundHeight mapping in governance contract | Wei-Ning Huang | 2019-06-12 | 1 | -0/+7 |
| | |||||
* | dex: proofread and fix bugs | Wei-Ning Huang | 2019-06-12 | 1 | -161/+145 |
| | |||||
* | test: disable standalone RPC server as BroadcastBlock currently cause forking | Wei-Ning Huang | 2019-06-12 | 1 | -3/+1 |
| | |||||
* | test: start a separate RPC node for testing block sync | Wei-Ning Huang | 2019-06-12 | 2 | -10/+5 |
| | |||||
* | app: add back mutex to prevent concurrent map read write | BJ4 | 2019-06-12 | 1 | -1/+9 |
| | |||||
* | dex: remove finalization information in block cache | Jimmy Hu | 2019-06-12 | 1 | -0/+2 |
| | |||||
* | app: lock by chain correctly and remove old core in vendor | BJ4 | 2019-06-12 | 1 | -24/+12 |
| | |||||
* | core: vm: governance: remove maxInterval | Wei-Ning Huang | 2019-06-12 | 1 | -1/+0 |
| | |||||
* | Rename import due to dexon-consensus rename | Wei-Ning Huang | 2019-06-12 | 10 | -68/+68 |
| | |||||
* | dex: implement PullBlocks/PullVotes (#1) | Jimmy Hu | 2019-06-12 | 6 | -2/+415 |
| | |||||
* | dex: minor refactor | Wei-Ning Huang | 2019-06-12 | 1 | -12/+18 |
| | |||||
* | dex: set blocktime to millisecond timestamp | Wei-Ning Huang | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | dex: increase TX queue size | Wei-Ning Huang | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | core: tx_pool: remove transactions on BlockConfirmed event | Wei-Ning Huang | 2019-06-12 | 1 | -1/+2 |
| | |||||
* | vendor: sync consensus core and fix conflic | Jimmy Hu | 2019-06-12 | 1 | -0/+21 |
| | |||||
* | dex: add block gas limit into governance | Wei-Ning Huang | 2019-06-12 | 2 | -11/+4 |
| | |||||
* | app: refactor prepare logic | Bojie Wu | 2019-06-12 | 1 | -11/+17 |
| | |||||
* | app: using lock correctly to use map safely | Bojie Wu | 2019-06-12 | 1 | -63/+77 |
| | |||||
* | app: fix nil pointer issue | Bojie Wu | 2019-06-12 | 1 | -4/+6 |
| | |||||
* | vendor: sync consensus core and fix conflict | Wei-Ning Huang | 2019-06-12 | 1 | -0/+5 |
| | |||||
* | app: add cache mechanism to increase performance | Bojie Wu | 2019-06-12 | 1 | -103/+63 |
| | |||||
* | app: add mutex to prevent concurrent read write map | Bojie Wu | 2019-06-12 | 1 | -0/+3 |
| | |||||
* | dex: update default network ID | Wei-Ning Huang | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | dex: fix types changes in consensus core | Sonic | 2019-06-12 | 1 | -10/+9 |
| | |||||
* | dex: remove uneeded info from block header | Wei-Ning Huang | 2019-06-12 | 1 | -15/+5 |
| | |||||
* | vendor: sync consensus core and fix conflict | Wei-Ning Huang | 2019-06-12 | 5 | -27/+30 |
| | |||||
* | app: fix bug when prepare transaction | Bojie Wu | 2019-06-12 | 1 | -2/+7 |
| | |||||
* | dex: fix test | Sonic | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | app: correct process pending block logic | Bojie Wu | 2019-06-12 | 1 | -29/+38 |
| | |||||
* | dex: fix missing randomness assignment | Wei-Ning Huang | 2019-06-12 | 1 | -1/+2 |
| | |||||
* | dex: fix DKG round switching | Wei-Ning Huang | 2019-06-12 | 1 | -3/+3 |
| | |||||
* | dex: prevent broadcasting agreement and randomness indefinitely | Wei-Ning Huang | 2019-06-12 | 1 | -2/+6 |
| | |||||
* | dex: fix round switching and initialize dMoment correctly | Wei-Ning Huang | 2019-06-12 | 1 | -1/+8 |
| | |||||
* | dex: misc fixes | Wei-Ning Huang | 2019-06-12 | 2 | -8/+17 |
| | |||||
* | app: check nonce and balance in prepare payload | Bojie Wu | 2019-06-12 | 1 | -20/+111 |
| | |||||
* | geth: add propose flag to enable/disable proposing | Sonic | 2019-06-12 | 1 | -0/+7 |
| | |||||
* | core: included Dexcon metadata in block | Wei-Ning Huang | 2019-06-12 | 1 | -5/+11 |
| | |||||
* | dex: no need to rlp encode/decode now, consensus supports it | Sonic | 2019-06-12 | 4 | -41/+31 |
| | |||||
* | dex: use RLP to encode contract payload data | Wei-Ning Huang | 2019-06-12 | 1 | -6/+6 |
| | |||||
* | dex: fix public key conversion | Wei-Ning Huang | 2019-06-12 | 1 | -6/+2 |
| | |||||
* | dex: fix DKGMasterPublicKey and DKGComplaints unmarshal | Wei-Ning Huang | 2019-06-12 | 1 | -3/+2 |
| | |||||
* | dex: pass logger object to consensus core | Wei-Ning Huang | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | app: implement verify block logic | Bojie Wu | 2019-06-12 | 1 | -22/+195 |
| | |||||
* | consensus: dexcon: fetch config from state | Wei-Ning Huang | 2019-06-12 | 4 | -7/+15 |
| | |||||
* | dex: fix public key parsing due to changes in consensus core | Wei-Ning Huang | 2019-06-12 | 1 | -12/+8 |
| | |||||
* | app: fixup message format | Wei-Ning Huang | 2019-06-12 | 1 | -8/+8 |
| | |||||
* | app: implement new insert blocks logic | Bojie Wu | 2019-06-12 | 1 | -147/+66 |
| | |||||
* | core/dex: fix governance contract implementation | Wei-Ning Huang | 2019-06-12 | 1 | -8/+8 |
| | |||||
* | dex: add initial block to Run | Jimmy Hu | 2019-06-12 | 1 | -1/+3 |
| | |||||
* | dex: polish network related function | Sonic | 2019-06-12 | 4 | -103/+211 |
| | |||||
* | dex: let notary nodes connect to some dkg nodes | Sonic | 2019-06-12 | 4 | -185/+204 |
| | | | | BuildConnection builds notary and dkg connections together | ||||
* | dex/core: misc bug fixes | Wei-Ning Huang | 2019-06-12 | 3 | -2/+10 |
| | |||||
* | dex: register ethereum APIs | Wei-Ning Huang | 2019-06-12 | 3 | -1/+1036 |
| | |||||
* | dex: implement peerSetLoop | Sonic | 2019-06-12 | 6 | -11/+74 |
| | |||||
* | app: fix log message | Bojie Wu | 2019-06-12 | 1 | -8/+8 |
| | |||||
* | hack: temp fix for running tests | Wei-Ning Huang | 2019-06-12 | 2 | -8/+5 |
| | |||||
* | app: correct dexon application logic | Bojie Wu | 2019-06-12 | 1 | -81/+51 |
| | |||||
* | core: fix nil map initialization | Wei-Ning Huang | 2019-06-12 | 1 | -1/+2 |
| | |||||
* | dex: gov: using dex-consensus-core NodeSetCache | Sonic | 2019-06-12 | 5 | -64/+71 |
| | |||||
* | dex: add subprotocols | Sonic | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | dex: run consensus core on Start | Wei-Ning Huang | 2019-06-12 | 1 | -0/+1 |
| | |||||
* | app: add default block reward | Bojie Wu | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | dex: set tmp dMoment for testing | Wei-Ning Huang | 2019-06-12 | 1 | -1/+2 |
| | |||||
* | dex: fix flaky test | Sonic | 2019-06-12 | 1 | -0/+12 |
| | |||||
* | dex: add self node meta after Start | Sonic | 2019-06-12 | 4 | -6/+47 |
| | |||||
* | dex: add method to get NumChains, NotarySet, DKGSet easily | Sonic | 2019-06-12 | 6 | -43/+80 |
| | |||||
* | dex: move dexcon blockdb into datadir | Wei-Ning Huang | 2019-06-12 | 1 | -1/+3 |
| | |||||
* | dex: interface update | Wei-Ning Huang | 2019-06-12 | 1 | -1/+3 |
| | |||||
* | app: pass chain config instead of nil | Bojie Wu | 2019-06-12 | 1 | -3/+6 |
| | |||||
* | dex: network: implement the network interface | Sonic | 2019-06-12 | 9 | -58/+1024 |
| | |||||
* | dex: bug fix to allow running geth without crashing | Wei-Ning Huang | 2019-06-12 | 3 | -45/+50 |
| | |||||
* | dex: implement sendTx related governance methods | Wei-Ning Huang | 2019-06-12 | 2 | -6/+128 |
| | |||||
* | dex: pass p2p nodeKey to Dexon instance | Wei-Ning Huang | 2019-06-12 | 3 | -13/+20 |
| | |||||
* | app: modify for new interface method | Bojie Wu | 2019-06-12 | 1 | -19/+33 |
| | |||||
* | dex: implement some governance interface functions | Wei-Ning Huang | 2019-06-12 | 4 | -22/+98 |
| | |||||
* | dex: governance: implement governance interface | Wei-Ning Huang | 2019-06-12 | 3 | -16/+38 |
| | |||||
* | app: implement new interface method | Bojie Wu | 2019-06-12 | 1 | -27/+104 |
| | |||||
* | dex: add api_backend.go and it's dependencies | Wei-Ning Huang | 2019-06-12 | 5 | -2/+566 |
| | |||||
* | dex: update application interface | Wei-Ning Huang | 2019-06-12 | 1 | -20/+27 |
| | |||||
* | app: correct validation logic | Bojie Wu | 2019-06-12 | 1 | -4/+10 |
| | |||||
* | dex: implement dexon application interface | Bojie Wu | 2019-06-12 | 3 | -17/+285 |
| | |||||
* | dex: remove DAO related code | Sonic | 2019-06-12 | 2 | -62/+2 |
| | |||||
* | core: vm: refactor and add DKGFinalizeds related implementations | Wei-Ning Huang | 2019-06-12 | 2 | -4/+13 |
| | |||||
* | dex: redesign p2p network topology | Sonic | 2019-06-12 | 12 | -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 methods | Wei-Ning Huang | 2019-06-12 | 3 | -4/+16 |
| | |||||
* | core: vm: add governance contract skeleton | Wei-Ning Huang | 2019-06-12 | 1 | -7/+7 |
| | |||||
* | dex: update consensus core interface | Wei-Ning Huang | 2019-06-12 | 4 | -36/+38 |
| | |||||
* | Change import go github.com/dexon-foundation/dexon | Wei-Ning Huang | 2019-06-12 | 11 | -66/+66 |
| | |||||
* | Use dex.Config instead of eth.Config | Wei-Ning Huang | 2019-06-12 | 4 | -72/+18 |
| | |||||
* | dex: implement notary node info propagation and management mechanism | Sonic | 2019-06-12 | 3 | -16/+183 |
| | |||||
* | dex: implement notarySet for keeping notary set info | Sonic | 2019-06-12 | 1 | -0/+203 |
| | |||||
* | dex: introduce dex64 and remove eth62, eth63 | Sonic | 2019-06-12 | 3 | -18/+37 |
| | |||||
* | dex: let peer able to send notary node info | Sonic | 2019-06-12 | 1 | -3/+41 |
| | |||||
* | dex: let peerSet able to manage notary peers | Sonic | 2019-06-12 | 1 | -1/+64 |
| | |||||
* | dex: fix use of internal package not allowed | Sonic | 2019-06-12 | 1 | -1/+1 |
| | |||||
* | Change package name from eth to dex | Sonic | 2019-06-12 | 8 | -8/+8 |
| | |||||
* | Copy codebase from eth | Sonic | 2019-06-12 | 8 | -0/+2407 |
| | |||||
* | dex: update interface and use static bls lib | Wei-Ning Huang | 2019-06-12 | 1 | -0/+5 |
| | |||||
* | dex: make geth buildable and update interface skeleton | Wei-Ning Huang | 2019-06-12 | 4 | -5/+177 |
| | |||||
* | Add udpated governance interface and app interface | Wei-Ning Huang | 2019-06-12 | 2 | -2/+34 |
| | |||||
* | Add dex package | Wei-Ning Huang | 2019-06-12 | 2 | -0/+80 |