mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-05-25 17:01:20 +00:00
This commit adds an implementation for the circuit relay v2 protocol to be used as a relay server, i.e. it supports incoming HOP requests and outgoing STOP requests and used as a relay clients, i.e. outgoing HOP requests and incoming STOP requests. The existing circuit relay v1 protocol implementation is moved to protocols/relay/src/v1. Co-authored-by: ronzigelman <ronzigelman@gmail.com> Co-authored-by: Marco Munizaga <git@marcopolo.io> Co-authored-by: Thomas Eizinger <thomas@eizinger.io> Co-authored-by: Elena Frank <57632201+elenaf9@users.noreply.github.com>
44 lines
1.3 KiB
Protocol Buffer
44 lines
1.3 KiB
Protocol Buffer
syntax = "proto2";
|
|
package message_v1.pb;
|
|
|
|
message CircuitRelay {
|
|
|
|
enum Status {
|
|
SUCCESS = 100;
|
|
HOP_SRC_ADDR_TOO_LONG = 220;
|
|
HOP_DST_ADDR_TOO_LONG = 221;
|
|
HOP_SRC_MULTIADDR_INVALID = 250;
|
|
HOP_DST_MULTIADDR_INVALID = 251;
|
|
HOP_NO_CONN_TO_DST = 260;
|
|
HOP_CANT_DIAL_DST = 261;
|
|
HOP_CANT_OPEN_DST_STREAM = 262;
|
|
HOP_CANT_SPEAK_RELAY = 270;
|
|
HOP_CANT_RELAY_TO_SELF = 280;
|
|
STOP_SRC_ADDR_TOO_LONG = 320;
|
|
STOP_DST_ADDR_TOO_LONG = 321;
|
|
STOP_SRC_MULTIADDR_INVALID = 350;
|
|
STOP_DST_MULTIADDR_INVALID = 351;
|
|
STOP_RELAY_REFUSED = 390;
|
|
MALFORMED_MESSAGE = 400;
|
|
}
|
|
|
|
enum Type { // RPC identifier, either HOP, STOP or STATUS
|
|
HOP = 1;
|
|
STOP = 2;
|
|
STATUS = 3;
|
|
CAN_HOP = 4; // is peer a relay?
|
|
}
|
|
|
|
message Peer {
|
|
required bytes id = 1; // peer id
|
|
repeated bytes addrs = 2; // peer's known addresses
|
|
}
|
|
|
|
optional Type type = 1; // Type of the message
|
|
|
|
optional Peer srcPeer = 2; // srcPeer and dstPeer are used when Type is HOP or STOP
|
|
optional Peer dstPeer = 3;
|
|
|
|
optional Status code = 4; // Status code, used when Type is STATUS
|
|
}
|