Streamr Network

Streamr Network

Streamr Network.
P2P pub/sub for real-time data

The Streamr Network is a scalable real-time messaging system, which enables applications and devices such as IoT sensors or connected cars to share and trade their data. Currently centralized, we are decentralising it in four stages — Monk, Corea, Brubeck and Tatum. Check our progress here.

The Streamr Network is a scalable real-time messaging system, which enables applications and devices such as IoT sensors or connected cars to share and trade their data. Currently centralized, we are decentralising it in four stages
— Monk, Corea, Brubeck and Tatum. Check our progress here.

0
Data points per second currently on the Network

Using the Network

You can easily use the Network in your own applications via the SDKs or by directly calling the API. Official or community-built SDKs are available for JS, Java and Python, with more in the works.

These simple code examples show the basics of publishing and subscribing to a stream. For more details, dive into our docs.

Publishing data to a stream
1
2
3
4
5
streamr.publish('my-stream-id', {
    temperature: 25.4,
    humidity: 10,
    happy: true
})
Subscribing to a stream
1
2
3
4
5
6
7
streamr.subscribe({
    stream: 'my-stream-id'
},
(message, metadata) => {
    // Do something with the message here!
    console.log(message)
})
Publishing data to a stream
1
2
3
4
5
streamr.publish('my-stream-id', {
    temperature: 25.4,
    humidity: 10,
    happy: true
})
Subscribing to a stream
1
2
3
4
5
6
7
streamr.subscribe({
    stream: 'my-stream-id'
},
(message, metadata) => {
    // Do something with the message here!
    console.log(message)
})

Incentivised scaling

Incentivised scaling

Centralized message brokers have inherent scaling and economic incentive problems. The Streamr Network solves the scaling issue with distributed message brokering over a custom peer-to-peer network architecture. In later milestones, cryptocurrency, cryptographic proofs, and game theory will be used to incentivize people and organizations to run network nodes known as Brokers.

Streamr DATAcoin (DATA) is the Ethereum ERC-20 token representing value in the Streamr ecosystem. The companion blockchain is used for value settlement, identity, and permission control, while the data itself stays in the scalable Streamr Network.

Incentivised scaling

Publish/Subscribe

Publish/Subscribe

The pub/sub messaging pattern is a highly useful primitive for data-driven applications, because it decouples data publishers from data subscribers. This simplifies applications and makes them more secure.

However, pub/sub is not provided in TCP/IP, the core protocol of the internet, meaning that developers of applications such as instant messengers, financial market data delivery, multiplayer games, or data-driven IoT applications have so far needed to resort to centralized message brokers.

This not only creates a single point of failure, but also exposes your precious data to service providers.

Publish/Subscribe

Simple setup

Simple setup

For application developers, data publishers simply fire and forget. No need to set up APIs, data silos, or open ports that could compromise security. Just send new data points to the Network and you’re done. This makes integration very easy. For data consumers, they simply listen.

There is no need to know where the data sources are, which IP address to reach them on, or how to interface with them. They don’t need to open server ports either. They just connect to the network, subscribe to what they need, and react to incoming messages.

Simple setup

Broker nodes

Broker nodes

Broker nodes contribute bandwidth and storage to the network, and earn DATA paid as usage fees by users of the Network. In a sense, running a Broker node is somewhat comparable to mining, but instead of solving an CPU/GPU-bound artificial problem and wasting energy, nodes provide useful network resources which, using the Streamr protocol, collectively produce the message transport service available to applications.

Together, the P2P structure and incentive mechanism enable decentralization, which means that the network can operate without any central party controlling your data or generating value out of it.

Broker nodes

Running a node

Running a node

The network is a result of many people running Broker nodes, collectively forming the peer-to-peer network and pub/sub messaging service.

The Broker is a piece of software you install, intended to be run on always-on machines with stable bandwidth. It connects to other nodes in the network and starts to route data traffic through your computer, and rewards you for it in DATA.

We expect to open the network to public untrusted nodes in the Brubeck stage, scheduled for 2020.

Running a node
Launched Q3-4 2017monk
  • Scalable centralized pub/sub infrastructure
  • Based on Kafka, Redis, Cassandra, and Streamr components
  • JavaScript client library
2018monk
  • Integration to Marketplace
  • Stability & scalability improvements
  • R&D work started for P2P milestone
Q1-2 2019monk
  • Ethereum key-based identity and authentication
  • Tamper-proof data with data signing & message chaining
  • Protocol improvements preparing for P2P Network release
Q4 2019corea
  • First P2P version, all nodes run by Streamr core contributors
  • Performance testing, metrics collection, and comparisons
  • Random network topology per stream controlled by a trackers
  • Stream partitioning & stream-level data retention period
2020brubeck
  • End-to-end encryption
  • Basic shared key distribution & revocation mechanisms
  • First decentralization: trusted parties can run nodes
  • Network topology optimizations, potentially academic paper
  • Still free, but proof of DATA stake required beyond basic use
2021tatum
  • Node incentive mechanisms: earn DATA by running a node
  • Require DATA payments from users