e48200f53a
In the cuurent codebase, OnGetData() handler penalizes / ban peers requesting large blocks. server.go: @@ -649,7 +649,7 @@ func (sp *serverPeer) OnGetData(_ *peer.Peer, msg *wire.MsgGetData) { // bursts of small requests are not penalized as that would potentially ban // peers performing IBD. // This incremental score decays each minute to half of its value. if sp.addBanScore(0, uint32(length)*99/wire.MaxInvPerMsg, "getdata") { return } This accidentally penalize nodes trying to catch up checkpoints whose 'getdata' requests would be as large as the wire.MaxInvPerMsg, and get banned very soon. This patch limit getdata request to wire.MaxInvPerMsg/99 blocks. |
||
---|---|---|
.. | ||
blocklogger.go | ||
doc.go | ||
interface.go | ||
log.go | ||
manager.go | ||
README.md |
netsync
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.