Juvix imports
module arch.node.net.transport_types;
import arch.node.types.basics open;
import arch.node.types.crypto open;
import arch.node.types.identities open;
Transport types¶
IPv4Address¶
syntax alias IPv4Address := Nat;
IPv6Address¶
syntax alias IPv6Address := Nat;
IPAddress¶
IPAddress : Type := Either IPv4Address IPv6Address;
TransportProtocol¶
Supported network transport protocols.
type TransportProtocol :=
| QUIC
| TLS
| WebTransport
| WebSocket
| TCP
| UDP;
TLSAddress¶
TLS or QUIC address.
type TLSAddress :=
mkTLSAddress@{
ip : IPAddress;
port : Nat;
cert_issuer : String;
};
ip- IP address
port- Port number
cert_issuer- TLS certificate issuer fingerprint
TransportAddress¶
type TransportAddress :=
| QUICAddr TLSAddress
| TLSAddr TLSAddress
| IPAddr IPAddress;
TransportOrderingPrefs¶
Transport ordering preferences for an outgoing message.
type TransportOrderingPrefs :=
| TransportOrdered
| TransportUnordered;
TransportReliabilityPrefs¶
Transport reliability preferences for an outgoing message.
type TransportReliabilityPrefs :=
| TransportReliable
| TransportUnreliable;
TransportSecurityPrefs¶
Transport ordering preferences for an outgoing message.
type TransportSecurityPrefs := TransportDirect;
TransportPrefs¶
Transport preferences for an outgoing message.
type TransportPrefs :=
mkTransportPrefs@{
ordering : TransportOrderingPrefs;
reliability : TransportReliabilityPrefs;
security : TransportSecurityPrefs;
};
ordering- Transport ordering preferences
reliability- Transport reliability preferences
security- Transport security preferences
SerializedMsg¶
Serialized message.
Contains an EngineMsg.
type SerializedMsg := BARE ByteString;
Arguments
SerializedMsgBARE- BARE
EncryptedMsg¶
Serialized message encrypted with the specified algorithm.
Contains a SerializedMsg.
type EncryptedMsg := EncryptedMsgNull ByteString;
Arguments
EncryptedMsgNull- No encryption.