Earlier quoted context omitted.
Yeah, I've been pretty disappointed by what they actually shipped. The concept (decentralized, financially incentivized storage) is really neat, and there would be a demand for it, but every time I've tried to use it, it's been incredibly difficult. Ran into similar problems with Sia. Example: I'd love to use one of these projects as an additional backup layer for my NAS, but the technical complexity necessary to set…
Filebase offers an abstraction layer to Sia, Storj and other decentralized networks. It's S3 compatible as well, so it plugs right into most NAS setups including Synology Hyper Backup and QNAP. [1] https://filebase.com
HTTP is obsolete – it's time for the distributed, permanent web (2015)
311–320 of 337 posts
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#312Earlier quoted context omitted.
IMHO what changed in 1995, was MS adding TCP/IP to Windows 95. Prior to that you had fight with dial-up, Trumpet Winsock, PPP and PPTP to get on the internet at all. Most normal people still couldn't do it without help, but it moved into the realm of possible.
During 95 or 96, I was explaining to customers over the phone how to set up Trumpet Winsock and MacTCP/PPP. Most people didn't instantly get Windows 95, so it wasn't the reason that the ISP existed. And it was already possible to access the internet to some extent through an established online service, I think I'd used Delphi, AOL, maybe others during high school. Something made it feasible right then for anybody to…
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#313Earlier quoted context omitted.
“All you need” is only true at the highest level: IPFS gives you a great way to discover replicated content. It doesn't help you know that the list of known hashes is complete (consider how much work IA has spent making sure that they crawl sites completely enough to be able to replay complex JavaScript), handle the scale of that list (this is a VERY large database which updates constantly), or provide networked stor…
> It doesn't help you know that the list of known hashes is complete Right, which is why I said it would have to periodically scan the registered clients to ensure a minimum number of clients has each block to ensure redundancy. > also the bandwidth available to serve that content on a timely manner and rebuild a missing replica before another fails. I think a slow, cheap but reliable archive is better than "more exp…
> Right, which is why I said it would have to periodically scan the registered clients to ensure a minimum number of clients has each block to ensure redundancy.
That's the easy problem, not the hard one I was referring to: doing what IA does requires you to be able to crawl web resources and identify everything which needs to be available for a page snapshot to be usable. IPFS only helps with that in the sense that you can tell whether you have the same URL payload without requesting it — you still need to handle dynamic behaviour and that's most of the work.
> I think a slow, cheap but reliable archive is better than "more expensive but lower latency", so I'm not particularly concerned with timeliness.
What I would be concerned with is “more expensive, higher latency, and greater risk of irrecoverable failure”. Relying on volunteers means that you need far more copies because nobody has a commitment to provide resources or even tell you if they decide to stop (“ooops, out of space. Let me clear some up — someone else must have this…”), and the network capacity isn't just a factor for user experience — although that can prevent adoption if it's too slow — but more importantly because it needs to be available enough to rebuild missing nodes before other ones also disappear.
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#314Earlier quoted context omitted.
What is that simpler protocol?
I'll do a Show HN in a month. Although a reference implementation ( https://github.com/webpods-org/podmaster ) is kind of ready, there's no documentation yet (which will go up on webpods.org soon). The only way to see the feature-set is to look at some of the tests. https://github.com/webpods-org/podmaster/blob/master/src/tes... If you're interested, please email me. I'm looking for collaborators.
1. How is this meaningfully different to WebDAV?
2. Is the assumption that web apps export stuff to your pod from time to time, or actually use it as the primary storage? If the former, isn't it more or less the same idea as Google Takeout, if the latter how do apps handle the possibility of slow pods, outages or the need to use relational databases for storage? When building server side apps you do normally need tight control over storage.
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#315Earlier quoted context omitted.
Imagine if we said that about web sites at the begining. The Web needs to decide what it want to be? A plaftorm to sell stuff? Contact people? Write? Listen to music?
> Imagine if we said that about web sites at the begining. The web was fast (for documents on 56k) and extremely useful almost immediately. It was obvious to everyone watching that the technology was going to change everything.
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#316Earlier quoted context omitted.
> It doesn't help you know that the list of known hashes is complete Right, which is why I said it would have to periodically scan the registered clients to ensure a minimum number of clients has each block to ensure redundancy. > also the bandwidth available to serve that content on a timely manner and rebuild a missing replica before another fails. I think a slow, cheap but reliable archive is better than "more exp…
> > It doesn't help you know that the list of known hashes is complete > Right, which is why I said it would have to periodically scan the registered clients to ensure a minimum number of clients has each block to ensure redundancy. That's the easy problem, not the hard one I was referring to: doing what IA does requires you to be able to crawl web resources and identify everything which needs to be available for a p…
I'm not sure what you think would be difficult exactly. You've said that archive.org has already done the programming needed to ensure dynamic resources are discovered, and now those resources are content ids rather than URLs. Nothing's really changed on this point.
> Relying on volunteers means that you need far more copies because nobody has a commitment to provide resources or even tell you if they decide to stop
Yes, but you would also have many more volunteers. Many people who wouldn't donate financially would donate CPU and storage. We saw this with SETI@home and folding@home, for instance.
> nobody has a commitment to provide resources or even tell you if they decide to stop
Why not? If you provide a client to participate as a storage node for archive.org, like SETI@home, then they would know your online/offline status and how much storage you're willing to donate. If you increase/decrease the quota, it could notify the network of this change.
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#317Earlier quoted context omitted.
> > It doesn't help you know that the list of known hashes is complete > Right, which is why I said it would have to periodically scan the registered clients to ensure a minimum number of clients has each block to ensure redundancy. That's the easy problem, not the hard one I was referring to: doing what IA does requires you to be able to crawl web resources and identify everything which needs to be available for a p…
> you still need to handle dynamic behaviour and that's most of the work. I'm not sure what you think would be difficult exactly. You've said that archive.org has already done the programming needed to ensure dynamic resources are discovered, and now those resources are content ids rather than URLs. Nothing's really changed on this point. > Relying on volunteers means that you need far more copies because nobody has…
The point was that it's outside of the level which IPFS can possibly help with. IA actively maintains the code which does this and any competing project would need to spend the same time on that for the same reasons.
> Yes, but you would also have many more volunteers. Many people who wouldn't donate financially would donate CPU and storage. We saw this with SETI@home and folding@home, for instance.
That's an interesting theory but do we have any evidence suggesting that it's likely? In particular, SETI@home / folding@home did not involve either substantial resource commitments or potential legal problems, both of which would be a concern for a web archiving project. There's a substantial difference between saying something can use idle CPU and a modest amount of traffic versus using large amounts of storage and network bandwidth.
SETI@home appears to have on the order of ~150k participating computers. IA uses many petabytes of storage so let's assume that each of those computers has 10TB of storage free to offer — which is far more than the average consumer system — so if we assume all of them switch, that'd be 1.5EB of storage. That sounds like a lot but the need to have many copies to handle unavailable nodes and one factor controlling how many copies you need is the question of how much bandwidth the owner can give you — it doesn't help very much if someone has 2PB of storage if they're on a common asymmetric 1000/50Mbps connection and want to make sure that archive access doesn't interfere with their household's video calls or gaming. Once you start making more than a couple of copies, that total capacity is not looking like far more resources than IA.
> > nobody has a commitment to provide resources or even tell you if they decide to stop
> Why not? If you provide a client to participate as a storage node for archive.org, like SETI@home, then they would know your online/offline status and how much storage you're willing to donate. If you increase/decrease the quota, it could notify the network of this change.
All of what you're talking about is voluntary. One challenge of systems like this is that you don't know whether a node which simply disappears is going to come back or you need create a new replica somewhere else. Did someone disappear because they had a power outage or ISP failure, tripped over the power cord for an external hard drive, temporarily killed the client to avoid network contention, just got hit with ransomware, etc. or did they decide they were bored with the project and uninstalled it?
Since you don't have an SLA, you have to take conservative approach — lots of copies, geographically separated, etc. — which reduces the total system capacity and introduces performance considerations.
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#318Earlier quoted context omitted.
I'll do a Show HN in a month. Although a reference implementation ( https://github.com/webpods-org/podmaster ) is kind of ready, there's no documentation yet (which will go up on webpods.org soon). The only way to see the feature-set is to look at some of the tests. https://github.com/webpods-org/podmaster/blob/master/src/tes... If you're interested, please email me. I'm looking for collaborators.
I realize you plan to do a Show HN but in case I don't see it, could you answer a few quick questions: 1. How is this meaningfully different to WebDAV? 2. Is the assumption that web apps export stuff to your pod from time to time, or actually use it as the primary storage? If the former, isn't it more or less the same idea as Google Takeout, if the latter how do apps handle the possibility of slow pods, outages or th…
Webpods is more like git than WebDAV. It allows apps/users to store data in logs, and the data can be records (strings) or files. If bob is syncing from alice, he'd pull all entries from the commit-id until which he has previously synced.
An app will store data in a pod (which has a unique hostname) such as instagram.jeswin.someprovider.com. Each pod can have multiple logs, such as "friends", "albums", "comments" etc. Logs have permissions attached to them, which control who can read those logs. There are similarities to WebDAV here, but again it's more like how we use git.
> Is the assumption that web apps export stuff to your pod from time to time, or actually use it as the primary storage? If the former, isn't it more or less the same idea as Google Takeout, if the latter how do apps handle the possibility of slow pods, outages or the need to use relational databases for storage? When building server side apps you do normally need tight control over storage.
Apps are expected to be local-first, though they aren't forced to. You'd write to the local database, and simultaneously sync with the pod. Similarly, if you're pulling data from friends, those would (most likely) be stored locally as well.
Slow pods are a problem, but I hope people would generally prefer reliable pod service providers. In the same way Dropbox gives you some guarantees of reliability. If the app is designed to be local-first, the user is not immediately prevented from using the app while the network is down; and syncing can happen once connectivity is regained.
Relational databases and schemas are not supported on Pods, it's just an immutable log. Most apps should do event-sourcing (https://martinfowler.com/eaaDev/EventSourcing.html), wherein they write to an event log. But this stream (of events) could be processed into an more easily queryable view.
Of course, this won't work for all kinds of apps. It works well for apps handling personal data or for collaboration tools; such as slack, project management tools, instagram, google photos, music collections etc. On the other hand, it's not a good fit for apps in which the data needs to be centralized. Such as ecommerce, banking, insurance, delivery services etc.
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#319As long as there are no actual, native iOS, android and PC Apps built on top of IPFS or even an access GUI or interface with browser on those platforms, IPFS can stop dreaming of replacing HTTP. Apart from mere 1-2% of world population who use internet, no one else is going to download a binary and run a CLI, and visit 127.0.0.1:8080/ipfs. For majority of people chrome is a gateway to internet (for them Http is a pre…
We're actually working on that, and have made progress with Brave and Opera. You're right that for wide, mainstream adoption, we'll need to expand onto platforms like Android/iOS, and that's the dream, honestly. Working on URIs like IPFS:// and IPNS://, which are supported in Brave/Opera to an extent. It's a long road though, with lots of negotiations with lots of organizations. I do feel optimistic about it though.
Re: HTTP is obsolete – it's time for the distributed, permanent web (2015)
#320Earlier quoted context omitted.
> you still need to handle dynamic behaviour and that's most of the work. I'm not sure what you think would be difficult exactly. You've said that archive.org has already done the programming needed to ensure dynamic resources are discovered, and now those resources are content ids rather than URLs. Nothing's really changed on this point. > Relying on volunteers means that you need far more copies because nobody has…
> I'm not sure what you think would be difficult exactly. You've said that archive.org has already done the programming needed to ensure dynamic resources are discovered, and now those resources are content ids rather than URLs. Nothing's really changed on this point. The point was that it's outside of the level which IPFS can possibly help with. IA actively maintains the code which does this and any competing projec…
I'm not sure why they would have to compete. They're literally solving the same problem in basically the same way. I see no reason to fork this code.
> That's an interesting theory but do we have any evidence suggesting that it's likely? In particular, SETI@home / folding@home did not involve either substantial resource commitments or potential legal problems, both of which would be a concern for a web archiving project.
But this isn't a concern of a web archiving project any more if content-based addressing becomes the standard, because pervasive caching is built into the protocol itself. Publishing anything on such a network means you are already giving up some control you would otherwise have in where this content will be served from, how it's cached, how long it lasts, etc.
> All of what you're talking about is voluntary. One challenge of systems like this is that you don't know whether a node which simply disappears is going to come back or you need create a new replica somewhere else.
Yes, you would have to be more pessimistic and plan for more redundancy than you would otherwise need. Each node in a Google-scale distributed system has a low expected failure rate, but they still see regular failures. No doubt they have a minimum redundancy calculation based on this failure rate. The same logic applies here, but the failure rate would likely have to be jacked up.
> Since you don't have an SLA, you have to take conservative approach — lots of copies, geographically separated, etc. — which reduces the total system capacity and introduces performance considerations.
Whether there would be performance problems isn't clear. Content-based addressing is already fairly slow (at this time), but once content is resolved, fragments of content can be delivered from multiple sources concurrently, and from more spatially close sources. Higher latency, but more parallelism.
I'm not willing to invest the time needed to gather the data you're asking about to actually quantify all of the requirements, but despite the points you've raised, I still don't see any real obstacles in principle.