syntax = "proto3"; package authority_discovery_v2; // First we need to serialize the addresses in order to be able to sign them. message AuthorityRecord { // Possibly multiple `MultiAddress`es through which the node can be repeated bytes addresses = 1; } message PeerSignature { bytes signature = 1; bytes public_key = 2; } // Then we need to serialize the authority record and signature to send them over the wire. message SignedAuthorityRecord { bytes record = 1; bytes auth_signature = 2; // Even if there are multiple `record.addresses`, all of them have the same peer id. // Old versions are missing this field. It is optional in order to provide compatibility both ways. PeerSignature peer_signature = 3; }