github.com/zignig/go-ipfs@v0.0.0-20141111235910-c9e5fdf55a52/net/handshake/pb/handshake.proto (about)

     1  package handshake.pb;
     2  
     3  //import "github.com/jbenet/go-ipfs/net/mux/mux.proto";
     4  
     5  // Handshake1 is delivered _before_ the secure channel is initialized
     6  message Handshake1 {
     7    // protocolVersion determines compatibility between peers
     8    optional string protocolVersion = 1; // semver
     9  
    10    // agentVersion is like a UserAgent string in browsers, or client version in bittorrent
    11    // includes the client name and client. e.g.   "go-ipfs/0.1.0"
    12    optional string agentVersion = 2; // semver
    13  
    14    // we'll have more fields here later.
    15  }
    16  
    17  // Handshake3 is delivered _after_ the secure channel is initialized
    18  message Handshake3 {
    19  
    20    // publicKey is this node's public key (which also gives its node.ID)
    21    // - may not need to be sent, as secure channel implies it has been sent.
    22    // - then again, if we change / disable secure channel, may still want it.
    23    // optional bytes publicKey = 1;
    24  
    25    // listenAddrs are the multiaddrs the sender node listens for open connections on
    26    repeated bytes listenAddrs = 2;
    27  
    28    // TODO
    29    // services list the services this node is running
    30    // repeated mux.ProtocolID services = 3;
    31  
    32    // we'll have more fields here later.
    33  
    34    // oservedAddr is the multiaddr of the remote endpoint that the sender node perceives
    35    // this is useful information to convey to the other side, as it helps the remote endpoint
    36    // determine whether its connection to the local peer goes through NAT.
    37    optional bytes observedAddr = 4;
    38  }