lbcd/netsync
Roy Lee e48200f53a [lbry] wire: limit the blocks of getdata message
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.
2022-05-25 22:00:38 -07:00
..
blocklogger.go [lbry] rename btcd to lbcd 2022-05-23 23:53:30 -07:00
doc.go netsync: Change name of blockManager to syncManager. 2017-08-25 13:41:22 -05:00
interface.go [lbry] fees: replace estimatefee with esimatesmartfee 2022-05-24 00:04:19 -07:00
log.go netsync: Use package-local logger. 2017-08-25 13:41:22 -05:00
manager.go [lbry] wire: limit the blocks of getdata message 2022-05-25 22:00:38 -07:00
README.md [lbry] docs: update docs for LBRY 2022-05-24 00:01:46 -07:00

netsync

ISC License

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.