Skip to main content

Interface: ControlLayerConfig

Properties

autoCertifierConfigFile

Optional autoCertifierConfigFile: string

File path to the autocertified subdomain file. The file contains the autocertified subdomain name and it's TLS certificate.


autoCertifierUrl

Optional autoCertifierUrl: string

URL of the autocertifier service used to obtain TLS certificates and subdomain names for the WS server.


entryPointDiscovery

Optional entryPointDiscovery: EntryPointDiscovery

If true, an attempt is made to discover additional network entrypoint nodes by querying them from The Graph. If false, only the nodes listed in entryPoints are used.


entryPoints

Optional entryPoints: NetworkPeerDescriptor[]

The list of entry point PeerDescriptors used to join the Streamr Network.


externalIp

Optional externalIp: string


iceServers

Optional iceServers: IceServer[]

The list of STUN and TURN servers to use in ICE protocol when forming WebRTC connections.


maxConnections

Optional maxConnections: number

The maximum number of connections before unwanted connections are clean up. This is a soft limit, meaning that the number of connections may exceed the count temporarily. Locked connections such as the ones used for stream operations are not counted towards this limit.


maxMessageSize

Optional maxMessageSize: number

The maximum outgoing message size (in bytes) accepted by connections. Messages exceeding the maximum size are simply discarded.


networkConnectivityTimeout

Optional networkConnectivityTimeout: number

The maximum time to wait when establishing connectivity to the control layer. If the connection is not formed within this time, the client's network node will throw an error.


peerDescriptor

Optional peerDescriptor: NetworkPeerDescriptor

Contains connectivity information to the client's Network Node, used in the network layer. Can be used in cases where the client's public IP address is known before starting the network node. If not specified, the PeerDescriptor will be auto-generated.


tlsCertificate

Optional tlsCertificate: TlsCertificate

TLS configuration for the WebSocket server


webrtcAllowPrivateAddresses

Optional webrtcAllowPrivateAddresses: boolean

When set to true private addresses will not be probed when forming WebRTC connections.

Probing private addresses can trigger false-positive incidents in some port scanning detection systems employed by web hosting providers. Disallowing private addresses may prevent direct connections from being formed between nodes using IPv4 addresses on a local network.

Details: https://github.com/streamr-dev/network/wiki/WebRTC-private-addresses


webrtcDatachannelBufferThresholdHigh

Optional webrtcDatachannelBufferThresholdHigh: number

Sets the high-water mark used by send buffers of WebRTC connections.


webrtcDatachannelBufferThresholdLow

Optional webrtcDatachannelBufferThresholdLow: number

Sets the low-water mark used by send buffers of WebRTC connections.


webrtcNewConnectionTimeout

Optional webrtcNewConnectionTimeout: number

Defines WebRTC connection establishment timeout in milliseconds.

When attempting to form a new connection, if not established within this timeout, the attempt is considered as failed and further waiting for it will cease.


webrtcPortRange

Optional webrtcPortRange: PortRange

Defines a custom UDP port range to be used for WebRTC connections. This port range should not be restricted by enclosing firewalls or virtual private cloud configurations. NodeJS only.


websocketHost

Optional websocketHost: string

The host name or IP address of the WebSocket server used to connect to it over the internet. If not specified, the host name will be auto-detected. Can be useful in situations where the host is running behind a reverse-proxy or load balancer.


websocketPortRange

Optional websocketPortRange: null | PortRange

The port range used to find a free port for the client's network layer WebSocket server. If set to null, a server will not be started. The server is used by the network layer to accept incoming connections over the public internet to improve the network node's connectivity.


websocketServerEnableTls

Optional websocketServerEnableTls: boolean

If the node is running a WS server, this option can be used to disable TLS autocertification to run the server without TLS. This will speed up the starting time of the network node (especially when starting the node for the first time on a new machine).