iprs 0.0.4

Inter planetary specifications in rust-lang
syntax = "proto3";

package peer_record_proto;

// PeerRecord messages contain information that is useful to share with
// other peers. Currently, a PeerRecord contains the public listen addresses
// for a peer, but this is expected to expand to include other information
// in the future.
//
// PeerRecords are designed to be serialized to bytes and placed inside of
// SignedEnvelopes before sharing with other peers.
// See https://github.com/libp2p/go-libp2p-core/record/pb/envelope.proto for
// the SignedEnvelope definition.
//
message PeerRecord {
    // AddressInfo is a wrapper around a binary multiaddr. It is defined as a
    // separate message to allow us to add per-address metadata in the future.
    //
    message AddressInfo {
        bytes multiaddr = 1;
    }

    // peer_id contains a libp2p peer id in its binary representation.
    bytes peer_id = 1;

    // seq contains a monotonically-increasing sequence counter to order PeerRecords in time.
    uint64 seq = 2;

    // addresses is a list of public listen addresses for the peer.
    repeated AddressInfo addresses = 3;
}