diff options
author | Sonic <sonic@dexon.org> | 2018-12-04 16:13:41 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2018-12-19 20:54:27 +0800 |
commit | 02aa58a9e0fd226c5efa207f94118a5e615212ce (patch) | |
tree | a13d8df37bd90d91bcb96bbc52af4b07d8d0980f /dex/sync.go | |
parent | 601a0810c5372785797f7384fda057a9d1861138 (diff) | |
download | dexon-02aa58a9e0fd226c5efa207f94118a5e615212ce.tar dexon-02aa58a9e0fd226c5efa207f94118a5e615212ce.tar.gz dexon-02aa58a9e0fd226c5efa207f94118a5e615212ce.tar.bz2 dexon-02aa58a9e0fd226c5efa207f94118a5e615212ce.tar.lz dexon-02aa58a9e0fd226c5efa207f94118a5e615212ce.tar.xz dexon-02aa58a9e0fd226c5efa207f94118a5e615212ce.tar.zst dexon-02aa58a9e0fd226c5efa207f94118a5e615212ce.zip |
dex: replace total difficulty with block number (#73)
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.
Diffstat (limited to 'dex/sync.go')
-rw-r--r-- | dex/sync.go | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/dex/sync.go b/dex/sync.go index b6a8035d4..43f1291ff 100644 --- a/dex/sync.go +++ b/dex/sync.go @@ -257,12 +257,13 @@ func (pm *ProtocolManager) synchronise(peer *peer) { if peer == nil { return } - // Make sure the peer's TD is higher than our own + // Make sure the peer's number is higher than our own currentBlock := pm.blockchain.CurrentBlock() - td := pm.blockchain.GetTd(currentBlock.Hash(), currentBlock.NumberU64()) + number := currentBlock.NumberU64() - pHead, pTd := peer.Head() - if pTd.Cmp(td) <= 0 { + pHead, pNumber := peer.Head() + + if pNumber <= number { return } // Otherwise try to sync with the downloader @@ -282,13 +283,13 @@ func (pm *ProtocolManager) synchronise(peer *peer) { if mode == downloader.FastSync { // Make sure the peer's total difficulty we are synchronizing is higher. - if pm.blockchain.GetTdByHash(pm.blockchain.CurrentFastBlock().Hash()).Cmp(pTd) >= 0 { + if pm.blockchain.CurrentFastBlock().NumberU64() >= pNumber { return } } // Run the sync cycle, and disable fast sync if we've went past the pivot block - if err := pm.downloader.Synchronise(peer.id, pHead, pTd, mode); err != nil { + if err := pm.downloader.Synchronise(peer.id, pHead, pNumber, mode); err != nil { return } if atomic.LoadUint32(&pm.fastSync) == 1 { @@ -302,7 +303,7 @@ func (pm *ProtocolManager) synchronise(peer *peer) { // all its out-of-date peers of the availability of a new block. This failure // scenario will most often crop up in private and hackathon networks with // degenerate connectivity, but it should be healthy for the mainnet too to - // more reliably update peers or the local TD state. + // more reliably update peers or the local number state. go pm.BroadcastBlock(head, false) } } |