dcrd/internal/netsync
Dave Collins a174273956
netsync: Improve is current detection.
This modifies the logic that deals with determining if the sync manager
believes the chain is current (aka fully synced) to ensure some edge
conditions are handled properly.

For example, it will now update the state after processing each block
instead of only after processing a block along with any orphans that it
caused to no longer be orphans.

It also now potentially updates the status on every call to the
IsCurrent in order to ensure it is updated properly for callbacks during
block processing.
2020-12-21 12:11:07 -06:00
..
doc.go netsync: Add package documentation. 2020-12-15 13:26:57 -06:00
interface.go multi: Start dcrutil v4 module dev cycle. 2020-12-16 16:30:24 -06:00
log.go netsync: Split blockmanager into separate package. 2020-12-15 13:26:30 -06:00
manager.go netsync: Improve is current detection. 2020-12-21 12:11:07 -06:00
README.md netsync: Add package documentation. 2020-12-15 13:26:57 -06:00

netsync

Build Status ISC License Doc

Package netsync implements a concurrency safe block syncing protocol.

Overview

The provided implementation of SyncManager communicates with connected peers to perform an initial block download, keep the chain 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.

License

Package netsync is licensed under the copyfree ISC License.