Siacoin July 2016 Update + Roadmap
June 28th saw the release of our v1.0.0, the first decentralized storage app
to make it into production. Following the release, we saw huge growth numbers.
The number of people on our mailing list doubled, the number of people in our
slack rose dramatically, the amount of traffic on our webpage rose
We saw the number of hosts increase to 75 hosts serving more than 300TB of
data, and we had an influx of requests from potential business customers who
have taken an interest in Sia.
That said, the release was not without its problems, and I apologize for being
quiet on these for so long. Many farmers were having problems keeping their
hosts online, and many renters were having trouble uploading, and downloading
their files. We spent most of the past week talking to users, reading logs,
and trying to figure out exactly what was going on with the network.
There is good news. Most of the problems are small in scope even if large in
effect. By and large, the architecture of Sia is sound and does not need to be
rewritten. Most of the issues are things that we can fix in a few weeks, and
while I'm sure they will not be the last speedbumps, they are exactly that -
speed bumps. We need to slow down a little, increase the testing, fix the
bugs, and then we can keep going on our way.
The vast majority of the problems seem to be related to a single bug. When a
renter creates file contracts with hosts, the renter creates a long chain of
interdependent transactions. It might look like this:
fc1 -> fc2 -> fc3 -> fc4
If one of those transactions, say fc2, ends up being invalid, then you lose
all of the following transactions, even though only one of them is invalid.
fc1 -> X -> X -> X
Perhaps more significantly, even if they are all valid, the host on the other
side of the connection may not be receiving all of the dependent transactions,
meaning the host will just see an invalid transaction even if the transaction
? -> ? -> X -> X
Ultimately, fixing these problems is not conceptually very difficult. We first
need to make sure that the renter is not creating dependent transactions until
their parents have been confirmed valid, and we need to make sure that the
host is properly getting all dependencies during the contract formation
Though this was the core problem, talking to users revealed about 30 bugs
overall, around half of which have been fixed up to this point. The other half
are still being worked on, however none of the bugs are very scary - we just
need to put in the hours and we should have all currently known issues patched
up in the next week.
And we need to be expanding our testing to make sure that we're properly
catching these bugs before they get into production. We released v1.0.0
because we felt that the core architecture was complete, but as we have seen
the testing was insufficient and ultimately I think we can say that Sia was
released too early. The good news is that we should be able to spend most of
the next month improving our testing and our testing strategies, and by the
end of the month have a release that is much stronger.
The current plan is to have siad v1.0.1 and sia-ui v1.0.2 out on July 19th
with all of the major bugs patched up. Throughout July and much of August we
will be focused largely on testing, and sometime mid-August you can expect
another release that has bugfixes for everything that shows up during our
improved testing and hardening.
Jordan, one of the Nebulous team members, will be adding business development
and marketing to his list of responsibilities. This will include building and
sourcing infographics, interacting with enterprise customers, growing our
third party app community, expanding our meetup communities, and overall
pushing the business interests of Sia.
For those of you looking for ways to help, there's one thing that Sia needs
more than anything else right now - testing. If you are not a developer, the
best thing to do is to download and run the app, and report all problems or
annoyances that you run into. If you are a developer, we could especially used
improved test coverage on our API. Here is a screenshot of our current API
As you can see, some of our endpoints are covered by tests, but most of them
are not. In the screenshot, there is partial coverage for the API call that
allows you to add a storage folder to the host, but no coverage at all for the
API call that allows you to resize a storage folder.
There is a guide for getting started here. Please do not hesistate to ask
(on either the forum or on the slack) for guidance, we're happy to help, and happy to code review.
The Sia team is as excitied as ever to be partipating in the decentralization
movement. All parts of the ecosystem are seeing lots of growth, and while
there's still a long road ahead of us we're all much further down that road
than we were a year ago, and the future looks bright.