Why we’ve made our code open source
Today, at Streamr, we’re very happy to be open sourcing our first big tranche of code. This, says CEO, Henri Pihkala, is the first of many such steps, which he believes are crucially important to Streamr’s continued success. Streamr’s Head of Communications, Shiv Malik, interviewed Henri this week to find out why. Here’s what he had to say.
Why not keep Streamr’s code base closed? Why, in effect, are you giving away Streamr’s intellectual property?
Well, an open codebase enables the community to follow our technical progress more closely and even participate in developing Streamr. For example, it’s fairly easy to build new modules for the Streamr Engine. Perhaps we’re giving away something, but we’re also getting something much more exciting in return!
On top of this this, openness adds transparency and network effects, both of which are really important to us. Plus, once fully decentralised, all components of the Streamr system will be run by community members and not us. So, they really need to know exactly what they are running on their systems. We’re also big believers in how decentralisation and incentivisation can change how apps and services are implemented and run. In our vision of the future, there’s really no competitive edge in secrecy.
Which components of the overall system are you open sourcing now? What will be released later?
In this first batch, we’re publishing all the components of the currently running production version of the Streamr stack. This includes the Engine and Editor. You can already see a hosted versions of these by logging in on our website. We’re also publishing the bits and pieces that implement the current centralised edition of the Streamr Network infrastructure. If you want, you can now run a full, private Streamr environment on your own machine.
A bit later we’ll also publish repositories related to the upcoming Marketplace as well as the P2P next generation version of the Streamr Network. We’re targeting production use of the Marketplace this year, so it’s currently the focus of our development efforts. It’s also the next component in line to be open sourced.
Why not open up everything now?
There’s very little benefit in open sourcing code components that are new and still in the early days of their development. For a start, the community can’t really participate before the code is working smoothly. Plus programmers are like artisans. They take pride in the beauty of their work! This also means they don’t like showcasing code that’s raw and unfinished. So, we’d rather further develop new components before showcasing them to the world.
So is there a commercial advantage in having the system open sourced?
Yes, because the value is in the ecosystem. Streamr is set up as a for-profit company, but the token-driven business model is different from any traditional company trying to create cash flow or sell a product or services. We do none of those things. If we are successful in creating a new kind of decentralised data ecosystem, it will benefit everyone. This can only be achieved through open source software.
So what does a good open source standard mean? Should tokenisation, crowdfunding and open sourcing go hand-in-hand? Or can for-profit companies have legitimate “ICO’s”.
I believe that tokenisation’s the biggest thing to happen to the open source movement since the internet! In my opinion, there’s been no reasonable way to fund open source projects beforehand. Projects have either had to beg for donations or sell support and commercial extras on the side.
Now, for the subset of open source projects operating in the crypto space, tokenisation of product economies enables a whole new way to fund open source projects. In time, I really hope this expands to open source projects not native to crypto. Proprietary products could technically be crowdfunded too, but it’s hard to create token mechanics that make sense in a closed system.
Anything else you’d like to share?
Yeah, I’d like to highlight that our immediate hope in open sourcing the code is to enable the community to contribute. The easiest way to contribute is to create new modules for the Engine. These might include new data source connectors, new analytics operations, new data output integrations or new visualisations. Happily, extending the module library is a relatively easy task and doesn’t require deep knowledge of the overall system. We hope to have a tutorial video up at some point that teaches how it’s done. Ultimately, our aim is to create enough materials to make community code contribution as easy as possible. At the moment, it’s a work in progress, but we’re working hard to create more content as we go.
You’ll find the open code repositories on Streamr Github.