aboutsummaryrefslogtreecommitdiffstats
path: root/dex/backend.go
Commit message (Collapse)AuthorAgeFilesLines
* backport from v1.8.23 (#304)Sonic2019-04-091-1/+1
| | | | | | | | | | | | | | | | | | * 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: fix fast sync in BP mode (#291)Wei-Ning Huang2019-04-091-1/+14
| | | | Start blockproposer only after fast sync is completed (received ChainHead event), so watchcat is not falsely triggered.
* dex: properly shutdown protocol stack (#267)Wei-Ning Huang2019-04-091-3/+8
|
* dex: properly start and stop the block proposer module (#264)Wei-Ning Huang2019-04-091-8/+7
| | | | 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 Huang2019-04-091-2/+2
| | | | | | 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 Huang2019-04-091-1/+7
| | | | | | | | | * dex: implement recovery mechanism The DEXON recovery protocol allows us to use the Ethereum blockchain as a fallback consensus chain to coordinate recovery. * fix
* dex: rename IsLatticeSyncing to IsCoreSyncing (#238)Wei-Ning Huang2019-04-091-2/+2
|
* p2p, dex: rework connection management (#183)Sonic2019-04-091-1/+0
| | | | | | * p2p, dex: rework connection management * dex: refresh our node record periodically * dex: don't send new record event if no new record
* vendor: sync to latest core (#154)Jimmy Hu2019-04-091-0/+1
| | | | | | * vendor: sync to latest core with BA3.0 * params: Update dmoment
* app: remove pending block logic (#149)bojie2019-04-091-1/+1
|
* params: write dMoment into ChainConfig (#150)Wei-Ning Huang2019-04-091-4/+3
|
* consensus: implement DEXON cryptoeconomics v4.0 (#145)Wei-Ning Huang2019-04-091-1/+1
|
* dex: replace NodeMeta with ENR (#132)Sonic2019-04-091-1/+1
|
* indexer: support data exporting/forwarding (#103)Meng-Ying Yang2019-04-091-0/+14
| | | | | | | | | 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.
* core, dex, internal: block proposer syncing (first iteration) (#96)Sonic2019-04-091-16/+25
| | | | | | | | | | | | | | | | | | | | | | * 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.
* dex: stop consensus core (#93)Jimmy Hu2019-04-091-0/+1
|
* vendor: sync to latest core (#91)Mission Liao2019-04-091-2/+2
| | | | | | - Implement new methods in db to cache DKG private key. - Implement new methods in db to cache compaction chain tip.
* dex, cmd: Add DMoment to command line (#87)Jimmy Hu2019-04-091-6/+2
|
* vendor: sync to latest core and fix conflict (#79)Jimmy Hu2019-04-091-2/+1
|
* core, dex: polish sync (#75)Sonic2019-04-091-1/+2
| | | | | | | | | | | | | | | - 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: add app test case and benchmark (#66)bojie2019-04-091-1/+1
|
* Fix lintWei-Ning Huang2019-04-091-1/+1
|
* dex: use dex/downloader in dexSonic2019-04-091-10/+10
| | | | | To compatible with ethereum code base, make Downloader a interface in internal/ethapi
* dex: add BlockDB, which implements consensus core's blockdb.BlockDatabase (#36)Sonic2019-04-091-11/+2
|
* core: fix light node synchronization issue (#30)Wei-Ning Huang2019-04-091-0/+1
| | | | | InsertChain() need to record the correct roundHeight mapping in order to process snapshotRoundHeight() governance method correctly.
* core: refactor validator and fix light node sync (#25)Wei-Ning Huang2019-04-091-4/+3
| | | | | | | | 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 Huang2019-04-091-1/+1
| | | | We did not change anything in eth/gasprice, don't copy it into dex.
* app: fix core testBJ42019-04-091-1/+2
|
* test: start a separate RPC node for testing block syncWei-Ning Huang2019-04-091-9/+2
|
* Rename import due to dexon-consensus renameWei-Ning Huang2019-04-091-9/+9
|
* dex: fix round switching and initialize dMoment correctlyWei-Ning Huang2019-04-091-1/+8
|
* geth: add propose flag to enable/disable proposingSonic2019-04-091-0/+7
|
* dex: pass logger object to consensus coreWei-Ning Huang2019-04-091-1/+1
|
* consensus: dexcon: fetch config from stateWei-Ning Huang2019-04-091-1/+7
|
* dex: add initial block to RunJimmy Hu2019-04-091-1/+3
|
* dex: register ethereum APIsWei-Ning Huang2019-04-091-1/+38
|
* hack: temp fix for running testsWei-Ning Huang2019-04-091-1/+4
|
* dex: add subprotocolsSonic2019-04-091-1/+1
|
* dex: run consensus core on StartWei-Ning Huang2019-04-091-0/+1
|
* app: add default block rewardBojie Wu2019-04-091-1/+1
|
* dex: set tmp dMoment for testingWei-Ning Huang2019-04-091-1/+2
|
* dex: add self node meta after StartSonic2019-04-091-0/+1
|
* dex: move dexcon blockdb into datadirWei-Ning Huang2019-04-091-1/+3
|
* dex: interface updateWei-Ning Huang2019-04-091-1/+3
|
* dex: network: implement the network interfaceSonic2019-04-091-5/+30
|
* dex: bug fix to allow running geth without crashingWei-Ning Huang2019-04-091-3/+6
|
* dex: implement sendTx related governance methodsWei-Ning Huang2019-04-091-1/+1
|
* dex: pass p2p nodeKey to Dexon instanceWei-Ning Huang2019-04-091-8/+4
|
* dex: implement some governance interface functionsWei-Ning Huang2019-04-091-1/+1
|
* dex: governance: implement governance interfaceWei-Ning Huang2019-04-091-11/+21
|
* dex: add api_backend.go and it's dependenciesWei-Ning Huang2019-04-091-2/+13
|
* dex: implement dexon application interfaceBojie Wu2019-04-091-4/+66
|
* dex: update consensus core interfaceWei-Ning Huang2019-04-091-5/+4
|
* Change import go github.com/dexon-foundation/dexonWei-Ning Huang2019-04-091-10/+10
|
* Use dex.Config instead of eth.ConfigWei-Ning Huang2019-04-091-14/+2
|
* dex: fix use of internal package not allowedSonic2019-04-091-1/+1
|
* dex: make geth buildable and update interface skeletonWei-Ning Huang2019-04-091-0/+107
|
* Add dex packageWei-Ning Huang2019-04-091-0/+22