whisper: fixed full node

This commit is contained in:
Vlad 2018-02-09 15:03:09 +01:00
parent 8979a83284
commit 4b34c24cff

View file

@ -54,6 +54,8 @@ func newPeer(host *Whisper, remote *p2p.Peer, rw p2p.MsgReadWriter) *Peer {
powRequirement: 0.0, powRequirement: 0.0,
known: set.New(), known: set.New(),
quit: make(chan struct{}), quit: make(chan struct{}),
bloomFilter: makeFullNodeBloom(),
fullNode: true,
} }
} }
@ -229,12 +231,15 @@ func (peer *Peer) bloomMatch(env *Envelope) bool {
func (peer *Peer) setBloomFilter(bloom []byte) { func (peer *Peer) setBloomFilter(bloom []byte) {
peer.bloomFilter = bloom peer.bloomFilter = bloom
peer.fullNode = isFullNode(bloom) peer.fullNode = isFullNode(bloom)
if peer.fullNode { if peer.fullNode && peer.bloomFilter == nil {
if peer.bloomFilter == nil { peer.bloomFilter = makeFullNodeBloom()
peer.bloomFilter = make([]byte, bloomFilterSize) }
}
func makeFullNodeBloom() []byte {
bloom := make([]byte, bloomFilterSize)
for i := 0; i < bloomFilterSize; i++ { for i := 0; i < bloomFilterSize; i++ {
peer.bloomFilter[i] = 0xFF bloom[i] = 0xFF
}
}
} }
return bloom
} }