mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-01 12:11: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>
59 lines
1.1 KiB
Protocol Buffer
59 lines
1.1 KiB
Protocol Buffer
syntax = "proto2";
|
|
|
|
package message_v2.pb;
|
|
|
|
message HopMessage {
|
|
enum Type {
|
|
RESERVE = 0;
|
|
CONNECT = 1;
|
|
STATUS = 2;
|
|
}
|
|
|
|
required Type type = 1;
|
|
|
|
optional Peer peer = 2;
|
|
optional Reservation reservation = 3;
|
|
optional Limit limit = 4;
|
|
|
|
optional Status status = 5;
|
|
}
|
|
|
|
message StopMessage {
|
|
enum Type {
|
|
CONNECT = 0;
|
|
STATUS = 1;
|
|
}
|
|
|
|
required Type type = 1;
|
|
|
|
optional Peer peer = 2;
|
|
optional Limit limit = 3;
|
|
|
|
optional Status status = 4;
|
|
}
|
|
|
|
message Peer {
|
|
required bytes id = 1;
|
|
repeated bytes addrs = 2;
|
|
}
|
|
|
|
message Reservation {
|
|
required uint64 expire = 1; // Unix expiration time (UTC)
|
|
repeated bytes addrs = 2; // relay addrs for reserving peer
|
|
optional bytes voucher = 3; // reservation voucher
|
|
}
|
|
message Limit {
|
|
optional uint32 duration = 1; // seconds
|
|
optional uint64 data = 2; // bytes
|
|
}
|
|
|
|
enum Status {
|
|
OK = 100;
|
|
RESERVATION_REFUSED = 200;
|
|
RESOURCE_LIMIT_EXCEEDED = 201;
|
|
PERMISSION_DENIED = 202;
|
|
CONNECTION_FAILED = 203;
|
|
NO_RESERVATION = 204;
|
|
MALFORMED_MESSAGE = 400;
|
|
UNEXPECTED_MESSAGE = 401;
|
|
} |