The `type` field of the DCUtR message definition should not be
`optional`, as a message without a `Type` is useless. Instead it should
be `required`.
See also circuit relay v2 specification using `required` for `type`.
```protobuf
message HopMessage {
enum Type {
RESERVE = 0;
CONNECT = 1;
STATUS = 2;
}
required Type type = 1;
```
```protobuf
message StopMessage {
enum Type {
CONNECT = 0;
STATUS = 1;
}
required Type type = 1;
```
> In this specification, we describe a synchronization protocol for direct
connectivity with hole punching that eschews signaling servers and utilizes
existing relay connections instead.
Co-authored-by: Raúl Kripalani <raul@protocol.ai>
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* Specify the Circuit Relay v2 protocol.
* Move README.md specifying the Circuit Relay v1 protocol to circuit-v1.md
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: raulk <raul@protocol.ai>
* prefixing err codes with HOP/STOP to differentiate dup keys
* typo: srcPeer and destPeer are set in STOP, not STATUS
* relay: add STOP_RELAY_REFUSED and MALFORMED_MESSAGE
* document error codes 390 and 400