Fortunately for all of us, in 15 years since the dot-com bubble collapse, there has been an increased effort from Free Software and other developers to create decentralized systems. Bittorrent, Tox, ZeroTier One, TeleHash, Media Goblin, Sandstorm, GNUNet, and countless others. This includes my own Fire★ project which I have coined Grass Computing.
Grass Computing is running decentralized Free Software.
If Cloud Computing is running decentralized software on rented machines corralled behind a wall. Grass Computing is running decentralized free software on your own hardware in the open. It is the Yin to the Cloud’s Yang.
There are many modern projects that enable people to do this now, but one myth is that this is something new. That in the beginning, the internet and the web was centralized, and it is moving towards a decentralized model. This is how the story is told but the reality is the opposite. The internet and many applications that run on it were first decentralized and have since been centralized. This forgotten history should be a warning to these modern decentralized system developers. Their systems can be co-opted and centralized at any time.
The most obvious example is email. Email is inherently decentralized because anyone can run a mail server and two mail servers can communicate directly without a middle man. Since the late 90s, many companies started to provide centralized email services and now most people in the world don’t run their own mail server, but rely on corporations to mediate their email communications for them.
There are many reasons why this happened, but the most compelling and provocative reason comes from the Telekommunist Manifesto. Which basically states that capitalists didn’t understand what the internet was but knew it was important and started buying everything they could. This led to the dot-com bubble of the late nighties. And in order to monetize on their investments, they invested in centralized computing because they can’t control communication of peer-to-peer software. They need the central control because it is the clearest way to get a return on their investment.
In other words, capital investment moved heavily towards centralized services instead of peer-to-peer ones, starving peer-to-peer software development of resources. The brightest and most well paid engineers now concentrate their minds and bodies to build centralized systems. These are called Star Networks because all communication of all nodes is mediated through a central point, having the shape of a star.
This is why people prefer a central email service. Because it is really hard to run your own mail server and it is really easy to log into Gmail. Imagine a different world where Google invested in making it easy to run your own email server which you can access from any web browser. Imagine a “Download Gmail” button where, with a couple short steps, you can be running your own Gmail software on your own machine at home. There is no technical reason why they could not do it. But there is no incentive for them to do it.
Another example is chat. Before centralized chat programs became popular, people could talk on IRC, which is federated and can be decentralized. I can run an IRC server which you connect to. We can talk directly as a group with each other. Now people use centralized chat services because they are far more convenient than running your own. Not because of any technical limitation, but simply because companies spend more time polishing and making centralized chat easier and more attractive than any competing decentralized chat.
Another example is GitHub, which takes Git’s inherently decentralized model and centralizes it. People use GitHub because it is easier than hosting your own code..
We need more Grass Computing software, and I believe if we had more social and capital investment, fellow engineers can make using decentralized software as easy as logging into Gmail, or talking over Skype (which used to be p2p but became centralized).
Check out redecentralized for some great interviews with engineers making grass computing easier to use. Get inspired and participate. And as a shameless plug, check out my own Fire★ project which aims to make writing p2p software easier than writing client server software.
If you take anything from this post take this:
Spread the idea of Grass Computing and warn others that it is a constant fight not to have decentralized software become co-opted and centralized.
Also fight for a basic income. If we have a basic income, then many more people may spend time working on decentralized systems. Consider it a social capital investment.