Decentralizer 1.1 — Now powered by hosts benchmark data

Hakkane
7 min readJul 19, 2019

--

Last February I released Decentralizer, both in graphical (GUI) and command line (CLI) versions: a companion app for Sia renters giving you more control over your contracts and more safety for the data distribution. Last May I released the SiaStats Hosts Monitor: a free service that is evaluating and benchmarking on real time the capabilities of each host, helping and alerting their operators when issues arise, and letting renters to know which hosts suits them the best.

Wouldn’t be fantastic to see the performance scores of the Monitor directly on the Decentralizer dashboard? To be able to easily avoid misfunctioning hosts or select the top performant ones? Today I am releasing Decentralizer 1.1. In this post, I want to explain you how to use this newest version to create filters of hosts according to their performance.

The conservative way: blacklisting misconfigured hosts

We can take a conservative approach when creating a list of hosts: let the host selection algorithm of the Sia software to choose the hosts for you, but removing from the list of candidates those that are misconfigured and are known to fail during file transfer operations (some of them will be able to form a contract, but will be uncapable of nothing else due to errors on their setup). These hosts receive a score of zero on the SiaStats benchmarks, so we can create a blacklist that includes them, what will force Sia to use only the properly working hosts:

1- Use the “Scan” button at the top-right of the UI to retrieve the updated information about the hosts

2- Go to the “Hosts filter” tab and select “Blacklist” on the filter mode

3- On the “Order by” drop-down menu, select “SiaStats score”

4- Scroll down the page to find the group of hosts with a “Score: 0” and check the selection box at the top of the group

5- Click on “Apply filter to Sia”

If you haven’t formed an allowance on Sia yet, now you can do it safely. If you already had contracts with some of these hosts, they will be cancelled immediately (you will be warned about this during step 5).

Steps for blacklisting misconfigured hosts on the GUI

We can do the same operation with just a few commands if we are using Decentralizer-CLI:

1- `decentralizer scan` for the initial scanning

2- `decentralizer filter mode blacklist` to set the filter

3- `decentralizer filter add score 0` to add the hosts with a score of zero to the filter

4- `decentralizer filter apply` to finally set the filter on your Sia instance

The aggressive way: whitelisting top-performant hosts

We can be more aggressive, using exclusively the hosts with the highest performance, by including them on a whitelist. This will limit the selection process that Sia will do to hosts within this list. But we need to understand that there is a trade-off with this strategy: while the Sia selection algorithm takes in mind aspects as the pricing of the hosts, the benchmark scores of SiaStats are purely based on their performance. This means that the more restrictive is the filter we create with Decentralizer, the more expensive our contracts will probably be, as we might be leaving out the cheap hosts. Decentralizer is meant to complement the Sia selection algorithm rather than replacing it, so I recommend you creating filters that include at least 70–100 hosts, so Sia has still room to leave out the most expensive hosts when it selects your set of 50 hosts. If you decide to use this approach, be mindful of this trade-off and check periodically your finances.

1- Start again by using the “Scan” button on the top-right

2- On the hosts filter tab, select “Whitelist”

3- On the “Order by” drop-down menu, select “SiaStats score”

4- Add groups of hosts with the highest scores by clicking on the check boxes at the top of the groups, starting with the “Score: 10” (the top performant). Check at the bottom of the screen how many hosts are being added so far.

5- Click on “Apply filter to Sia”

Decentralizer-CLI

In the case of Decentralizer-CLI, the commands would be:

1- `decentralizer scan` for the initial scanning

2- `decentralizer filter mode blacklist` to set the filter

3- `decentralizer filter add score 10`, `decentralizer filter add score 9`… to add hosts progressively. You can check your filter size and composition at any moment with the command `decentralizer filter`

4- `decentralizer filter apply` to set the filter on your Sia instance.

Other new features

In top of these new possibilities, the rest of the features of Decentralizer are still there: avoiding host farms (users controlling multiple hosts, what reduces decentralization and sets your data at risk); geo-fencing your data (by restricting the countries where your hosts will be located); selecting manually the hosts you want to include/exclude (based on pricing or whichever reason you want) and cancelling your ongoing contracts you don’t want to use anymore.

And in top of these features, Decentralizer now has a few additional capabilities:

The new contracts timeline on Decentralizer-GUI

· Users of the GUI version now will see a timeline representation of all their current contracts, showing the fraction of the funds that have been spent so far, when they will expire and more information when you hover the mouse over each contract. Note that his graph uses a new terminology, easier to understand, that the Sia developers are rolling out progressively for Sia: a “billing period” that gets renewed automatically when it is over and a “grace period” where your data will still be available even if you do not extend the contract.

· The CLI version users have new help commands, easier to read and follow, as `decentralizer filter help` which will show a short walkthrough guide about setting up a hosts filter.

· The CLI version now has a combinatorial command for adding hosts to a filter, so you can select hosts according to geographic region, software version and SiaStats score simultaneously in a single command. For example `decentralizer filter add [US, MX, CA] AND 1.4.1 AND [10,9,8,7,6,5]` will add only the hosts that meet all these criteria at the same time: a) they are in North American countries, b) are using the Sia version 1.4.1, c) have a SiaStats performance score above 5.

Overall, with Decentralizer you take the control over the hosts selection, deciding where and how you want your data to be stored on the Sia network.

Improvements on the SiaStats Hosts Monitor

I want also to announce some new features I am releasing at the same time on the SiaStats Hosts Monitor:

· Previously, all the benchmarks were performed from a single server located in Germany, making hosts located on the other side of the world to be unfairly penalized. Today, the Hosts monitor is a multi-region network of servers (at the time of writing this: Germany, US and Singapore) evaluating every host every 2 hours, what removes this geographic bias. The code and the infrastructure are prepared to scale up to dozens of more servers and thousands of hosts as the Sia network keeps growing

· Users can now see the benchmarks and results filtered by regions. So, you can check what would be the latency and bandwidth of the host if the renter was located on the US, as opposed to Europe or Asia, instead of just the world-wide averages.

· The home page of the Monitor now shows a world map representing the latest benchmarks and their results, together with some charts depicting the health status of both the hosts and their stored data: how many hosts are really functional, how many are running out of storage, how much free storage is available on the working hosts as opposed to the misconfigured hosts…

Now it is your turn!

Did I mention the best part? Decentralizer is completely free to use and open source. So, go and grab the latest Sia version 1.4.1 if you haven’t yet, download Decentralizer as your companion app, and start today storing data on Sia, the real fully decentralized and battle-tested cloud storage solution.

· Decentralizer-GUI for Windows

· Decentralizer-GUI for Mac OS

· Decentralizer-GUI for Linux

· CLI binaries

· Website

· GUI source code

· CLI source code

--

--