diff --git a/Bootstrap.go b/Bootstrap.go index 74a0038..9e1c422 100644 --- a/Bootstrap.go +++ b/Bootstrap.go @@ -195,6 +195,11 @@ func autoMulticastBroadcast() { } func contactArbitraryPeer(publicKey *btcec.PublicKey, ip net.IP, port uint16) { + // check first if peer is already in the list! + if peer := PeerlistLookup(publicKey); peer != nil { + return + } + packets, err := msgEncodeAnnouncement(true, true, nil, nil, nil) if len(packets) == 0 || err != nil { return diff --git a/Peer ID.go b/Peer ID.go index 52f7e36..a8da7b4 100644 --- a/Peer ID.go +++ b/Peer ID.go @@ -112,6 +112,9 @@ func PeerlistRemove(peer *PeerInfo) { peerlistMutex.Lock() defer peerlistMutex.Unlock() + // remove from Kademlia + nodesDHT.RemoveNode(peer.NodeID) + delete(peerList, publicKey2Compressed(peer.PublicKey)) }