Your questions answered: Streamr on the Ethereum network
Curiosity about the Streamr project from the community continues to grow, along with the broader interest in decentralised applications, blockchain technology and smart contacts.
Three-and-a-half months on from our crowdfunding, many of you out there have sent us some really in-depth questions with a number of them centring in around Streamr’s interaction with Ethereum.
You had concerns about Ethereum scaling, in what ways Streamr is blockchain agnostic and how DATA coin might function on different blockchains in the future. They’re all brilliant questions and so we’ve decided to compile them — along with our answers of course — in one handy to read blog.
So, let’s see what’s been on your minds …
Q: Which is the first blockchain Streamr will be built around?
On the Streamr Network level we will first build on Ethereum, because it exists, it’s proven and production-ready, has the feature set we need, and it is familiar to us. We may choose to launch other variants in the future, depending on how the space evolves.
The Streamr Engine, on the other hand, can have (and is planned to have) integrations with various blockchains earlier on.
Q: Are streams and their configuration (not the data) registered as Smart Contracts on Ethereum?
A: Not yet, but they will be. It also depends on how Ethereum evolves. If stream metadata, canvases, etc. are too much for Ethereum on the short-to-medium timeframe, Plan B is to only store references to the metadata on Ethereum, with the metadata itself stored in distributed non-blockchain storage (Swarm, IPFS, etc.)
Q: Regarding Ethereum gas requirements: would data brokers be required to hold an Ethereum deposit in order to pay gas fees? If so, why not just have a decentralised exchange trade the DATA bounty for gas?
A: Yes, the brokers need to interact with Ethereum periodically, so they will need some ETH to do so. Obviously, the ETH costs of participation set a lower limit to the DATA bounties, because running a node should be profitable.
Regarding the idea of using a decentralised exchange — it could be done. This would allow the broker to only care about its DATA balance, effectively making the system “DATA only” towards the user and hide the complexities of needing to have ETH for gas. It should be noted that the decentralised exchange might add some gas/usage costs of its own though — say ETH or OMG — which may negate some of the benefits of the idea, since then you’d have to manage that balance instead.
Q: Has there been any discussion by the team as to the size of bounty rewards or is this a market determined price?
A: Ideally the rewards (i.e. usage costs of the network) would be market determined in a process similar to e.g. gas price auction on Ethereum. Some nodes might be willing to store and deliver data for cheaper prices than some others, possibly gaining them more users, more responsibility, and more rewards in the network. This is a very tempting idea. But it probably won’t be present in any of the first versions, as it’s another non-trivial feature to build. We’d love to see it included at some stage though.
Q: If Streamr can run alongside most blockchains, does this mean something could be sent from a device on the ethereum blockchain, and be received by something on say IOTA? Can anything else do this?
A: Using the Ethereum blockchain to broadcast data is slow, expensive, and mostly inappropriate. That’s one of the main reasons why Streamr is needed. A sensor could send data to the Streamr network, enabling trustless and decentralised delivery of that data to (potentially decentralised) applications.
These (potentially decentralised) applications could process the data and/or connect it (in other words, act as an oracle) to other systems such as Ethereum or IOTA.
One way to build such applications that consume, process and connect data is to use the Streamr Engine, powered by the visual programming environment (Streamr Editor). Data-consuming applications can also be built using any traditional programming language.
Today these applications are typically run on centralised servers. In the future even the application layer may be decentralised by running the apps on decentralised computing networks, such as Golem.
Q: If Streamr can pretty much decide to run with any Blockchain and isn’t necessarily tied to Ethereum, then if you decide to run on Neo, Ripple or IOTA will you have to issue new tokens? And what happens to my DATA? Does it maintain its value and/or is it replaced?
A: New DATA tokens will never be issued. If variants of Streamr run alongside different blockchains in the future, there will be a way to move tokens between the different ecosystems. There are basically two ways to accomplish this.
The simplest way to do it would be to have an ‘oracle’ that burns the tokens sent to it on one chain and has the power to mint the same amount of tokens on another chain. This, however, is a partially centralised solution that requires trust in whoever runs the oracle (presumably that would be us). On the positive side, it could be done today.
An interchain solution like Polkadot or Status might enable doing it in a trustless way. The tech is not quite there yet (nor is ours), but the future will hold very interesting possibilities. Ideally there would be only one Streamr network delivering data over different blockchain ecosystems and interoperating seamlessly with each one. Decentralised exchanges and interchain connections would help make sure that it doesn’t matter which ecosystem you and the users of your app operate in.
That said, the plan is, and has always been, to have the network up and running alongside Ethereum first before spreading out the focus too much. Adding blockchains is much more easily said than done. Such a thing is not in the roadmap and will most likely not be added in the current milestones.
Q: Ethereum supports roughly 15 transactions per second and takes approximately 4 min to perform each one. Is it an issue for Streamr (IoT generates a large amount of transactions) and are you planning to use a more efficient blockhain?
A: The whole Streamr Network currently runs, and will continue to run, off-chain. Only some operations (e.g. user authentication and paying) will go to the blockchain. The actual raw data will never be put on-chain. So, no, the low amount of transactions handled by Ethereum per second shouldn’t be an issue for us.
Also, Streamr is blockchain agnostic. If someday the capability of Ethereum is not enough (and the Ethereum network hasn’t grown enough until then), we can relatively easily migrate to some other system suitable for our needs. While Ripple is great in its own area, it’s “centralised” and not flexible enough for our needs. (e.g. the absence of smart contracts).
So what does that all mean? If a volume-related problem appears on the Ethereum network in the future, we’d move.
However, it is worth noting that we’re planning a subscription-based approach. That means that buyers of data streams purchase them over time. This means not every single data point is separately logged as a transaction
Concerning IoT — subscriptions could be just a second or two (or even shorter). That would indeed create settlement volume. But at the moment, we’re focusing on first creating a model that works for today’s data economy, right now.
We hope that round-up of answers is helpful. Stay tuned for more updates during your channel of choice. To be among the first to catch our monthly Transmission vlog, subscribe to our Youtube channel. You can also find more information about Steamr on our website , blog, Twitter feed, our sub-Reddit, or catch us on Rocket chat, or on our official Telegram and ‘unofficial’ English language Telegram accounts.