Look up filters from p2p GetCBF message

This commit is contained in:
pedro martelletto 2017-01-12 15:28:27 +00:00 committed by Olaoluwa Osuntokun
parent 76926f8904
commit 43bf8db793
2 changed files with 19 additions and 2 deletions

View file

@ -156,6 +156,17 @@ func (idx *CBFIndex) DisconnectBlock(dbTx database.Tx, block *btcutil.Block, vie
return nil
}
func (idx *CBFIndex) GetFilterByBlockHash(hash *chainhash.Hash) ([]byte,
error) {
var filterBytes []byte
err := idx.db.View(func(dbTx database.Tx) error {
var err error
filterBytes, err = dbFetchCBFIndexEntry(dbTx, hash)
return err
})
return filterBytes, err
}
// NewCBFIndex returns a new instance of an indexer that is used to create a
// mapping of the hashes of all blocks in the blockchain to their respective
// committed bloom filters.

View file

@ -746,8 +746,14 @@ func (sp *serverPeer) OnGetCBFilter(_ *peer.Peer, msg *wire.MsgGetCBFilter) {
return
}
// XXX work in progress
peerLog.Warnf("received OnGetCBFilter: not yet")
filterBytes, err := sp.server.cbfIndex.GetFilterByBlockHash(&msg.BlockHash)
if len(filterBytes) > 0 {
peerLog.Infof("Obtained CB filter for %v", msg.BlockHash)
} else {
peerLog.Infof("Could not obtain CB filter for %v: %v",
msg.BlockHash, err)
}
}
// enforceNodeBloomFlag disconnects the peer if the server is not configured to