Sia [http://sia.tech/]; filecoin; Storj [https://storj.io/]; maidsafe [https://maidsafe.net/]. Sounds like someone could do a good comparison article. Does anyone have any experience of using any of these? They do take quite a bit to set up compared to, say, Backblaze B2 or AWS S3.
Sia's key distinguishing feature is that it's the only platform today which is fully/properly decentralized. If the MaidSafe devs today disappear, I believe all the servers running MaidSafe go with them. If the Storj team disappears, payments stop entirely and anyone using the Storj bridge (most of their users) will not be able to access files. If the Sia devs disappear, everything will continue to work as it currently does (though, bugfixes and feature adds will stop)
Sia distinguishes in two other major ways as well. First, we are the only platform that allows hosts to put up collateral - if a host loses your data, they don't just lose revenue they also lose collateral money that they put up as a promise to keep the data safe. Second, Sia is the only network that gives you full control over which machines your data ends up on. This is good if you want to run a CDN, need to comply with data laws, or have some other reason for favoring a particular region or set of hosts.
I encourage you to dive deep in the technical details, I think you'll find that Sia is pretty far ahead of everyone else.
Seems really annoying to get setup with Sia though. You need to have at least 50,000 SC to begin hosting, and you can't earn SC until you start hosting. You even need SC to announce your host (15 SC), and the apps don't explain if the software deals with dynamic IPs or if it supports hostnames instead of just IPv4 addresses. Also, it seems like it is only using IPv4 addresses, kind of short minded for modern technology.
How are you even supposed to get started using Sia if there's no way to do it except to go and spend money. The point of being able to host files is that I'll offer up some storage on my NAS, earn coins, then be able to backup some of my own important documents on the network. Seems like if I have to dish out money to get started I doubt I'd ever be able to maintain the service without continuously spending money. So many other syncing technologies seem easier than this.
Hostnames, IPv4, and IPv6 are all supported. Dynamic IP addresses are also supported, but they are generally a lot less reliable (the renter needs a way to discover that the host IP has changed, and often this discovery is late). http://siapulse.com/page/network has examples of hostnames, IPv4, and IPv6 addresses. Not all home connections are able to use IPv6, so if you don't see any it's probably a problem with your home setup.
> You need to have at least 50,000 SC to begin hosting, and you can't earn SC until you start hosting.
This is one of the ways that we address churn on the network. It's actually really bad for the network for a host to get started, be around storing files for a day or two, and then leave. If you are going to be a host on the Sia network, it's important that you are committed.
> The point of being able to host files is that I'll offer up some storage on my NAS, earn coins, then be able to backup some of my own important documents on the network.
Sia is not designed as a tit-for-tat network. The economics are supposed to work much like Bitcoin + Bitcoin mining. That is, you have a dedicated set of specialists who work hard to provide a high quality service at a very good price. If you are hosting, the goal is to make money, not to be able to afford to back up your own data.
> So many other syncing technologies seem easier than this.
Yes but none of them are offering storage at $1 / TB / Mo. But also, Sia is still an early product and we're still iterating heavily on both the core algorithms and on the user experience.
Sia's core user market is people who are willing to pay for cloud storage. This would include businesses and enterprises. Sia's long term game is to offer a cloud storage platform that competes with the likes of Amazon S3 at less than 10% of the price, all while offering the security, privacy, decentralization, and open source codebase of a blockchain project.
The master branch client has a command 'siac renter prices' that will look at the network and estimate the costs. This feature hasn't been released yet because it's very recent.
My client is saying $0.50 to create a set of contracts (needs to be done once every six weeks), $0.60 per TB to download from the network, $1 / TB / Mo to store data on the network, and $0.30 per TB to upload to the network.
These prices include a redundancy of 3x in the upload and storage costs.
Long term I expect prices to not be more than about 2x what they are today, though it really depends on how the supply-demand mechanics play out. It's a fully open and competitive marketplace.
Maidsafe is fully decentralized. It is still in testing but full networks can and have been run without maidsafe servers. Any node can be used to bootstrap
CEO of Storj here. You can sign up to use Storj and get the tools working to upload/download your files in 60 seconds. Last time I tried to use S3 it was 12 steps, and a phone call. Its faster, more secure, 50% cheaper than traditional cloud storage.
Basics are data stored for each. Storj: ~1400 TB, Sia: ~100 TB, Filecoin: Not Functional, Maidsafe: Not Functional.
A good comparison article would include costs and the difficulty of obtaining that info... feels fuzzy for most of these, and that's a big problem for adoption.
- siapulse.com contains some information about pricing
- running `siac renter prices` on client on the master branch (yet unreleased) will give you a price estimate given the set of hosts you know about. This feature will be available in the next release.
- Storage cost: about $1 / TB / Mo (for 10-of-30 redundancy)
- Bandwidth cost: about $0.60 / TB
Prices on Storj:
- Not sure how the prices get set, but the prices are advertised on their website
- Storage cost: $15 / TB / Mo
- Bandwidth cost: $50 / TB
Prices on MaidSafe:
- No price given, but the claim is that it will adjust according to supply and demand. Should be within a small factor of Sia if that is the case (Sia's prices are also set by supply + demand).
Instead of simply using bitcoin (internet), these companies all created arbitrary currencies (intranet) to essentially generate profit for themselves. Having seen dozens of literally identical projects I can promise you all of these "networks" which utilize their own arbitrary currency are scams.
Hey Everyone, thanks for the great discussion and excellent questions. Was surprised to see this rise up to FP, given we have not updated the site in ages. :] Thanks for the great discussion here! Unfortunately i can't give much in form of answers as time is super punishing right now :(. Good news is we're hard at work, and we'll have a big announcement within 2 mo. ;) See you then! --- Oh also, big shoutout to Sia, Storj, & Swarm. They're all doing solid work on this. One thing that we've been working on is how to increase collaboration, interop, and shared upside across our systems. Stay tuned!
I believe filecoin is going to be a part of IPFS [1] at some point in the future, but development hasn't started yet. I really hope all the decentralized technology is going to blow up.
In all honesty, I need to try building something that does semi-distributed computation. Here's my idea to throw in the pool.
First, you don't get something for nothing. So you need computers (surprise). Now, how do you share code? You can share code directly via IPFS. Now, admittedly, binary is the fastest, but limits your architecture rather greatly. So an interpreted language seems better.
I'm looking at Erlang, given its functional attributes and ability of swapping code with no downtime. It also works in a cluster.
I also look at Tor for entry points to get requests on these machines. We already can interact with IPFS for files, but it has no logic capability. And Ethereum is a joke in many ways (and it simply can't interact outside its blockchain).
The idea: IPFS filestore for storing functions, and chaining IPFS hashes to be ran by a Erlang cloud connected by Tor Onion links.
It's not completely serverless computation, but you can ideally abstract out the server so it doesn't matter where it is, or who handles it.
Other ways to go about this would be homomorphic encryption (way too computationally expensive at this time)... Or some sort of trusted computing (shudder).
Ethereum is/was pretty interesting; but as with all blockchains, it's solving a globally-distributed byzantine/trustless problem, at the expense of being massively inefficient.
It's a good idea for that domain, but such constraints don't apply to the majority of computing problems. For example, Web app A might want its events to appear in the same order to all of its clients, and Web app B might want the same for its events, but there's no reason to enforce that all clients of all apps see all events of all apps in the same interleaved order, in an open world where new apps can be created without any central authority, and where no app or client trusts any other app or client.
Regarding a practical language, I think something like Morte/Annah/Dhall would be nice as a way to:
- Use pure functional computation as a powerful 'sandbox' against causing nasty effects or having results affected by outside interference
- Use IPFS URLs as function names
- Use Church (et al) encoding and strong normalisation as a form of statically-checkable duck-typing (i.e. if it encodes to a duck, then it's a duck)
Primarily because they have engaged in the "We didn't really like the way project XYZ worked out, so we're going to re-do."
Look at the DAO. It's more than enough reason to dismiss this as a libertarian capitalist's experiment, with straight up dictatorialism if they don't get their way.
> Primarily because they have engaged in the "We didn't really like the way project XYZ worked out, so we're going to re-do."
As someone who has tried to build a simple DAPP on bitcoin, my god, this is not what bitcoin was meant to do. I mean I love bitcoin, but building smart contracts on bitcoin is like using a screwdriver to implement a calculator.
Bitcoin took a route which isn't suited for things which Ethereum wants to achieve. A great example of this is Augur vs Truthcoin/Hivemind. The team behind former looked at Bitcoin first, but realized how much difficult it would be for them to build this on bitcoin so they went Ethereum route and now they are very close to their alpha, where as Truthcoin/Hivemind went nowhere.
By Ethereum's own documentation, their code is the contract and the contract is the code.
Yes, it sucks that they did not write tighter code and allowed a gotcha.... But when that happens in the legal world, people do pay for it.
Instead, because one of founders put up a lot of ETH, they changed the rules of the game. Now, the question is, "How close to the CEO of ConsenSys do you need to be to roll out bad contracts?".
Right. This also means that you can't currently trust code that runs on the blockchain since there are likely more bugs like the one that was exploited. Thoughts on that?
The change in Ethereum was "voted" for by a majority of hash power (but of course as influenced by the Ethereum leadership, so people had the popup in the client along with a recommendation what to vote for). So isn't that correction also in the spirit of Ethereum? Miners decide.
How about fixing obvious bugs, but otherwise upholding contracts?
> This also means that you can't currently trust code that runs on the blockchain since there are likely more bugs like the one that was exploited.
To elaborate, it's especially hard to trust ETH code because it's not provable in any way. Bugs will hide, and people will find them. If ETH wasn't turing-complete this would be less problematic (because static analysis would be much easier, and possible), but as it stands there's no way to trust Ethereum contracts.
Yes, but I mean something more general purpose and developer friendly.
If I'm writing a mobile app that needs heavy compute (too heavy for small mobile devices) can I distribute that compute across larger peers like desktops, NAS boxes, etc.? Not easily and not if it involves anything that anyone might ever want to attack or spy on.
Another concept would be to slice your task it into small enough junks so that one would need many of them to extract meaningful information. That's not strictly secure, but nothing is. ;)
Either your chunks are big enough that the network delay doesn't matter, or you'll be killed by communication overhead. Having each server simulate a single transistor is reasonable safe, but you'll never complete your task.
I wonder how these proof-of-retrievabililty blockchains deal with the potential problem of miners injecting a ton of fake files (e.g. whose i'th block is H(secret||i)) into the system in order to boost their chances of being able to do a retrievabililty proof without actually needing storage.
Is it simply a matter of mining rewards not being able to compensate for the cost of injection?
Is there more than just Filecoin? Sia and Storj both only do file contracts, consensus is driven by other means (Proof of Work for Sia, Counterparty for Storj).
As for Filecoin, I believe that it has several significant issues, both with the game theory (super linear returns when investing in hashrate and storage simultaneously - a massive centralization pressure), and with data withholding attacks (to mine on Filecoin, you need to have the Filecoin data. What if the existing miners decide not to give it to you?).
"Altering the reward scheme must include careful analysis of the
resulting market equilibria. For instance, if the currency is too inflationary, then attackers may benefit from
adding large amounts of “dummy data” that they can easily reproduce without incurring the cost of storage
(e.g., the outputs of a pseudorandom function for which they know the secret key), and thereby gain a net
advantage in the challenge reward system over the long term."
Hmm, and their last activity on Twitter was 3 Nov 2015: https://twitter.com/MineFilecoin/with_replies. Why is it important? They provide Twitter and email newsletter as main ways to follow their news. If there was no activity for over a year, the project might be stalled.
Takedown requests would need to be sent to the nodes holding the data or to servers holding links to the data. I don't think the dev teams or parent companies would have too much to worry about.
Filecoin whitepaper came out a few months before the Storj one. Filecoin however is not functional, while Storj has been functional for about 8 months.
I'm always curious about how things like this would do if an effort was made to market it to the general populace. The makers are all amped about the underlying tech (and rightfully so), but it's a hard thing to really care about outside that niche space. What if you hid all the underlying tech, layered on a good UX, and spoke to the value proposition?
This looks really interesting, but the misuse of 'rent' all over the landing page is confusing at first, ("I get paid to use someone else's storage space?") and subsequently distracting.
I know how hard it is to explain an outsider what your product does, but maybe you could try to explain to me who should be using it? Personally, I have enough space on my laptop.
I believe Keybase (the identity and key management tool) stores signatures on the BTC blockchain, but KBFS (the encrypted shared filesystem built on Keybase) does not, it is just S3 storage that they're offering as a freebie (10GB/user) to drive adoption.
Seriously though, that is a likely outcome, but most good ideas do not sound like good ideas to begin with.
My bigger concern here is the types of files people use this service for, and as distributed host of these files, what are the legal ramifications on me for doing this?