Commit 919d81fd authored by Yusef Napora's avatar Yusef Napora Committed by vyzo

track changes to peer records in -core

parent 5b0ec14e
......@@ -3,6 +3,7 @@ package pubsub
import (
"context"
"fmt"
"github.com/libp2p/go-libp2p-core/record"
"math/rand"
"time"
......@@ -13,7 +14,6 @@ import (
"github.com/libp2p/go-libp2p-core/peer"
"github.com/libp2p/go-libp2p-core/peerstore"
"github.com/libp2p/go-libp2p-core/protocol"
"github.com/libp2p/go-libp2p-core/routing"
)
const (
......@@ -93,7 +93,7 @@ type GossipSubRouter struct {
type connectInfo struct {
p peer.ID
srr *routing.SignedRoutingState
spr *record.Envelope
}
func (gs *GossipSubRouter) Protocols() []protocol.ID {
......@@ -306,19 +306,23 @@ func (gs *GossipSubRouter) pxConnect(peers []*pb.PeerInfo) {
continue
}
var srr *routing.SignedRoutingState
var err error
if pi.SignedAddrs != nil {
var srr *record.Envelope
if pi.SignedPeerRecord != nil {
// the peer sent us a signed record; ensure that it is valid
srr, err = routing.UnmarshalSignedRoutingState(pi.SignedAddrs)
envelope, r, err := record.ConsumeEnvelope(pi.SignedPeerRecord, peer.PeerRecordEnvelopeDomain)
if err != nil {
log.Warningf("error unmarshalling routing record obtained through px: %s", err)
continue
}
if srr.PeerID != p {
log.Warningf("bogus routing record obtained through px: peer ID %s doesn't match expected peer %s", srr.PeerID, p)
rec, ok := r.(*peer.PeerRecord)
if !ok {
log.Warnf("bogus routing record obtained through px: envelope payload is not PeerRecord")
}
if rec.PeerID != p {
log.Warnf("bogus routing record obtained through px: peer ID %s doesn't match expected peer %s", rec.PeerID, p)
continue
}
srr = envelope
}
toconnect = append(toconnect, connectInfo{p, srr})
......@@ -347,8 +351,12 @@ func (gs *GossipSubRouter) connector() {
}
log.Debugf("connecting to %s", ci.p)
if ci.srr != nil {
gs.p.host.Peerstore().AddCertifiedAddrs(ci.srr, peerstore.TempAddrTTL)
cab, ok := peerstore.GetCertifiedAddrBook(gs.p.host.Peerstore())
if ok && ci.spr != nil {
err := cab.ProcessPeerRecord(ci.spr, peerstore.TempAddrTTL)
if err != nil {
log.Debugf("error processing peer record: %s", err)
}
}
ctx, cancel := context.WithTimeout(gs.p.ctx, GossipSubConnectionTimeout)
......@@ -822,21 +830,24 @@ func (gs *GossipSubRouter) makePrune(p peer.ID, topic string) *pb.ControlPrune {
return p != xp
})
cab, peerstoreSupportsSignedAddrs := peerstore.GetCertifiedAddrBook(gs.p.host.Peerstore())
px := make([]*pb.PeerInfo, 0, len(peers))
for _, p := range peers {
// see if we have a signed address record to send back; if we don't, just send
// see if we have a signed peer record to send back; if we don't, just send
// the peer ID and let the pruned peer find them in the DHT -- we can't trust
// unsigned address records through px anyway.
srr := gs.p.host.Peerstore().SignedRoutingState(p)
var saddrs []byte
var err error
if srr != nil {
saddrs, err = srr.Marshal()
if err != nil {
log.Warningf("error marshaling signed routing state for %s: %s", p, err)
var recordBytes []byte
if peerstoreSupportsSignedAddrs {
spr := cab.GetPeerRecord(p)
var err error
if spr != nil {
recordBytes, err = spr.Marshal()
if err != nil {
log.Warnf("error marshaling signed peer record for %s: %s", p, err)
}
}
}
px = append(px, &pb.PeerInfo{PeerID: []byte(p), SignedAddrs: saddrs})
px = append(px, &pb.PeerInfo{PeerID: []byte(p), SignedPeerRecord: recordBytes})
}
return &pb.ControlPrune{TopicID: &topic, Peers: px}
......
......@@ -589,7 +589,7 @@ func (m *ControlPrune) GetPeers() []*PeerInfo {
type PeerInfo struct {
PeerID []byte `protobuf:"bytes,1,opt,name=peerID" json:"peerID,omitempty"`
SignedAddrs []byte `protobuf:"bytes,2,opt,name=signedAddrs" json:"signedAddrs,omitempty"`
SignedPeerRecord []byte `protobuf:"bytes,2,opt,name=signedPeerRecord" json:"signedPeerRecord,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -635,9 +635,9 @@ func (m *PeerInfo) GetPeerID() []byte {
return nil
}
func (m *PeerInfo) GetSignedAddrs() []byte {
func (m *PeerInfo) GetSignedPeerRecord() []byte {
if m != nil {
return m.SignedAddrs
return m.SignedPeerRecord
}
return nil
}
......@@ -835,48 +835,48 @@ func init() {
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_77a6da22d6a3feb1) }
var fileDescriptor_77a6da22d6a3feb1 = []byte{
// 650 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcd, 0x6e, 0xd3, 0x40,
0x10, 0xc7, 0xd9, 0x38, 0xa9, 0xe3, 0x89, 0x5b, 0xa2, 0x05, 0x15, 0x13, 0x55, 0x51, 0x64, 0x24,
0x14, 0xa0, 0xf8, 0x10, 0x90, 0xb8, 0x20, 0x44, 0x68, 0x22, 0x12, 0xa1, 0xb6, 0xd1, 0xb6, 0x52,
0xc5, 0xd1, 0x8e, 0xb7, 0x8d, 0xd5, 0xc6, 0x36, 0xfe, 0x28, 0xea, 0x1b, 0x70, 0x87, 0x67, 0xe1,
0x19, 0x38, 0x70, 0xe0, 0x11, 0x50, 0x6f, 0xbc, 0x05, 0xda, 0xd9, 0x4d, 0xe2, 0xa4, 0x1f, 0x70,
0xca, 0xec, 0xec, 0xef, 0x3f, 0xf3, 0x9f, 0x71, 0x16, 0x8c, 0x24, 0x1e, 0x3b, 0x71, 0x12, 0x65,
0x11, 0x35, 0xe2, 0xdc, 0x4b, 0x73, 0xcf, 0x89, 0x3d, 0xfb, 0x0f, 0x01, 0x8d, 0x8d, 0x76, 0xe8,
0x6b, 0x58, 0x4f, 0x73, 0x2f, 0x1d, 0x27, 0x41, 0x9c, 0x05, 0x51, 0x98, 0x5a, 0xa4, 0xa5, 0xb5,
0x6b, 0x9d, 0x4d, 0x67, 0x8e, 0x3a, 0x6c, 0xb4, 0xe3, 0x1c, 0xe4, 0xde, 0x7e, 0x9c, 0xa5, 0x6c,
0x19, 0xa6, 0xdb, 0xa0, 0xc7, 0xb9, 0x77, 0x16, 0xa4, 0x13, 0xab, 0x84, 0x3a, 0x5a, 0xd0, 0xed,
0xf2, 0x34, 0x75, 0x4f, 0x38, 0x9b, 0x21, 0xf4, 0x05, 0xe8, 0xe3, 0x28, 0xcc, 0x92, 0xe8, 0xcc,
0xd2, 0x5a, 0xa4, 0x5d, 0xeb, 0x3c, 0x2c, 0xd0, 0x3b, 0xf2, 0x66, 0x2e, 0x52, 0x64, 0xa3, 0x0b,
0xba, 0x6a, 0x4e, 0xb7, 0xc0, 0x50, 0xed, 0x3d, 0x6e, 0x91, 0x16, 0x69, 0x57, 0xd9, 0x22, 0x41,
0x2d, 0xd0, 0xb3, 0x28, 0x0e, 0xc6, 0x81, 0x6f, 0x95, 0x5a, 0xa4, 0x6d, 0xb0, 0xd9, 0xd1, 0xfe,
0x4a, 0x40, 0x57, 0x75, 0x29, 0x85, 0xf2, 0x71, 0x12, 0x4d, 0x51, 0x6e, 0x32, 0x8c, 0x45, 0xce,
0x77, 0x33, 0x17, 0x65, 0x26, 0xc3, 0x98, 0xde, 0x87, 0x4a, 0xca, 0x3f, 0x85, 0x11, 0x3a, 0x35,
0x99, 0x3c, 0xd0, 0x06, 0x54, 0xb1, 0xe8, 0xb0, 0x97, 0x5a, 0xe5, 0x96, 0xd6, 0x36, 0xd8, 0xfc,
0x8c, 0xee, 0x82, 0x93, 0xd0, 0xcd, 0xf2, 0x84, 0x5b, 0x15, 0x54, 0x2d, 0x12, 0xb4, 0x0e, 0xda,
0x29, 0xbf, 0xb0, 0xd6, 0x30, 0x2f, 0x42, 0xfb, 0x27, 0x81, 0x8d, 0xe5, 0xa1, 0xe9, 0x73, 0xa8,
0x04, 0x13, 0xf7, 0x9c, 0xab, 0x8f, 0xf0, 0xe0, 0xea, 0x7a, 0x86, 0x03, 0xf7, 0x9c, 0x33, 0x49,
0x21, 0xfe, 0xd9, 0x0d, 0x33, 0xb5, 0xfb, 0xeb, 0xf0, 0x23, 0x37, 0xcc, 0x98, 0xa4, 0x04, 0x7e,
0x92, 0xb8, 0xc7, 0x99, 0xa5, 0xdd, 0x84, 0xbf, 0x17, 0xd7, 0x4c, 0x52, 0x02, 0x8f, 0x93, 0x3c,
0xe4, 0x38, 0xe8, 0xb5, 0xf8, 0x48, 0x5c, 0x33, 0x49, 0xd9, 0x03, 0x30, 0x8b, 0x1e, 0xe7, 0x9f,
0x63, 0xd8, 0xc3, 0x5d, 0xcf, 0x3e, 0xc7, 0xb0, 0x47, 0x9b, 0x00, 0x53, 0x39, 0xb0, 0x58, 0x63,
0x09, 0xd7, 0x58, 0xc8, 0xd8, 0xce, 0xa2, 0x92, 0xb0, 0xbf, 0xc2, 0x93, 0x2b, 0x7c, 0x7b, 0xce,
0xa3, 0xff, 0x9b, 0x3b, 0xdb, 0x07, 0x73, 0x12, 0xad, 0xdf, 0xe2, 0xf1, 0x09, 0x54, 0x62, 0xce,
0x93, 0x54, 0xad, 0xf6, 0x5e, 0x61, 0xf8, 0x11, 0xe7, 0xc9, 0x30, 0x3c, 0x8e, 0x98, 0x24, 0xec,
0x1e, 0x54, 0x67, 0x29, 0xba, 0x09, 0x6b, 0x22, 0xa9, 0xea, 0x99, 0x4c, 0x9d, 0x68, 0x0b, 0x6a,
0xe2, 0xaf, 0xc0, 0xfd, 0xae, 0xef, 0x63, 0x51, 0x71, 0x59, 0x4c, 0xd9, 0xdf, 0x35, 0xb8, 0x7b,
0x28, 0x9a, 0xf7, 0xb8, 0x7c, 0x5f, 0x51, 0x22, 0xfe, 0x97, 0xa1, 0x3b, 0xe5, 0xca, 0x1b, 0xc6,
0xf4, 0x15, 0x94, 0xdd, 0x3c, 0x9b, 0x60, 0x89, 0x5a, 0xe7, 0x51, 0xc1, 0xd7, 0x8a, 0xda, 0xe9,
0xe6, 0xd9, 0x04, 0xdf, 0x2c, 0x0a, 0xe8, 0x4b, 0xd0, 0x78, 0x38, 0x56, 0x0f, 0xcf, 0xbe, 0x45,
0xd7, 0x0f, 0xc7, 0x28, 0x13, 0x78, 0xe3, 0x0b, 0x81, 0xea, 0xac, 0x10, 0x7d, 0x0b, 0xe5, 0x69,
0xe4, 0x4b, 0x3f, 0x1b, 0x9d, 0xed, 0xff, 0xe8, 0x8d, 0xc1, 0x6e, 0xe4, 0x73, 0x86, 0x4a, 0x31,
0xd1, 0x29, 0xbf, 0x90, 0x5b, 0x35, 0x19, 0xc6, 0xf6, 0x63, 0xd9, 0x41, 0x50, 0xb4, 0x0a, 0xe5,
0xbd, 0xfd, 0xbd, 0x7e, 0xfd, 0x0e, 0xd5, 0x41, 0xfb, 0xd0, 0xff, 0x58, 0x27, 0x22, 0x38, 0xda,
0x3f, 0xac, 0x97, 0x1a, 0xdf, 0x08, 0xe8, 0xca, 0x1b, 0x7d, 0xb3, 0xe4, 0xe4, 0xe9, 0xbf, 0xa7,
0x11, 0xbf, 0x05, 0x1f, 0x5b, 0x60, 0x9c, 0xf2, 0x8b, 0x81, 0x9b, 0x4e, 0xf8, 0xcc, 0xcc, 0x22,
0x61, 0x3f, 0xc3, 0x46, 0x2b, 0x86, 0xd6, 0xc1, 0x38, 0x18, 0x74, 0x59, 0xbf, 0xb7, 0x6c, 0xeb,
0x9d, 0xf9, 0xe3, 0xb2, 0x49, 0x7e, 0x5d, 0x36, 0xc9, 0xef, 0xcb, 0x26, 0xf9, 0x1b, 0x00, 0x00,
0xff, 0xff, 0xe3, 0x53, 0xd4, 0xac, 0x6d, 0x05, 0x00, 0x00,
// 655 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcf, 0x6e, 0xd3, 0x4e,
0x10, 0xc7, 0x7f, 0x1b, 0x27, 0x75, 0x3c, 0x75, 0xfb, 0x8b, 0x16, 0x54, 0x4c, 0x54, 0x45, 0x91,
0x91, 0x50, 0x28, 0xc5, 0x87, 0x80, 0xc4, 0x05, 0x21, 0x4a, 0x13, 0x91, 0x08, 0xb5, 0x8d, 0xb6,
0x95, 0x2a, 0x8e, 0xb6, 0xb3, 0x6d, 0xac, 0x36, 0x5e, 0xe3, 0x3f, 0x45, 0x7d, 0x03, 0xee, 0xf0,
0x2c, 0x3c, 0x03, 0x07, 0x0e, 0x3c, 0x02, 0xea, 0x8d, 0xb7, 0x40, 0x3b, 0xde, 0x38, 0x4e, 0xd3,
0x16, 0x4e, 0x9e, 0x1d, 0x7f, 0xbe, 0x33, 0xdf, 0x19, 0x7b, 0xc1, 0x88, 0x23, 0xdf, 0x89, 0x62,
0x91, 0x0a, 0x6a, 0x44, 0x99, 0x97, 0x64, 0x9e, 0x13, 0x79, 0xf6, 0x6f, 0x02, 0x1a, 0x1b, 0xed,
0xd2, 0x57, 0xb0, 0x96, 0x64, 0x5e, 0xe2, 0xc7, 0x41, 0x94, 0x06, 0x22, 0x4c, 0x2c, 0xd2, 0xd6,
0x3a, 0xab, 0xdd, 0x0d, 0xa7, 0x40, 0x1d, 0x36, 0xda, 0x75, 0x0e, 0x33, 0xef, 0x20, 0x4a, 0x13,
0xb6, 0x08, 0xd3, 0x6d, 0xd0, 0xa3, 0xcc, 0x3b, 0x0f, 0x92, 0x89, 0x55, 0x41, 0x1d, 0x2d, 0xe9,
0xf6, 0x78, 0x92, 0xb8, 0xa7, 0x9c, 0xcd, 0x10, 0xfa, 0x1c, 0x74, 0x5f, 0x84, 0x69, 0x2c, 0xce,
0x2d, 0xad, 0x4d, 0x3a, 0xab, 0xdd, 0x87, 0x25, 0x7a, 0x37, 0x7f, 0x53, 0x88, 0x14, 0xd9, 0xdc,
0x01, 0x5d, 0x35, 0xa7, 0x9b, 0x60, 0xa8, 0xf6, 0x1e, 0xb7, 0x48, 0x9b, 0x74, 0xea, 0x6c, 0x9e,
0xa0, 0x16, 0xe8, 0xa9, 0x88, 0x02, 0x3f, 0x18, 0x5b, 0x95, 0x36, 0xe9, 0x18, 0x6c, 0x76, 0xb4,
0xbf, 0x10, 0xd0, 0x55, 0x5d, 0x4a, 0xa1, 0x7a, 0x12, 0x8b, 0x29, 0xca, 0x4d, 0x86, 0xb1, 0xcc,
0x8d, 0xdd, 0xd4, 0x45, 0x99, 0xc9, 0x30, 0xa6, 0xf7, 0xa1, 0x96, 0xf0, 0x8f, 0xa1, 0x40, 0xa7,
0x26, 0xcb, 0x0f, 0xb4, 0x09, 0x75, 0x2c, 0x3a, 0xec, 0x25, 0x56, 0xb5, 0xad, 0x75, 0x0c, 0x56,
0x9c, 0xd1, 0x5d, 0x70, 0x1a, 0xba, 0x69, 0x16, 0x73, 0xab, 0x86, 0xaa, 0x79, 0x82, 0x36, 0x40,
0x3b, 0xe3, 0x97, 0xd6, 0x0a, 0xe6, 0x65, 0x68, 0xff, 0x20, 0xb0, 0xbe, 0x38, 0x34, 0x7d, 0x06,
0xb5, 0x60, 0xe2, 0x5e, 0x70, 0xf5, 0x11, 0x1e, 0x2c, 0xaf, 0x67, 0x38, 0x70, 0x2f, 0x38, 0xcb,
0x29, 0xc4, 0x3f, 0xb9, 0x61, 0xaa, 0x76, 0x7f, 0x13, 0x7e, 0xec, 0x86, 0x29, 0xcb, 0x29, 0x89,
0x9f, 0xc6, 0xee, 0x49, 0x6a, 0x69, 0xb7, 0xe1, 0xef, 0xe4, 0x6b, 0x96, 0x53, 0x12, 0x8f, 0xe2,
0x2c, 0xe4, 0x38, 0xe8, 0x8d, 0xf8, 0x48, 0xbe, 0x66, 0x39, 0x65, 0x0f, 0xc0, 0x2c, 0x7b, 0x2c,
0x3e, 0xc7, 0xb0, 0x87, 0xbb, 0x9e, 0x7d, 0x8e, 0x61, 0x8f, 0xb6, 0x00, 0xa6, 0xf9, 0xc0, 0x72,
0x8d, 0x15, 0x5c, 0x63, 0x29, 0x63, 0x3b, 0xf3, 0x4a, 0xd2, 0xfe, 0x35, 0x9e, 0x2c, 0xf1, 0x9d,
0x82, 0x47, 0xff, 0xb7, 0x77, 0xb6, 0x0f, 0x0b, 0x12, 0xad, 0xdf, 0xe1, 0xf1, 0x09, 0xd4, 0x22,
0xce, 0xe3, 0x44, 0xad, 0xf6, 0x5e, 0x69, 0xf8, 0x11, 0xe7, 0xf1, 0x30, 0x3c, 0x11, 0x2c, 0x27,
0xec, 0x7d, 0xa8, 0xcf, 0x52, 0x74, 0x03, 0x56, 0x64, 0x52, 0xd5, 0x33, 0x99, 0x3a, 0xd1, 0x2d,
0x68, 0xc8, 0x5f, 0x81, 0x8f, 0x25, 0xc9, 0xb8, 0x2f, 0xe2, 0xb1, 0xfa, 0xdb, 0x96, 0xf2, 0xf6,
0x37, 0x0d, 0xfe, 0x3f, 0x92, 0x36, 0x7a, 0x3c, 0xbf, 0x69, 0x22, 0x96, 0x7f, 0x68, 0xe8, 0x4e,
0xb9, 0x72, 0x89, 0x31, 0x7d, 0x09, 0x55, 0x37, 0x4b, 0x27, 0x58, 0x67, 0xb5, 0xfb, 0xa8, 0xe4,
0xf0, 0x9a, 0xda, 0xd9, 0xc9, 0xd2, 0x09, 0xde, 0x5e, 0x14, 0xd0, 0x17, 0xa0, 0xf1, 0xd0, 0x57,
0x57, 0xd0, 0xbe, 0x43, 0xd7, 0x0f, 0x7d, 0x94, 0x49, 0xbc, 0xf9, 0x99, 0x40, 0x7d, 0x56, 0x88,
0xbe, 0x81, 0xea, 0x54, 0x8c, 0x73, 0x3f, 0xeb, 0xdd, 0xed, 0x7f, 0xe8, 0x8d, 0xc1, 0x9e, 0x18,
0x73, 0x86, 0x4a, 0x39, 0xd1, 0x19, 0xbf, 0xcc, 0xf7, 0x6b, 0x32, 0x8c, 0xed, 0xc7, 0x79, 0x07,
0x49, 0xd1, 0x3a, 0x54, 0xf7, 0x0f, 0xf6, 0xfb, 0x8d, 0xff, 0xa8, 0x0e, 0xda, 0xfb, 0xfe, 0x87,
0x06, 0x91, 0xc1, 0xf1, 0xc1, 0x51, 0xa3, 0xd2, 0xfc, 0x4a, 0x40, 0x57, 0xde, 0xe8, 0xeb, 0x05,
0x27, 0x5b, 0x7f, 0x9f, 0x46, 0x3e, 0x4b, 0x3e, 0x36, 0xc1, 0x38, 0xe3, 0x97, 0x03, 0x37, 0x99,
0xf0, 0x99, 0x99, 0x79, 0xc2, 0x7e, 0x8a, 0x8d, 0xae, 0x19, 0x5a, 0x03, 0xe3, 0x70, 0xb0, 0xc3,
0xfa, 0xbd, 0x45, 0x5b, 0x6f, 0xcd, 0xef, 0x57, 0x2d, 0xf2, 0xf3, 0xaa, 0x45, 0x7e, 0x5d, 0xb5,
0xc8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x58, 0xd6, 0x7d, 0x1f, 0x77, 0x05, 0x00, 0x00,
}
func (m *RPC) Marshal() (dAtA []byte, err error) {
......@@ -1271,11 +1271,11 @@ func (m *PeerInfo) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerID)))
i += copy(dAtA[i:], m.PeerID)
}
if m.SignedAddrs != nil {
if m.SignedPeerRecord != nil {
dAtA[i] = 0x12
i++
i = encodeVarintRpc(dAtA, i, uint64(len(m.SignedAddrs)))
i += copy(dAtA[i:], m.SignedAddrs)
i = encodeVarintRpc(dAtA, i, uint64(len(m.SignedPeerRecord)))
i += copy(dAtA[i:], m.SignedPeerRecord)
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
......@@ -1616,8 +1616,8 @@ func (m *PeerInfo) Size() (n int) {
l = len(m.PeerID)
n += 1 + l + sovRpc(uint64(l))
}
if m.SignedAddrs != nil {
l = len(m.SignedAddrs)
if m.SignedPeerRecord != nil {
l = len(m.SignedPeerRecord)
n += 1 + l + sovRpc(uint64(l))
}
if m.XXX_unrecognized != nil {
......@@ -2895,7 +2895,7 @@ func (m *PeerInfo) Unmarshal(dAtA []byte) error {
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field SignedAddrs", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field SignedPeerRecord", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
......@@ -2922,9 +2922,9 @@ func (m *PeerInfo) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.SignedAddrs = append(m.SignedAddrs[:0], dAtA[iNdEx:postIndex]...)
if m.SignedAddrs == nil {
m.SignedAddrs = []byte{}
m.SignedPeerRecord = append(m.SignedPeerRecord[:0], dAtA[iNdEx:postIndex]...)
if m.SignedPeerRecord == nil {
m.SignedPeerRecord = []byte{}
}
iNdEx = postIndex
default:
......
......@@ -50,7 +50,7 @@ message ControlPrune {
message PeerInfo {
optional bytes peerID = 1;
optional bytes signedAddrs = 2;
optional bytes signedPeerRecord = 2;
}
message TopicDescriptor {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment