diff options
author | Sonic <sonic@dexon.org> | 2018-12-04 16:13:41 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 13:49:58 +0800 |
commit | 51d21c470dd81fd1a4d86c510e50ac3cc839386a (patch) | |
tree | 386af0fe10c44521577face9146cf481684354e2 /dex/sync.go | |
parent | 85a4531d7398e0b1bee70ca8c2e0651483f9fc14 (diff) | |
download | dexon-51d21c470dd81fd1a4d86c510e50ac3cc839386a.tar dexon-51d21c470dd81fd1a4d86c510e50ac3cc839386a.tar.gz dexon-51d21c470dd81fd1a4d86c510e50ac3cc839386a.tar.bz2 dexon-51d21c470dd81fd1a4d86c510e50ac3cc839386a.tar.lz dexon-51d21c470dd81fd1a4d86c510e50ac3cc839386a.tar.xz dexon-51d21c470dd81fd1a4d86c510e50ac3cc839386a.tar.zst dexon-51d21c470dd81fd1a4d86c510e50ac3cc839386a.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) } } |