blind-relay

1.3.3 • Public • Published

blind-relay

Blind relay for UDX over Protomux channels. By acting as a blind relay, a host may accept pairing requests from other hosts and relay UDX stream messages between them, similar to Traversal Using Relays around NAT (TURN).

npm i blind-relay

Protocol

sequenceDiagram
    actor a as peer a
    actor r as relay
    actor b as peer b

    par
        a ->> r: pair { isInitiator: true, token, id, seq }
    and
        b ->> r: pair { isInitiator: false, token, id, seq }
    end

    note over r: The relay pairs peers a and b based on the token, allocates a new stream for both peers, and sends back the stream info

    par
        r -->> a: pair { isInitiator: true, token, id, seq }
    and
        r -->> b: pair { isInitiator: false, token, id, seq }
    end

    par
        a ->> r: unpair { token }

        note left of r: The relay deallocates the stream previously allocated to peer a
    and
        b ->> r: unpair { token }

        note right of r: The relay deallocates the stream previously allocated to peer b
    end

Messages

All types are specified as their corresponding compact-encoding codec.

pair (0)

  1. bitfield(1) Flags.
    1. isInitiator
  2. fixed32 Preexchanged token.
  3. uint Stream ID of the sender.
  4. uint Initial stream sequence no. of the sender.

unpair (1)

  1. bitfield(0) Flags, reserved.
  2. fixed32 Preexchanged token.

License

Apache-2.0

Readme

Keywords

none

Package Sidebar

Install

npm i blind-relay

Weekly Downloads

1,804

Version

1.3.3

License

Apache-2.0

Unpacked Size

26.7 kB

Total Files

5

Last publish

Collaborators

  • mafintosh
  • kasperisager