lbcd/netsync
Conner Fromknecht e7f9935099
netsync/manager: add syncPeer stall detector
Adds stall detection when no blocks have been received from the sync
peer for at least 3 minutes.

The change backports parts of https://github.com/gcash/bchd/pull/105,
though has different behavior, such as:
 - Rotating the sync peer at tip.
 - Only disconnecting the sync peer if they're height exceeds our own.
   Since we will instead rotate the sync peer at tip, this prevents us
   from disconnecting good peers while waiting for new blocks.
 - Not resetting the progress time when blocks are submitted via rpc.
2019-04-26 17:20:57 -07:00
..
blocklogger.go netsync: Initialize netsync package. 2017-08-25 13:41:22 -05:00
doc.go netsync: Change name of blockManager to syncManager. 2017-08-25 13:41:22 -05:00
interface.go multi: correct all import paths 2018-05-23 16:46:15 -07:00
log.go netsync: Use package-local logger. 2017-08-25 13:41:22 -05:00
manager.go netsync/manager: add syncPeer stall detector 2019-04-26 17:20:57 -07:00
README.md netsync: Change name of blockManager to syncManager. 2017-08-25 13:41:22 -05:00

netsync

Build Status ISC License GoDoc

Overview

This package implements a concurrency safe block syncing protocol. The SyncManager communicates with connected peers to perform an initial block download, keep the chain and unconfirmed transaction pool in sync, and announce new blocks connected to the chain. Currently the sync manager selects a single sync peer that it downloads all blocks from until it is up to date with the longest chain the sync peer is aware of.

Installation and Updating

$ go get -u github.com/btcsuite/btcd/netsync

License

Package netsync is licensed under the copyfree ISC License.