We are pleased to announce the launch of the Sirius Stream service layer on the ProximaX Sirius platform test network. This launch includes a software development kit (SDK) and a proof of concept application.
What is Sirius Stream?
Sirius Stream is a fully anonymous, end-to-end encrypted messaging and video streaming protocol and framework. This service layer utilizes the Sirius Stream Protocol (SSP) for secure and high performance real-time messaging and streaming services.
Sirius Stream has two core services:
- Storage Streaming
Storage streaming is an extension of the Sirius Storage service layer that enables platform users to stream pre-recorded content (e.g., movies and videos). Solution providers can use the service to power a Netflix or YouTube type app.
- Live Streaming
Live streaming is an independent streaming service layer that utilizes Sirius Chain for identification and incentivization. It allows for real-time broadcasting and sharing of content (e.g., chat, phone calls, and video conferencing), which forms the basis for short text messaging and multimedia or hybrid systems, like WhatsApp and Zoom.
Sirius Stream is a service that allows streaming through an open node ecosystem. Like Sirius Storage, it will also come with different system actors to facilitate a secure and performant service. The network incentivizes public nodes to provide a streaming service. According to free-market principles, streaming nodes are selected by the system, taking into account node reputation and a selection mechanism.
How does ProximaX Live Streaming work?
Live streaming consists of several actors.
Discovery nodes are responsible for discovering new presence nodes in the network. A client can request for a presence node on the network via a discovery node.
Authority nodes authorize participants and ensure that they are eligible to gain access to the network. Once a client has the list of nodes, the client randomly selects two onion nodes and one authority node. Once the system creates a circuit, the client asks for a certificate from the authority node.
Onion nodes form circuits for incoming and outgoing data across the network.
A presence node is the last onion node in a circuit used to publish streamed data to external viewers.
Live Streaming Flow
Once a connection route is established, a stream can be performed from the client to external viewers.
- Client SDK chooses (randomly) from the list of onion nodes returned during discovery.
- Client establishes a stream channel with the onion node via a Transport Layer Security (TLS) socket. Once a “handshake” is confirmed, the session is ready.
- The system then establishes the session, and the client SDK can start sending media (audio and video) frames to the onion node.
- Onion nodes send reports to the broadcaster from time to time.
- Viewers connect to the onion node via the session ID, containing the broadcaster’s host and port address. Once connected, the system adds viewers to a list inside the onion node.
- Onion nodes use a “fan-out” design to broadcast a data stream to all viewers.
What is included in this launch?
This launch is an early public version of the Sirius Stream service layer. The current state will allow anyone to access the public test network via an SDK and gain access to an open POC app for chat and video streaming.
The testnet node is running using DNS: stream-testnet1.xpxsirius.io
The ports are as follows:
- Five discovery nodes: port 6001 – 6005
- Three authority nodes: port 7001 – 7003
- Nine onion nodes: port 8001 – 8009
Developers can use the SDK to access the node.
Proof of Concept: Chat
This POC demonstrates a simple, secure chat messaging application using Sirius Stream TSJS SDK. For more information about how to run it locally, click here.
The way it works is that the client creates a presence key that will be the primary identifier that any clients can use to reach a contact.
The client first needs to initialize a session, register an identity, and log in using the identity to open a session to generate the presence key. Other clients can use this presence key to initiate a chat with the client.
Proof of Concept: Video Stream
The client first initiates a session and starts the stream via a selected node and the broadcaster component then handles the encoding and transmission of data to viewers.
Mac users can try a different POC, built natively, here.
To get started, access our GitHub here.
There is no action needed for node participants for now, but we encourage you to follow our social media for further announcements.
For more information about the ProximaX Sirius platform, visit www.proximax.io.