syntax = "proto3"; package protocols.p2p; // designed to be shared between all app protocols message MessageData { // shared between all requests string clientVersion = 1; // client version int64 timestamp = 2; // unix time string id = 3; // allows requesters to use request data when processing a response bool gossip = 4; // true to have receiver peer gossip the message to neighbors string nodeId = 5; // id of node that created the message (not the peer that may have sent it). =base58(multihash(nodePubKey)) bytes nodePubKey = 6; // Authoring node Secp256k1 public key (32bytes) - protobufs serielized bytes sign = 7; // signature of message data + method specific data by message authoring node. } //// ping protocol // A protocol defines a set of requests and responses. message PingRequest { MessageData messageData = 1; // method specific data string message = 2; // add any data here.... } message PingResponse { MessageData messageData = 1; // response specific data string message = 2; // ... add any additional message data here } //// echo protocol // A protocol defines a set of requests and responses. message EchoRequest { MessageData messageData = 1; // method specific data string message = 2; // add any additional message data here.... } message EchoResponse { MessageData messageData = 1; // response specific data string message = 2; // ... add any additional message data here.... }