diff --git a/net/peerservice/peerservice.go b/net/peerservice/peerservice.go index eda1d8c8..8215ba76 100644 --- a/net/peerservice/peerservice.go +++ b/net/peerservice/peerservice.go @@ -20,7 +20,8 @@ const CName = "net.peerservice" var log = logger.NewNamed(CName) var ( - ErrAddrsNotFound = errors.New("addrs for peer not found") + ErrAddrsNotFound = errors.New("addrs for peer not found") + ErrPeerIdMismatched = errors.New("peerId mismatched") ) func New() PeerService { @@ -79,6 +80,13 @@ func (p *peerService) Dial(ctx context.Context, peerId string) (pr peer.Peer, er if err != nil { return } + connPeerId, err := peer.CtxPeerId(mc.Context()) + if err != nil { + return nil, err + } + if connPeerId != peerId { + return nil, ErrPeerIdMismatched + } return peer.NewPeer(mc, p.server) }