Skip to content

Commit

Permalink
p2p: shed peers from store from other networks (backport #8678) (#8681)
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Jun 2, 2022
1 parent e17e6b1 commit 0e3a3fe
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions internal/p2p/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,15 @@ func (r *Router) handshakePeer(
if err = peerInfo.Validate(); err != nil {
return peerInfo, peerKey, fmt.Errorf("invalid handshake NodeInfo: %w", err)
}

if peerInfo.Network != r.nodeInfo.Network {
if err := r.peerManager.store.Delete(peerInfo.NodeID); err != nil {
return peerInfo, peerKey, fmt.Errorf("problem removing peer from store from incorrect network [%s]: %w", peerInfo.Network, err)
}

return peerInfo, peerKey, fmt.Errorf("connected to peer from wrong network, %q, removed from peer store", peerInfo.Network)
}

if types.NodeIDFromPubKey(peerKey) != peerInfo.NodeID {
return peerInfo, peerKey, fmt.Errorf("peer's public key did not match its node ID %q (expected %q)",
peerInfo.NodeID, types.NodeIDFromPubKey(peerKey))
Expand All @@ -843,6 +852,7 @@ func (r *Router) handshakePeer(
return peerInfo, peerKey, fmt.Errorf("expected to connect with peer %q, got %q",
expectID, peerInfo.NodeID)
}

if err := r.nodeInfo.CompatibleWith(peerInfo); err != nil {
return peerInfo, peerKey, ErrRejected{
err: err,
Expand Down

0 comments on commit 0e3a3fe

Please sign in to comment.