Infrastructure

Since the storage research and the first architecture announcement, we were confident that we could pull this off. The initial idea was to support any storage you would like, and we actually can. The only thing for you is to pick the right adapter. Or, you know, write one.

Our initial goal was to bypass slow transaction times with storing data off-chain, but we still needed to keep a root URI in a smart contract. And that’s a speed-limiting factor if the storage technology cannot mutate a resource while keeping its URI stable over time (because you would still need to do a transaction with each update). That’s why we allowed the use of good old HTTP.

With the POC 3 release of Swarm, our hopes went up a lot. And when we were able to hack on the MRUs (Mutability Resource Updates) in ETHBerlin, it was a game changer. Once Swarm is stable enough we should be able to easily use it for hosting all of the platform’s data.

While experimenting with Swarm-based solution, we also came up with an easy-to-deploy Swarm node connected to the same list of nodes as swarm-gateways.net is.

This general concept of having off-chain data linked from smart contracts is pretty cool and very re-usable. We plan to use this pattern in the future for more parts of the platform.

Another benefit of this solution is that your data is not hosted on any proprietary platform. Winding Tree does not own the data. Winding Tree does not host the data. Everything on Swarm is distributed and decentralized in a similar way to Ethereum blockchain itself.

The only actual part missing here is an efficient way of keeping tabs on data changes. And this kind of data can change a lot. So it’s probably unfeasible to poll all the time for all of the data documents you are interested in. Imagine that an online travel agency would be constantly checking on thousands of hotels. That’s a no-no.

So in September, we kicked off a new piece of infrastructure called wt-updates-api which should work as a publish-subscribe solution for getting notifications about changed data. We believe that this will significantly improve the overall speed of data distribution to all of the applications built on top of the Winding Tree platform.