aboutsummaryrefslogtreecommitdiffstats
path: root/dex/protocol.go
Commit message (Collapse)AuthorAgeFilesLines
* dex: Add a flag to GetBlockHeadersMsg and GetBlockBodiesMsg (#188)Sonic2019-02-121-1/+26
| | | | | | | | | * 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: rework connection management (#183)Sonic2019-01-311-4/+0
| | | | | | * p2p, dex: rework connection management * dex: refresh our node record periodically * dex: don't send new record event if no new record
* params: write dMoment into ChainConfig (#150)Wei-Ning Huang2019-01-141-0/+3
|
* dex: replace NodeMeta with ENR (#132)Sonic2019-01-141-1/+1
|
* dex: add pull randomness (#105)Jimmy Hu2018-12-281-3/+4
| | | | | * vendor: sync to latest core * dex: Add PullRandomness
* core, dex: polish sync (#75)Sonic2018-12-191-0/+5
| | | | | | | | | | | | | | | - 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.
* dex: replace total difficulty with block number (#73)Sonic2018-12-191-3/+1
| | | | | | | 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, downloader: refactor governanceSonic2018-12-191-2/+1
|
* dex: implement downloader for dexSonic2018-12-191-1/+9
| | | | | | | | | | | 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: remove useless codeSonic2018-12-191-115/+0
|
* Rename import due to dexon-consensus renameWei-Ning Huang2018-12-191-5/+5
|
* dex: implement PullBlocks/PullVotes (#1)Jimmy Hu2018-12-191-1/+20
|
* dex: no need to rlp encode/decode now, consensus supports itSonic2018-12-191-4/+2
|
* dex: implement peerSetLoopSonic2018-12-191-0/+2
|
* dex: gov: using dex-consensus-core NodeSetCacheSonic2018-12-191-2/+2
|
* dex: add self node meta after StartSonic2018-12-191-0/+3
|
* dex: add method to get NumChains, NotarySet, DKGSet easilySonic2018-12-191-5/+3
|
* dex: network: implement the network interfaceSonic2018-12-191-1/+133
|
* dex: redesign p2p network topologySonic2018-12-191-25/+17
| | | | | | | | | | - 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.
* Change import go github.com/dexon-foundation/dexonWei-Ning Huang2018-12-191-8/+8
|
* dex: implement notary node info propagation and management mechanismSonic2018-12-191-1/+10
|
* dex: introduce dex64 and remove eth62, eth63Sonic2018-12-191-5/+29
|
* Change package name from eth to dexSonic2018-12-191-1/+1
|
* Copy codebase from ethSonic2018-12-191-0/+183