Tired of depending on centralized HTTP services, we found Ethereum can do the same but much more efficiently.
One of the key goals we have is a decentralized database that has no
dependencies on any entity to run. But in general, applications and
servers that talk to each other need to be aware of each using IP
addresses and host names. These are centralized concepts that need to be
hard-coded into software or “discovered” by means of a lookup, but that
lookup itself is typically also centralized to some sort of lookup or
directory service. The most common thing is to use a centralized HTTP
service.
In the context of Bluzelle, applications need to discover both swarms and nodes on the swarms. Nodes that spin up need to (1) discover swarms, (2) decide what swarm to join, and (3) discover other nodes on that swarm to peer with. How could we do this more efficiently and ensure it’s always operational?
We found that a registry or directory service is the perfect use case for
an Ethereum smart contract. We can employ all of the properties of a
blockchain (data transparency, data audit, etc.) without the operational overhead of deploying a traditional centralized service.
We wrote an Ethereum Swarm Registry (ESR), that acts as a decentralized registry service for every Bluzelle swarm, including the swarm’s unique identification and a list of nodes on that swarm. This ESR acts as a decentralized bootstrap that solves the challenge we had. Every application and node:
There is no dependency on any centralized solution. Nodes can even add themselves to the ESR if and when appropriate. Here is a .
Our ESR is open source technology, as is our client software and node software. It is all licensed with open source licenses and therefore, other parties are free to look at our source code, learn from it, and even fork and use it in their own codebases to benefit from the blockchain as a decentralized bootstrapping construct.
Ethereum is being used to provide a decentralized bootstrap/discovery process to enable both applications and servers to operate without any dependency on a single entity. Blockchain is providing enormous value here by being a key ingredient that enables a decentralized infrastructure to exist.