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
    dramatically.

    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
    is complete.

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

    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
    coverage:

    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.