Merge pull request #1625 from yyforyongyu/fix-notfound-message

btcd+netsync: support witness tx and block in notfound msg
This commit is contained in:
Olaoluwa Osuntokun 2020-09-08 16:58:19 -07:00 committed by GitHub
commit 9ef973c282
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 0 deletions

View file

@ -1031,11 +1031,16 @@ func (sm *SyncManager) handleNotFoundMsg(nfmsg *notFoundMsg) {
// verify the hash was actually announced by the peer
// before deleting from the global requested maps.
switch inv.Type {
case wire.InvTypeWitnessBlock:
fallthrough
case wire.InvTypeBlock:
if _, exists := state.requestedBlocks[inv.Hash]; exists {
delete(state.requestedBlocks, inv.Hash)
delete(sm.requestedBlocks, inv.Hash)
}
case wire.InvTypeWitnessTx:
fallthrough
case wire.InvTypeTx:
if _, exists := state.requestedTxns[inv.Hash]; exists {
delete(state.requestedTxns, inv.Hash)

View file

@ -1321,8 +1321,12 @@ func (sp *serverPeer) OnNotFound(p *peer.Peer, msg *wire.MsgNotFound) {
switch inv.Type {
case wire.InvTypeBlock:
numBlocks++
case wire.InvTypeWitnessBlock:
numBlocks++
case wire.InvTypeTx:
numTxns++
case wire.InvTypeWitnessTx:
numTxns++
default:
peerLog.Debugf("Invalid inv type '%d' in notfound message from %s",
inv.Type, sp)