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.