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 hostnames. 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?

Solving That with Ethereum

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:

Talks to the ESR at a pre-emptively set Ethereum smart contract address

Can discover swarms and nodes on those swarms

Connect itself in a truly decentralized way to the swarm.

There is no dependency on any centralized solution. Nodes can even add themselves to the ESR if and when appropriate. Here is a demo.

Demo: Adding new node onto Bluzelle ESR

How can others benefit?

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.