Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | core: fix issue (#427) | Mission Liao | 2019-01-21 | 2 | -10/+12 |
| | | | | | | | | * Dropped block should not be added to db - Here "dropped" means a block is older than current tip of that chain. * "Acking blocks doesn't exist" should be treated as an error when adding a block | ||||
* | core: Fix BA3.0 implmenetation (#426) | Jimmy Hu | 2019-01-21 | 7 | -58/+67 |
| | | | | | | | | | | | | | | | | * types: Add vote type * core: remove stateFastRollback * core: rename lockRound to lockIter * core: Implement real ba3.0 * core: Add test for confirm * Fix VoteFastCom in agreement result * lockIter will always increase | ||||
* | misc: Add gosec to check security issues (#424) | Jimmy Hu | 2019-01-18 | 7 | -14/+42 |
| | | | | | | | | * Add gosec to tools * Run security check to ci * Fix secrity issues | ||||
* | core: Fix stuffs (#422) | Jimmy Hu | 2019-01-18 | 6 | -37/+107 |
| | | | | | | * core: reduce syncing ba msg * core: fix checking period of agreement result | ||||
* | core: Fix syncing BA issues (#421) | Jimmy Hu | 2019-01-17 | 1 | -6/+13 |
| | |||||
* | core: find confirmed block in pending set and candidate set (#419) | Mission Liao | 2019-01-16 | 5 | -31/+74 |
| | |||||
* | core: Fix BA3.0 (#420) | Jimmy Hu | 2019-01-15 | 12 | -58/+144 |
| | | | | | | | | | | | | | | | | | | * Add Restart to Ticker * Change pre allocated size * Return NextTime from lattice * Few hacky fixes for BA * PullVote in FastRollback state * Add shallowBlock for agreementResult * Extend period * Fixup | ||||
* | syncer: fix issues when switching to core.Consensus (#418) | Mission Liao | 2019-01-11 | 8 | -65/+269 |
| | | | | | | | | | | | | | | | | - when confirmed blocks passed to core.Consensus aren't continuous in position in some chain, the pulling would skip those missing blocks. - fix: when some block is missing, avoid adding it and all blocks after it to core.Consensus. - we need to avoid the receive channel of network module full. - fix: during switching to core.Consensus, we need to launch a dummy receiver to receive from receive channel of network module. - fix: between the period during core.Consensus created and before running, a dummy receiver is also required to receive from receive channel of network module. | ||||
* | core: fix issues in consensus core (#415) | Jimmy Hu | 2019-01-10 | 3 | -17/+31 |
| | |||||
* | simulation: fix k8s dmoment issue (#416) | Jimmy Hu | 2019-01-09 | 4 | -14/+72 |
| | | | | | | * Handshake with server dmoment * Start simulation from dMoment * Update k8s config | ||||
* | core: panic after no blocks delivered for 1 minute (#414) | Jimmy Hu | 2019-01-09 | 1 | -16/+40 |
| | |||||
* | syncer: skip error (#412) | Mission Liao | 2019-01-08 | 1 | -0/+4 |
| | | | | | | This error would always be raised when trying to sync from consensusHeight == 0. However, this error is mostly meaningless to fullnode, they just need to retry it later. | ||||
* | simulation: fix k8s simulation stuff (#410) | Jimmy Hu | 2019-01-08 | 1 | -2/+2 |
| | | | | | | * simulation: fix k8s simulation stuff * Default K to 0 | ||||
* | core: fix ci fail (#411) | Mission Liao | 2019-01-08 | 2 | -12/+12 |
| | | | | | | | | | | * Compose hashes for debugApp only * Remove TODOs They are already done * Fix total ordering handing issue | ||||
* | core: report fork (#409) | Mission Liao | 2019-01-08 | 5 | -15/+89 |
| | |||||
* | sync: Verify randomness result before caching them. (#392) | Mission Liao | 2019-01-08 | 1 | -9/+34 |
| | | | | NOTE: the assurance between block's hash and block's position would be done in core.Consensus. | ||||
* | core: BA 3.0 (#408) | Jimmy Hu | 2019-01-07 | 12 | -55/+401 |
| | | | | | | | | | | | | | | * Add v3 enum * Add BA leader calculation * Fast BA * Add unittest for Fast BA * Add comment * Select leader in notarySet | ||||
* | sync: add log for syncer to debug hanging issue (#407) | Mission Liao | 2019-01-07 | 2 | -76/+143 |
| | | | | | | | | | Besides adding logs, also include these minor fixes: * Accessing con.validatedChains under locking * Access con.latticeLastRound under locking * Fix incorrect waitGroup usage * Remove unused parameter in startAgreement | ||||
* | core: Add check for vote type (#406) | Jimmy Hu | 2019-01-07 | 1 | -0/+4 |
| | |||||
* | simulation: Fix simulation stuffs (#405) | Jimmy Hu | 2019-01-07 | 1 | -0/+8 |
| | | | | | | * test: fix marshal randomness pullrequest * Add result for witness latency | ||||
* | core: remove useless branching code (#403) | wmin0 | 2019-01-07 | 7 | -80/+29 |
| | |||||
* | core: fix ci fail (#404) | Mission Liao | 2019-01-05 | 1 | -2/+1 |
| | | | | | | * Clean DKG instance after finished * Fix CI failure by workaround.... | ||||
* | core: add fork reporting interface to governance (#402) | Wei-Ning Huang | 2019-01-05 | 2 | -0/+14 |
| | |||||
* | core: fix stuffs (#401) | Mission Liao | 2019-01-05 | 6 | -35/+17 |
| | | | | | | | * Remove block recycling mechanism * Return directly when previous DKG is not finished. * Adjust some logging level * Skip pulling when hashes to pull is empty | ||||
* | test: allow empty change request (#398) | Jimmy Hu | 2019-01-04 | 2 | -16/+3 |
| | | | | | | * allow empty reqs * Fix license | ||||
* | core: expose HashVote function for test (#400) | Wei-Ning Huang | 2019-01-04 | 4 | -8/+9 |
| | |||||
* | core: syncer: safe spawn go routine (#399) | wmin0 | 2019-01-04 | 2 | -10/+6 |
| | |||||
* | core: Change target of each nodeset (#397) | Jimmy Hu | 2019-01-04 | 1 | -13/+17 |
| | |||||
* | core: check if deliverable for each added block in total ordering (#395) | Mission Liao | 2019-01-04 | 4 | -74/+110 |
| | | | | | | * Check if deliverable multiple times for each added block * Fix format | ||||
* | core: agreement mgr safe spawn go routine (#396) | wmin0 | 2019-01-04 | 1 | -4/+10 |
| | | | | Set waitGroup.Add inner go routine is not safe. You can see the example here https://play.golang.org/p/AexsKUD-4WK | ||||
* | core/utils: Add Penalty checker and VerifyDKGComplaint (#393) | Jimmy Hu | 2019-01-04 | 6 | -5/+519 |
| | | | | | | | | | | * Add Util for checking penalty * Add VerifyDKGComplaints * Fixup and rename * Happy New Year! | ||||
* | core: stop leaking timer (#394) | wmin0 | 2019-01-03 | 1 | -0/+2 |
| | |||||
* | simulation: add latency for gossip (#389) | Mission Liao | 2019-01-03 | 7 | -179/+191 |
| | |||||
* | core: Refine message of lattice (#391) | Jimmy Hu | 2019-01-03 | 1 | -1/+2 |
| | |||||
* | Fix TODO (#390) | Mission Liao | 2019-01-02 | 1 | -6/+9 |
| | |||||
* | sync: fix panic (#388) | Mission Liao | 2018-12-28 | 1 | -32/+47 |
| | | | | | * Merge several CRS notifications into one. * Sync config when new CRS is found | ||||
* | sync: filter duplicated randomness (#387) | Mission Liao | 2018-12-28 | 1 | -12/+34 |
| | |||||
* | Fix: consensusTimestamp panic when numChains increased at round 1(#382) | Mission Liao | 2018-12-27 | 2 | -0/+21 |
| | |||||
* | test: add witness preparation/verification (#386) | Mission Liao | 2018-12-27 | 3 | -31/+195 |
| | |||||
* | core: Polish randomness (#385) | Jimmy Hu | 2018-12-26 | 2 | -4/+10 |
| | |||||
* | core: fix stuffs (#383) | Mission Liao | 2018-12-26 | 7 | -130/+109 |
| | | | | | | * Merge core.Consensus constructors * Downgrade severity of logs * Refine logic to add blocks from pool to lattice * Add test.LaunchDummyReceiver | ||||
* | core: pull block random (#384) | Jimmy Hu | 2018-12-26 | 6 | -55/+206 |
| | | | | | | | | * Add PullRandomness to interface * Add pendingBlocksWithoutRandomness to compactionChain * Pull randomness every 1 second | ||||
* | simulation: support config change (#381) | Mission Liao | 2018-12-26 | 2 | -33/+60 |
| | |||||
* | core: fix issues found when testing syncing. (#379) | Mission Liao | 2018-12-24 | 4 | -28/+78 |
| | | | | | | | | * Avoid panic when stopping multiple times. * Fix syncer panic when round switching * Add getCurrentConfig to total-ordering, and panic with more info * Avoid infinite loop. | ||||
* | core: simulation: add throughput and block event monitoring (#380) | haoping-ku | 2018-12-22 | 2 | -24/+138 |
| | | | | | | | | | | | * core: simulation: add throughput and block event monitoring Added throughput and block event monitoring in TCP-local network. These data is collected by nodes and reported to peer server. * fix issues * fix sent time of throughput issue | ||||
* | utils: move authenticator to utils package (#378) | Mission Liao | 2018-12-22 | 32 | -597/+486 |
| | |||||
* | core: Add TODO | Jimmy Hu | 2018-12-20 | 1 | -0/+1 |
| | |||||
* | core: Add VerifyDKGMPKReadySignature (#377) | Jimmy Hu | 2018-12-20 | 3 | -1/+30 |
| | | | | | | * core: Add VerifyDKGMPKReadySignature * Fix typo | ||||
* | core: deliver finalized blocks upon receiving randomness results. (#376) | Mission Liao | 2018-12-20 | 6 | -21/+47 |
| | |||||
* | core: Add a `MPKReady` so `MasterPublicKey` cannot be added afterwards (#375) | Jimmy Hu | 2018-12-19 | 16 | -10/+406 |
| | | | | | | | | | | | | | | | | * Add type DKGReady * Add DKGReady to interface and state * DKG will wait for MPK to be ready before running * Modify test * Check if self's MPK is registered * Add test for delay add MPK * Rename Ready to MPKReady | ||||
* | misc: panic not ready (#374) | Mission Liao | 2018-12-18 | 8 | -50/+103 |
| | | | | | | | | | | | | | | | | * Panic when config/crs not ready For those calls to Governace.Configuration and Governance.CRS without checking returns, replace those calls with these newly added helpers: - utils.GetConfigurationWithPanic - utils.GetCRSWithPanic They would check returns, and panic directly if not ready yet. * Fix a bug that config is not ready when syncing | ||||
* | syncer: fix stuffs (#373) | Mission Liao | 2018-12-18 | 2 | -47/+77 |
| | | | | | | | | | | | | * Add a new method: GetSyncedConsensus This method avoids calling BlockDelivered in SyncBlocks methods, which avoid potential deadlock. * Add a method to stop the syncer before synced * Enable nonBlockingApp for synced Consensus instance. | ||||
* | test: check causality (#372) | Mission Liao | 2018-12-17 | 4 | -7/+101 |
| | |||||
* | core: cache dkg's private key in db (#371) | Mission Liao | 2018-12-16 | 11 | -45/+306 |
| | |||||
* | core: Fix a bug of DKGNackComplaints (#370) | Jimmy Hu | 2018-12-14 | 4 | -7/+133 |
| | | | | | | * core: Fix a bug if DKGNackComplaint is added after required time. * Duplicated NackComplaint should be only count once. | ||||
* | db: cache compaction chain tip in db (#369) | Mission Liao | 2018-12-13 | 10 | -75/+281 |
| | | | | | * Replace JSON with RLP in levelDB implementation. * Make sure blocks to sync following compaction chain tip | ||||
* | core: check if CRS is proposed before running CRS (#368) | Jimmy Hu | 2018-12-13 | 1 | -9/+12 |
| | |||||
* | db: rename blockdb to db (#367) | Mission Liao | 2018-12-13 | 22 | -380/+385 |
| | | | | | | | | | | * Rename blockdb package to db * Rename 'BlockDB' to 'DB' * Make all methods in db specific for ''block'. * Rename db.BlockDatabase to db.Database * Rename revealer to block-revealer * Rename test.Revealer to test.BlockRevealer | ||||
* | syncer: fix stuffs (#366) | Mission Liao | 2018-12-12 | 6 | -72/+153 |
| | | | | | | | | | | * return delivered blocks when processing finalized blocks * check deliver sequence when processing finalized blocks * skip delivery of finalized blocks * remove duplicated calls to BlockConfirmed * add numChains change in test scenario * fix the bug that restartNotary is triggered by older block than current aID. | ||||
* | core: Longer lambda for TravisCI (#365) | Jimmy Hu | 2018-12-10 | 2 | -1/+16 |
| | | | | | | * Longer time for TravisCI. * Update CI setting for PR | ||||
* | ci: Add TravisCI setting. (#363) | Jimmy Hu | 2018-12-08 | 2 | -46/+122 |
| | | | | | | | | | | | | | | * Update Gopkg.lock * Fix test * Add travisCI setting * Print log using fmt * Update GNUmakefile * Use single go rountine for consensus_test | ||||
* | core: fix bugs found when node-set is not equal to notary-set (#362) | Mission Liao | 2018-12-07 | 7 | -62/+106 |
| | |||||
* | ci: some change to circleci (#360) | Jimmy Hu | 2018-12-06 | 2 | -3/+3 |
| | | | | | | | | * CircleCI: change to go1.11 * fix gofmt * Reduce test size | ||||
* | test: allow to log in test.State (#359) | Mission Liao | 2018-12-06 | 11 | -52/+120 |
| | |||||
* | Haoping fix simulation (#356) | haoping-ku | 2018-12-05 | 4 | -6/+31 |
| | | | | | | | | | | | | | | | * simulation: add benchmark features * tmp * simulation: modify Debug interface * Added BlockReceived and BlockReady function to Debug interface. * Added Benchmark features. * fix * fix typos | ||||
* | core: fix agreement sync issue. (#358) | Jimmy Hu | 2018-12-05 | 1 | -2/+3 |
| | |||||
* | core: syncer: fix round finding process (#357) | haoping-ku | 2018-12-05 | 1 | -3/+3 |
| | | | | | | * core: syncer: fix round finding process * Fix comment | ||||
* | core: log the last pending block in compaction chain (#355) | Mission Liao | 2018-12-04 | 3 | -20/+25 |
| | |||||
* | core: Fix stuffs (#354) | Jimmy Hu | 2018-12-04 | 2 | -2/+11 |
| | | | | | | - Add common.CustomLogger - CRS will wait for DKG to finish - Fix core.agreementMgr.processAgreementResult | ||||
* | core: construct consensus from syncer (#352) | Mission Liao | 2018-12-04 | 5 | -63/+225 |
| | |||||
* | core: Fix stuffs (#351) | Jimmy Hu | 2018-11-30 | 3 | -2/+10 |
| | | | | | | * Use non-blocking app in consensus core * Prevent panic when getting nextHeight | ||||
* | core: remove finalized from compaction-chain module (#350) | Mission Liao | 2018-11-30 | 3 | -345/+57 |
| | | | | | | | | | | | | * Remove extractFinalizedBlock * Fix/Remove tests related to extractFinalizedBlocks * Remove unused function * Provide randomness result from finalized blocks, nothing more. * Make init block matched with pendingBlocks[0] | ||||
* | test: Fix for state (#349) | Jimmy Hu | 2018-11-29 | 1 | -3/+23 |
| | | | | | | * Only apply each requests once * Sort by time | ||||
* | core: syncer: add syncer (#346) | haoping-ku | 2018-11-29 | 15 | -118/+1034 |
| | |||||
* | core: remove StronglyAcked (#347) | Mission Liao | 2018-11-29 | 8 | -90/+39 |
| | |||||
* | core: Fix stuffs (#342) | Jimmy Hu | 2018-11-27 | 6 | -160/+124 |
| | |||||
* | core: support NumChains change for BA modules (#339) | Mission Liao | 2018-11-20 | 12 | -317/+659 |
| | |||||
* | core: Add function alias (#341) | Jimmy Hu | 2018-11-20 | 1 | -0/+4 |
| | |||||
* | core: Block randomness will be processed again in finalized block (#338) | Jimmy Hu | 2018-11-20 | 3 | -78/+165 |
| | | | | | | * Process randomness result in finalized block if missed * Add test for missing block randomness | ||||
* | core, test: Fix various issues (#337) | Jimmy Hu | 2018-11-19 | 2 | -2/+4 |
| | |||||
* | core: Fix data race (#335) | Jimmy Hu | 2018-11-19 | 1 | -0/+2 |
| | |||||
* | core: Handle issues if DKG/CRS is already finished (#334) | Jimmy Hu | 2018-11-18 | 3 | -38/+28 |
| | |||||
* | core: Fix various syncing issue. (#331) | Jimmy Hu | 2018-11-16 | 4 | -19/+32 |
| | |||||
* | core: Add timeout to TSig (#330) | Jimmy Hu | 2018-11-15 | 2 | -1/+49 |
| | |||||
* | test: fix network (#328) | Mission Liao | 2018-11-15 | 4 | -81/+181 |
| | | | | * Broadcast to set of node instead of broadcasting when attaching cache. * Fix pull blocks | ||||
* | core: Fix issues in syncing mode (#329) | Jimmy Hu | 2018-11-15 | 3 | -0/+32 |
| | |||||
* | core: Fix syncing issues (#326) | Jimmy Hu | 2018-11-14 | 1 | -2/+9 |
| | | | | | | * BA should not start if governance is out-of-sync * Should not do sync BA if consensus is not started | ||||
* | utils: add utils package (#327) | Mission Liao | 2018-11-14 | 7 | -25/+18 |
| | |||||
* | core: sync logger with dex (#325) | Mission Liao | 2018-11-14 | 5 | -9/+11 |
| | |||||
* | core: Integrate totalOrdering syncer (#322) | Jimmy Hu | 2018-11-13 | 2 | -21/+29 |
| | |||||
* | core: expose implicit round shift (#321) | Mission Liao | 2018-11-13 | 13 | -55/+54 |
| | |||||
* | core: Fix data race. (#320) | Jimmy Hu | 2018-11-13 | 1 | -6/+8 |
| | | | Finalization.Randomness will be set at output | ||||
* | core: Fix data race (#319) | Jimmy Hu | 2018-11-13 | 1 | -0/+4 |
| | |||||
* | core: Reduce call to Application.VerifyBlock (#317) | Jimmy Hu | 2018-11-13 | 4 | -12/+61 |
| | |||||
* | core: lattice: fix test (#316) | haoping-ku | 2018-11-12 | 1 | -1/+1 |
| | |||||
* | test: add integration test (#315) | Mission Liao | 2018-11-11 | 4 | -13/+51 |
| | | | | | | * Rename NonByzantineTestSuite to WithSchedulerTestsuite * Add a method to query the latest position delivered * Add integration test for core.Consensus * Show detailed list for test cases in CI | ||||
* | test: implement pulling in network layer (#314) | Mission Liao | 2018-11-09 | 4 | -43/+580 |
| | | | | | | | * Add definition for test.PullRequest * Cache notary sets for each round in network module * Cache peers as nodeID in network module. * Implement pull blocks * Implement pull vote | ||||
* | core: Extract VoteHeader (#313) | Mission Liao | 2018-11-09 | 7 | -61/+45 |
| | |||||
* | core: consensus-timestamp: add comments (#312) | haoping-ku | 2018-11-09 | 2 | -26/+39 |
| | |||||
* | simulation: use test.Governacne in simulation (#311) | Mission Liao | 2018-11-08 | 7 | -41/+126 |
| | | | | | | | | | | | | * Move simulation.Network to test package * Use test.Governance in simulation * Pack/Apply state request in blocks payload * Add Governance.SwitchToRemoteMode This would trigger governance to broadcast pending state change requests when changes. * Allow to marshal/unmarshal packedStateChanges * Attach test.Network and test.State | ||||
* | core: Fix panic (#310) | Jimmy Hu | 2018-11-08 | 1 | -4/+11 |
| | | | | * Fix panic | ||||
* | core: lattice, total-ordering: remove newGenesisConfig (#308) | haoping-ku | 2018-11-08 | 7 | -159/+117 |
| | | | | | | * core: lattice, total-ordering: remove newGenesisConfig * fixup | ||||
* | core: revert the revert for broken commit and fix (#309) | Mission Liao | 2018-11-08 | 2 | -69/+80 |
| | | | | | | | | * Revert "Revert "core: unbind global round in Consensus (#304)" (#306)" This reverts commit 33d9311270414d8911122a4c7354773786df7f85. * Remove TODO After verified with full node, this call to VerifyBlock is not required. | ||||
* | core: Optimize core (#307) | Jimmy Hu | 2018-11-08 | 6 | -32/+60 |
| | |||||
* | Revert "core: unbind global round in Consensus (#304)" (#306) | Mission Liao | 2018-11-08 | 2 | -61/+59 |
| | | | This reverts commit 3714ebf2f1054d9984d37b89cf17e885a5856532. | ||||
* | test: make StateChangeRequest broadcast-able (#305) | Mission Liao | 2018-11-07 | 5 | -278/+445 |
| | | | | | | | | | | | | | | | | | | | | | | | | | Make `test.StateChangeRequest` behaves like tx on ethereum: - Can be broadcasted and cached in a pool. - Uniquely indexed, and be removed after applied. Changes: - Make cloneDKGx functions in test.State as utilities. - Add hash and timestamp fields to test.StateChangeRequest. - Add two methods to test.State: - PackOwnRequests would pack all pending change requests owned by this instance as byte slice, and move them to global pending requests pool. - AddRequestsFromOthers would add pending change requests from others to global pending requests pool. - The method State.PackRequests now would pack requests in global pending requests pool. - The method State.Apply would remove corresponding StateChangeRequest by hash. | ||||
* | core: lattice: add round in NewLattice() (#303) | haoping-ku | 2018-11-07 | 3 | -9/+10 |
| | |||||
* | core: unbind global round in Consensus (#304) | Mission Liao | 2018-11-06 | 2 | -59/+61 |
| | |||||
* | core: Run DKG stuffs only if the node is in DKG set (#302) | Jimmy Hu | 2018-11-06 | 9 | -26/+109 |
| | |||||
* | core: lattice-data: fix details and add test (#299) | haoping-ku | 2018-11-06 | 6 | -152/+167 |
| | |||||
* | core: Fix deadlock (#298) | Jimmy Hu | 2018-11-05 | 1 | -0/+9 |
| | |||||
* | test: move simulation.network to test package (#297) | Mission Liao | 2018-11-05 | 2 | -0/+440 |
| | |||||
* | core: notify consensus height for genesis rounds (#296) | Mission Liao | 2018-11-05 | 6 | -7/+47 |
| | | | | * Add notifyGenesisRounds * Log round for types.Vote and types.Block | ||||
* | core: Fix dkg and CRS signature (#294) | Jimmy Hu | 2018-11-05 | 4 | -19/+68 |
| | |||||
* | core: New BA (#295) | Jimmy Hu | 2018-11-05 | 2 | -5/+7 |
| | |||||
* | core: Fix BA stuffs (#293) | Jimmy Hu | 2018-11-05 | 2 | -3/+15 |
| | |||||
* | core: Copy witness for empty block (#292) | Jimmy Hu | 2018-11-05 | 1 | -0/+3 |
| | |||||
* | core: Fix fork vote (#290) | Jimmy Hu | 2018-11-03 | 3 | -16/+18 |
| | |||||
* | core: total-ordering: fix details and add sync test (#288) | Haoping Ku | 2018-11-02 | 3 | -309/+401 |
| | |||||
* | core: reset CRS in leader selector by round (#286) | Mission Liao | 2018-11-02 | 7 | -34/+28 |
| | |||||
* | core: block deliver with position (#289) | Mission Liao | 2018-11-02 | 8 | -19/+24 |
| | | | | | This info is required when application layer needs to do something related to the underlying DAG, not just compaction chain. | ||||
* | core: Remove max block interval (#287) | Jimmy Hu | 2018-11-02 | 13 | -77/+35 |
| | |||||
* | Rename repo to dexon-consensus | Wei-Ning Huang | 2018-11-02 | 89 | -682/+682 |
| | |||||
* | core: Fix various locking issues (#285) | Jimmy Hu | 2018-11-02 | 3 | -24/+40 |
| | |||||
* | core: Total Ordering syncer (#277) | Jimmy Hu | 2018-11-01 | 2 | -0/+485 |
| | | | | | | | | | | | | | | | | * Add simple processFinalizedBlock logic * processBlock * Bootstrap mode * Sort before flush * Add syncer test * Clean more data for memory * Add comments. Fix some stuffs. | ||||
* | core: core.Lattice supports config change (#276) | Mission Liao | 2018-11-01 | 6 | -30/+54 |
| | | | | | | | | | | | Besides making core.Lattice supports config change, This PR also include the first test for below scenario: - Configuration changes are registered before test running - Those changes are carried/broadcasted as payload of blocks - Only one node would initiate these changes, however, all nodes would finally receive/apply those changes to their own test.Governance instance. | ||||
* | core: fix possible fork vote (#283) | Jimmy Hu | 2018-11-01 | 2 | -15/+19 |
| | |||||
* | core: Add PullVotes to Network. (#281) | Jimmy Hu | 2018-10-31 | 7 | -71/+64 |
| | |||||
* | core: Add a repeat vote state. (#280) | Jimmy Hu | 2018-10-31 | 3 | -12/+105 |
| | |||||
* | core: fix NotifyRoundHeight is not called when processing blocks | Mission Liao | 2018-10-31 | 1 | -10/+16 |
| | | | - also add missing logs when calling Application.BlockDelivered. | ||||
* | core: fix lattice bugs (#274) | Mission Liao | 2018-10-30 | 3 | -5/+38 |
| | | | | | | | | | | | | | | | | | * Fix bug: the block pool is not resized. * Fix forward acking. * Fix panic when total ordering * Fix total ordering flush hang The blocks arrived first might be not delivered before other block. Therefore, if some last block of previous round arrived before last blocks in other chains, and are not delivered when entering flush mode. Their corresponding flush-ready flag won't be turned on. * Fix bug in core.latticeData Invalid chainID is not thrown when preparing blocks. | ||||
* | test: integrate state to gov (#275) | Mission Liao | 2018-10-30 | 3 | -9/+113 |
| | | | | | | * Fix dummy error * Check validity before apply state changes. * Add RegisterConfigChange method to test.Governance * Add SwitchToRemoteMode method to test.State | ||||
* | core: Create an interface for TSigVerifierCache (#273) | Jimmy Hu | 2018-10-30 | 1 | -7/+24 |
| | |||||
* | core: fix consensus timestamp (#272) | Mission Liao | 2018-10-29 | 1 | -2/+12 |
| | | | | | | | | | | | * Fix panic Assume DAG would be increased to 7 chains at round 4. When encounter the first block from round 4, this module would attempt to resize its working set to the numChains in round 2 or 3. * Add a check to make sure consensus timestamps are increasing * Fix consensus timestamp rewind | ||||
* | core: Add BlockSkeleton and Verify functions (#271) | Jimmy Hu | 2018-10-29 | 6 | -3/+75 |
| | |||||
* | core: Fix goroutine leaks (#270) | Jimmy Hu | 2018-10-29 | 2 | -1/+8 |
| | |||||
* | core: Do not process vote/block in agreement if it has stopped (#269) | Jimmy Hu | 2018-10-29 | 1 | -4/+18 |
| | |||||
* | core: Fix missing fields when cloning blocks. (#268) | Mission Liao | 2018-10-27 | 2 | -4/+33 |
| | |||||
* | core: Remove atomic (#266) | Jimmy Hu | 2018-10-27 | 2 | -14/+11 |
| | |||||
* | core: Unit test for BA sync (#265) | Jimmy Hu | 2018-10-26 | 2 | -0/+86 |
| | |||||
* | core: sync BA (#264) | Jimmy Hu | 2018-10-26 | 3 | -19/+72 |
| | |||||
* | test: clone types.Config, test.Governance, test.State (#262) | Mission Liao | 2018-10-26 | 6 | -42/+608 |
| | |||||
* | core: Pull block (#263) | Jimmy Hu | 2018-10-26 | 6 | -32/+116 |
| | |||||
* | core: Leader selector will retry sanityCheck (#261) | Jimmy Hu | 2018-10-26 | 7 | -26/+117 |
| | |||||
* | core: Lock entire lattice.ProcessBlock (#259) | Jimmy Hu | 2018-10-26 | 2 | -2/+7 |
| | | | | | | * Lock entire ProcessBlock * Lock Consensus.processBlock | ||||
* | misc: Add longer timeout for test in master (#258) | Jimmy Hu | 2018-10-25 | 1 | -7/+13 |
| | |||||
* | core: lattice sync (#257) | Jimmy Hu | 2018-10-25 | 11 | -98/+492 |
| | |||||
* | core: handle round 0 randomness in processFinalizedBlock (#256) | Jimmy Hu | 2018-10-25 | 2 | -12/+26 |
| | |||||
* | test: add test.Stopper to stop by round (#255) | Mission Liao | 2018-10-25 | 2 | -32/+162 |
| | |||||
* | core: Move dkg in types to types/dkg. (#253) | Jimmy Hu | 2018-10-25 | 15 | -250/+265 |
| | |||||
* | core: fix stuffs (#250) | Mission Liao | 2018-10-24 | 8 | -50/+32 |
| | | | | | | | | * fix discontinuous finalization height * remove types.Block.Witness.Timestamp field * add field: types.Block.Finalization.ParentHash * fix log format of CRS * switch round and chain in log of types.Position. | ||||
* | test: Fix datarace in test (#251) | Jimmy Hu | 2018-10-24 | 1 | -6/+12 |
| | |||||
* | test: add test.State (#239) | Mission Liao | 2018-10-24 | 10 | -149/+1012 |
| | | | | | | | | | * separate test utility and interface implementation for test.Governance. * add test.State. * integrate test.State to test.Governance. test.State is mainly used to emulate state propagation on fullnode. | ||||
* | core: disable nonblocking temporarily (#249) | Mission Liao | 2018-10-24 | 2 | -10/+5 |
| | |||||
* | core: reduce calls to Application.VerifyBlock (#247) | Mission Liao | 2018-10-24 | 4 | -28/+24 |
| | | | | | | * remove sanity check when adding blocks. * call VerifyBlock after lattice's sanity check. * remove checkRelation flag. | ||||
* | core: fix panic when proposed block is nil (#248) | Mission Liao | 2018-10-24 | 1 | -0/+4 |
| | |||||
* | core: Change interface of Application.VerifyBlock (#246) | Jimmy Hu | 2018-10-23 | 6 | -8/+23 |
| | | | | * Change interface of Application.VerifyBlock | ||||
* | Change BLS to dexon-foundation (#245) | Jimmy Hu | 2018-10-23 | 4 | -4/+4 |
| | |||||
* | core: notify fullnode to snapshot configs when round change. (#243) | Mission Liao | 2018-10-23 | 1 | -8/+19 |
| | |||||
* | core: add equality checker for dkg related structure (#237) | Mission Liao | 2018-10-23 | 4 | -26/+379 |
| | | | | | | | | | Besides adding equality, also renaming those fields. - PublicKeyShares.shares -> shareCaches - PublicKeyShares.shareIndex -> shareCacheIndex - rlpPublicKeyShares.Shares -> ShareCaches - rlpPublicKeyShares.ShareIndexK -> ShareCacheIndexK - rlpPublicKeyShares.ShareIndexV -> ShareCahceIndexV | ||||
* | core: add round parameter to ProposeCRS method (#244) | Wei-Ning Huang | 2018-10-23 | 4 | -4/+11 |
| | | | | | | | | Since all DKG set members may ProposeCRS, but only one will get through, we need to be able to tell which round the CRS is intended for in order to skip CRS submission of the same round. Also this commit add check to make sure we have enough master public key when initializing DKGGroupPublicKey. | ||||
* | simulation: Cache network broadcasted message (#242) | Jimmy Hu | 2018-10-23 | 1 | -10/+5 |
| | |||||
* | core: Change dkg timing (#241) | Jimmy Hu | 2018-10-23 | 1 | -12/+17 |
| | | | | | * Register DKG after CRS is proposed * Change round at only one place | ||||
* | core: remove duplicate BroadcastRandomnessResult call (#240) | Wei-Ning Huang | 2018-10-23 | 1 | -6/+1 |
| | |||||
* | core: prepare empty block if null block is confirmed by BA. (#231) | Jimmy Hu | 2018-10-23 | 7 | -23/+136 |
| | |||||
* | core: fix uninitialized variable in configuration chain (#238) | Wei-Ning Huang | 2018-10-22 | 2 | -1/+2 |
| | |||||
* | core: Handling self proposed DKG private share (#236) | Jimmy Hu | 2018-10-22 | 3 | -27/+34 |
| | |||||
* | core: total-ordering: add test TestRunFromNonGenesis (#226) | Haoping Ku | 2018-10-22 | 3 | -22/+96 |
| | | | | * core: total-ordering: add test TestRunFromNonGenesis | ||||
* | crypto: dkg: implement rlp.Encoder, rlp.Decoder for PrivateKey (#235) | Sonic | 2018-10-20 | 2 | -0/+26 |
| | |||||
* | core: fix logging for SendDKGPrivateShare (#234) | Wei-Ning Huang | 2018-10-20 | 1 | -1/+2 |
| | |||||
* | Start Run() until dMoment. (#233) | Jimmy Hu | 2018-10-20 | 1 | -0/+2 |
| | |||||
* | core: types: implement rlp.Encoder and rlp.Decoder (#232) | Sonic | 2018-10-20 | 6 | -7/+379 |
| | | | | | * core: types: implement rlp.Encoder and rlp.Decoder * crypto: dkg: fix PublicKey.Bytes | ||||
* | core: initial commit for logger (#228) | Mission Liao | 2018-10-19 | 9 | -50/+184 |
| | | | | | | | | | | | | | * Replace "log.*" with logger. * Add simple logger to log with log package. * Add debug logs to all calls to these interfaces: - core.Application - core.Governance - core.Network * Add Stringer to these types: - types.DKGComplaint - types.AgreementResult - types.DKGMasterPublicKey - types.DKGFinalize | ||||
* | misc: Fix simulation error (#230) | Jimmy Hu | 2018-10-19 | 3 | -20/+30 |
| | |||||
* | core: Sync from BA and test. (#224) | Jimmy Hu | 2018-10-19 | 2 | -64/+199 |
| | |||||
* | core: total-ordering: change early flag to mode (#227) | Haoping Ku | 2018-10-19 | 10 | -49/+64 |
| | | | * core: total-ordering: change early flag to mode | ||||
* | crypto: ecdsa: make NodeID match dexon address (#229) | Sonic | 2018-10-19 | 3 | -51/+35 |
| | | | | | | | * Remove publicKey struct * PublicKey.Bytes() return uncompressed public key to match the address format of dexon (Keccak256(pubBytes[1:])[12:], where pubBytes is 65 bytes uncompressed public key.). * Rename ethcrypto to dexCrypto | ||||
* | core: Append all config till Initial block (#225) | Jimmy Hu | 2018-10-18 | 1 | -0/+7 |
| | |||||
* | core: types: implements UnmarshalJSON from DKGMasterPublicKey (#223) | Wei-Ning Huang | 2018-10-18 | 1 | -0/+8 |
| | |||||
* | core: total ordering flush (#212) | Mission Liao | 2018-10-18 | 9 | -229/+737 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement flush * Panic for all errors from total-ordering * Fix test failure All DAGs generated by blocks-generator would trigger round switching. * Add NewBlocksGeneratorConfig * Add test caes for numChains changes * Resize internal structures * Perform total ordering based on current numChains * Fix not a valid DAG checking * Comparing blocks by height is not correct * Fix blocks from future round are delivered first by revealer * Make sure only picking one candidate in one chain. Blocks on the same chain in different rounds would not have acking relation. * Fix stuffs * Fix the issue that two candidates from the same chain are picked. * Rework candidateChainMapping * Add test case for phi, k changed * Refine testing code for round change * Add breakpoints in global vector * Remove not a valid dag checking. * Adding comments * Add check to forward acking * Fix vet failure * Prepareing height record with breakpoint * Fixup: add check to make sure delivered round IDs are increasing. | ||||
* | core: sync compaction chain (#222) | Jimmy Hu | 2018-10-18 | 6 | -27/+391 |
| | |||||
* | core: consensus-timestamp: add sync (#219) | Haoping Ku | 2018-10-18 | 3 | -29/+118 |
| | | | | | | | | | | | | | | * core: consensus-timestamp: add sync * core: consensus-timestamp: add config change * fix go comment * add config change test * fixup: add error case handling * fixup: round interleave | ||||
* | core: Add init block to Run() (#221) | Jimmy Hu | 2018-10-18 | 5 | -13/+23 |
| | |||||
* | core: Some sync functions (#220) | Jimmy Hu | 2018-10-17 | 6 | -26/+106 |
| | |||||
* | core: Rebroadcast agreement and randomness result. (#218) | Jimmy Hu | 2018-10-17 | 3 | -30/+49 |
| | |||||
* | core: genesis consensus timestamp (#217) | Mission Liao | 2018-10-17 | 4 | -29/+45 |
| | | | | | | | | | | * Refine the initial value for empty time slot. * Fix DATA RACE netowrkConnection is reset for each test, however, our Consensus instance is not stopped after one test is finished, they might continue use network interface for a while. | ||||
* | core: Add stop function to all components (#216) | Jimmy Hu | 2018-10-17 | 3 | -28/+53 |
| | |||||
* | Finalization Height starts from 1 (#215) | Jimmy Hu | 2018-10-16 | 2 | -0/+7 |
| | |||||
* | core: consensus-timestamp: modify for round change (#214) | Haoping Ku | 2018-10-16 | 1 | -4/+12 |
| | | | | | | * core: consensus-timestamp: modify for round change * core: consensus-timestamp: fix typos | ||||
* | core: New dexon ba (#210) | Jimmy Hu | 2018-10-16 | 8 | -479/+405 |
| | |||||
* | core: Fix corner cases (#211) | Jimmy Hu | 2018-10-16 | 4 | -2/+8 |
| | | | | | | * leader selector will choose smaller hash if distance to crs is the same * Set initial value of aID in BA before start | ||||
* | core: set genesis block finalization timestamp to zero time (#213) | Wei-Ning Huang | 2018-10-16 | 1 | -0/+2 |
| | |||||
* | core: Change First round dkg timing (#209) | Jimmy Hu | 2018-10-16 | 2 | -4/+6 |
| | |||||
* | core: fix block confirmed is not called when Debug is not implemented. (#208) | Mission Liao | 2018-10-16 | 2 | -3/+54 |
| | |||||
* | core: Change threshold (#205) | Jimmy Hu | 2018-10-15 | 1 | -1/+1 |
| | |||||
* | core: fix timestamp marshaling (#207) | Wei-Ning Huang | 2018-10-15 | 2 | -3/+3 |
| | |||||
* | Remove duplicated dMoment in Consensus.Run (#206) | Jimmy Hu | 2018-10-15 | 1 | -2/+4 |
| | |||||
* | core: Add NodeSetCacheInterface (#203) | Jimmy Hu | 2018-10-15 | 2 | -31/+42 |
| | |||||
* | core: Change DKG threshold (#204) | Jimmy Hu | 2018-10-15 | 3 | -6/+6 |
| | |||||
* | core: Fix simulation errors. (#202) | Jimmy Hu | 2018-10-15 | 3 | -34/+35 |
| | |||||
* | core: fix simulation error (#201) | Jimmy Hu | 2018-10-15 | 2 | -8/+13 |
| | | | | | * Sync dMoment for all consensus core * App check for randomness ignore round 0 | ||||
* | core: No randomness for round 0 (#198) | Jimmy Hu | 2018-10-15 | 3 | -1/+45 |
| | | | | | * No randomness for round 0 * Ignore round 0 randomness | ||||
* | core: check if flush is required when round switching in total-ordering (#197) | Mission Liao | 2018-10-15 | 6 | -220/+304 |
| | |||||
* | core: blocks generation supports rounds (#196) | Mission Liao | 2018-10-14 | 6 | -219/+445 |
| | | | | | | | * Block proposing based on timestamp, instead of count of blocks generated. * Add method to find tips of each round in blockdb. * Block proposing based on tips of last round found on blockdb. | ||||
* | core: crypto: ecdsa: add method to create PrivateKey from ecdsa.PrivateKey ↵ | Wei-Ning Huang | 2018-10-13 | 1 | -0/+9 |
| | | | | (#195) | ||||
* | core: modify interface (#194) | Mission Liao | 2018-10-12 | 7 | -16/+29 |
| | | | | * Add a new method to notify full node about round cutting. * Modify interface to return error when preparing block | ||||
* | core: latticeData supports config change (#190) | Mission Liao | 2018-10-12 | 12 | -594/+799 |
| | | | | | | | | | | | | | | | * Add test for num of chains changes. * Return error in latticeData.prepareBlock * Compare two positions * Modify chainStatus from height-based to index-based. * Fix consensus to use round variable * Remove sanity check in chainStatus * Fixup: refine sanity check - verify if round switching is required or not by chainTip's config. - make the logic in sanity check more clear - pospone acking relationship checking, they are more expensive to check. | ||||
* | core: change interface (#193) | Mission Liao | 2018-10-11 | 17 | -75/+94 |
| | | | | | | | * Extract types.FinalizationResult * Change interface: - Application.BlockConfirmed returns whole block. - Application.BlockDelivered returns partial result. | ||||
* | core: Move BlockConfirmed to Application interface (#192) | Mission Liao | 2018-10-11 | 3 | -5/+5 |
| | | | | | | | | When a block is confirmed, all its txs are permitted to be executed. Therefore, exporting this method provides more and earlier information about txs to be executed, and helps application layer to process txs more efficiently. | ||||
* | core: types: fix nodeID generation (#191) | Wei-Ning Huang | 2018-10-11 | 4 | -6/+10 |
| | | | | | Use ethereum style nodeID generation (keccak on compressed public key without the first byte). | ||||
* | Fix typo in crypto (#186) | Jimmy Hu | 2018-10-09 | 2 | -2/+16 |
| | |||||
* | core: Add round to DKG methods in gov. Change network interface name (#185) | Jimmy Hu | 2018-10-09 | 7 | -29/+39 |
| | |||||
* | core: Add DKG final message. (#181) | Jimmy Hu | 2018-10-09 | 11 | -2/+140 |
| | |||||
* | core: update config variable name grammar and remove configuration (#184) | Wei-Ning Huang | 2018-10-08 | 7 | -62/+24 |
| | |||||
* | core: Fix timestamp (#182) | Jimmy Hu | 2018-10-08 | 2 | -5/+1 |
| | |||||
* | core: Remove round from gov.ProposeCRS (#183) | Jimmy Hu | 2018-10-08 | 4 | -7/+14 |
| | |||||
* | core: Check PrivateShare in DKGComplaint (#180) | Jimmy Hu | 2018-10-08 | 2 | -25/+75 |
| | |||||
* | core: Add block randomness in compaction-chain module (#179) | Jimmy Hu | 2018-10-08 | 5 | -32/+150 |
| | |||||
* | core: Block randomness generation. (#178) | Jimmy Hu | 2018-10-08 | 4 | -7/+73 |
| | |||||
* | core: General tsig (#177) | Jimmy Hu | 2018-10-05 | 12 | -73/+254 |
| | |||||
* | core: Add NotarySet and DKGSet to cache (#176) | Jimmy Hu | 2018-10-05 | 3 | -27/+94 |
| | |||||
* | types: Test block clone (#175) | Jimmy Hu | 2018-10-05 | 2 | -0/+73 |
| | |||||
* | core: find block in db (#174) | Mission Liao | 2018-10-05 | 6 | -78/+195 |
| | | | | | | | | | | | | | | | | | | | | * Make sure block pool is large enough It's safe to use a larger blockPool when the number of chains is smaller. * Construct latticeData via config. * Seek acked blocks in blockdb when unable to find them in memory cache. In previous implementation, we assume our cache in memory is enough to perform DAG's sanity check. However, it's no longer true when the number of chains might be changed between rounds. * Simplify purge. Remove the relation to purge block by chainStatus. | ||||
* | core: Use event to run DKG and CRS in Consensus. (#171) | Jimmy Hu | 2018-10-04 | 3 | -46/+52 |
| | |||||
* | core: Check sorted ack in sanity check (#173) | Jimmy Hu | 2018-10-04 | 3 | -0/+21 |
| | |||||
* | core: split lattice-data to another file (#172) | Mission Liao | 2018-10-04 | 4 | -1058/+1069 |
| | | | | | - Split latticeData to another file - Remove areAllAcksInLattice | ||||
* | core: Check Witness height. Add ConsensusTime and ConsensusHeight to block. ↵ | Jimmy Hu | 2018-10-04 | 15 | -49/+125 |
| | | | | (#170) | ||||
* | test: Short test applied to some long running tests (#168) | Jimmy Hu | 2018-10-04 | 2 | -2/+11 |
| | |||||
* | core: remove NumWitnessSet in governance config (#167) | Wei-Ning Huang | 2018-10-03 | 2 | -8/+3 |
| | | | | NumWitnessSet is no longer required as we don't have witness set in the design anymore. | ||||
* | core: export some crypto verification function (#166) | Wei-Ning Huang | 2018-10-03 | 3 | -7/+9 |
| | | | | | verifyDKGMasterPublicKeySignature and verifyDKGComplaintSignature are needed in the governance contract to verify the signature. Export than so fullnode can use it. | ||||
* | core: publish round based config (#165) | Mission Liao | 2018-10-03 | 9 | -32/+145 |
| | |||||
* | core: Add unit test for DKG CRS in consensus (#163) | Jimmy Hu | 2018-10-03 | 3 | -4/+120 |
| | |||||
* | core: Prevent duplicated nack complaint (#162) | Jimmy Hu | 2018-10-03 | 2 | -1/+14 |
| | |||||
* | core: remove shard (#161) | Mission Liao | 2018-10-02 | 6 | -676/+613 |
| | |||||
* | core: Export DKGGroupPublicKey and its verify function (#160) | Jimmy Hu | 2018-10-02 | 3 | -18/+21 |
| | |||||
* | core: replace reliable-broadcast with shard (#159) | Mission Liao | 2018-10-02 | 13 | -1447/+255 |
| | |||||
* | core: remove ProposeThresholdSignature/GetThresholdSignature (#158) | Wei-Ning Huang | 2018-10-02 | 3 | -33/+3 |
| | | | Also rename the argument name of ProposeCRS. | ||||
* | core: run DKG and CRS at background. (#155) | Jimmy Hu | 2018-10-02 | 14 | -52/+134 |
| | |||||
* | core: update data model to reflect new model (#157) | Wei-Ning Huang | 2018-10-01 | 20 | -571/+45 |
| | | | | | | Update data model: 1) Remove witness ack. 2) Add round to block. 3) Update governance interface. | ||||
* | core: check block timestamp (#156) | Jimmy Hu | 2018-10-01 | 3 | -29/+73 |
| | |||||
* | test: Non-qualified node are accepted in test. (#154) | Jimmy Hu | 2018-10-01 | 4 | -12/+25 |
| | |||||
* | core: use notarySet for BA module. (#153) | Jimmy Hu | 2018-10-01 | 7 | -70/+96 |
| | |||||
* | core: integrate authenticator (#150) | Mission Liao | 2018-09-30 | 11 | -191/+152 |
| | |||||
* | test: tcp handshake (#151) | Jimmy Hu | 2018-09-30 | 1 | -49/+175 |
| | |||||
* | core: Allow more time for DKG to finish on CircleCI machine. (#152) | Jimmy Hu | 2018-09-29 | 1 | -1/+1 |
| | |||||
* | core: remove legacy mode (#149) | Mission Liao | 2018-09-28 | 5 | -65/+42 |
| | |||||
* | core: Add sizes of various nodeSets (#148) | Jimmy Hu | 2018-09-28 | 2 | -6/+51 |
| | |||||
* | core: hide types.NodeID from full node. (#147) | Mission Liao | 2018-09-28 | 15 | -208/+503 |
| | | | | | | | | | * Refine core.Governance interface - Remove types.NodeID from interface declaration. - All parameter should be round based. * Add core.NodeSetCache * Agreement accepts map of nodeID directly. * test.Transport.Peers method return public keys. | ||||
* | types: NodeSet and Selector (#146) | Jimmy Hu | 2018-09-27 | 2 | -0/+203 |
| | |||||
* | core: update governance interface and config (#145) | Wei-Ning Huang | 2018-09-27 | 5 | -35/+37 |
| | | | | | | 1) Remove RoundHeight from config. 2) NotarySet is not from governance contract, we get Node set intead. Notary set is caculated from the NodeSet using CRS. 3) CRS is not in the governance interface. |