Building decentralized infrastructure for resilient and hugely scalable Ðapps is exciting, and the potential rewards for the community and the citizenry are immense. But nobody ever said that the work will be easy. The technology is cutting edge, the problems are new, and the past is not a good guide of how to get things done in the decentralized space.
But one thing we have learned is that you can get so much more done by working together with talented and like-minded people. In the case of Golem and Streamr, we’ve realised yet again that this very much remains true.
The two companies and the key people were introduced to each other by common friends earlier this year. Since we first met, Golem and Streamr have had a number of pow-wows, stimulating discussions have been had, premises and home towns of both teams have been visited, and pizza and refreshments have been consumed.
In these meetings it has become apparent that there is a great amount of overlap between what the two teams are planning to do in their respective roadmaps. Golem and Streamr have therefore decided to formally co-operate on the shared part of the technology stack. Cue fanfare!
Why is this a great match?
For the followers of either Golem or Streamr projects, a few words about the context may be of interest. As mentioned, it’s become apparent to our friends at Golem and us at Streamr that there is a deep and broad shared problem space. In the case of either project, a peer-to-peer (P2P) network is an integral part of the technology stack. In Golem, computing tasks are distributed to computation nodes in the Golem network. In Streamr and especially in the transport layer — i.e. the Streamr Network — messaging and data storage tasks are distributed to broker nodes in a P2P network.
The implication is that there is a wide overlapping region where both projects need to solve similar problems. Areas where common problems are likely to be found include the assignment of tasks to computing resources, validation of computation results, atomicity of data exchange and payments, reputation management, resource measurement, pricing mechanisms, assessment of task scalability, understanding and monitoring network dynamics, long-running tasks, low-latency tasks, and blockchain interoperability.
A vision for the decentralized Internet
But we can go even further with this. Given the number of questions which are of interest to both projects, it is natural to ask whether a suitable abstraction exists which may simplify the R&D roadmap. In particular, can we redefine the network stack so as to efficiently and elegantly handle the different tasks fulfilled by either project?
The answer, we believe, is affirmative. Think of a network which follows a hierarchical protocol where each layer is decentralized. In other words, each layer consists of a network of nodes, each of which implements one or more parts of the shared communication and computing stack. A tentative plan for the hierarchical protocol includes the following layers:
- (Application layer)
- (Additional infrastructure layers)
- Streamr (data transport layer)
- Golem (computation layer)
- Ethereum (blockchain layer)
If you take a step back, you’ll see that what we envisage here is effectively a protocol stack for the decentralized Internet. And when you think of the cooperation between Golem and Streamr in such terms, the possibilities are truly and profoundly exciting!
What does this mean to you?
Golem is making good progress along its roadmap, but if there’s a chance to deliver better things and faster, the Golem team is certainly willing to take that chance. We also believe that the cooperation will be a boon for the community. The intention is that the code and solutions co-developed by Golem and Streamr will be free for everyone to use under the appropriate open source license.
At Streamr, we are excited to get to work with the deep thinkers at Golem to solve common problems for mutual benefit. We also find Golem to be the perfect platform for decentralizing the Streamr Engine, our real-time stream computing layer. Working together and even bundling both technologies opens the door to tremendous added value to application creators. The cooperation will take us, one step at a time, towards the decentralized application stack envisaged above!
If you want to keep track of the fruits of the cooperation, please join us in either the Golem Slack, the Streamr Slack, or preferably both! Also check out the Streamr blog for demos and wild thoughts.