message Holepunch { optional bytes from = 2; optional bytes to = 3; } enum TYPE { QUERY = 1; UPDATE = 2; RESPONSE = 3; } message Message { // request/response type + id required TYPE type = 1; required uint64 rid = 2; optional bytes to = 10; // kademlia stuff optional bytes id = 3; optional bytes target = 4; optional bytes closerNodes = 5; optional bytes roundtripToken = 6; // rpc stuff optional string command = 7; optional string error = 8; optional bytes value = 9; }