Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

IPFS's design makes it so that it's all of those things, or none of them. Picking one of them doesn't fit the shape of the technology. IPFS is basically the answer to the question "what is the RIGHT way to decentralize the web?". If you think about that question hard enough, then anyone can see that their way of doing it is the "right" way. It's just obvious. The problem is that all of these mutually supporting components need to be bootstrapped in order to make it work. You can't take the storage of content and federate it out across the entire internet without being able to refer to it by a content id. You can't just have content addressing by itself, because then it's inconvenient to find things on a day-to-day basis. So that means you need a DNS equivalent. And you can't assume a decentralized graph of network participants will bother to serve this information unless there's reward in it for them. So you come to filecoin. Etc.

Point being, they didn't just bite these pieces off randomly: they see a picture of how the internet _could_ work, and they're trying to realize it. If they can get it working, then boom! You have decentralized internet, and you also have a ton of bonuses that just fall out from this being the right way to do things: resistance to censorship, better archiving, reduced influence of web megacorps, etc. But you have to have it -all- to actually be better. The sum is WAY greater than the parts.

The trouble is, this statement:

> Right now it does none of those things well.

is true.

So I get what you're saying. To build user-adoption, they need to find a way to deliver an improved experience, not just an improved model that would be better if more people used it. But I object to the idea that the solution is to choose one of those things at the exclusion of the others. The whole idea doesn't make sense if they choose one. If I were advising them, I wouldn't tell them to reduce their scope in terms of "doing all the things", but rather reduce their scope in terms of doing all the things for the entire internet. They should find some kind of sub-network or community that gets extra value out of the decentralization, and prove out the concept there. Maybe it's a big company's intranet, or a network of (paging ARPA) universities?



> IPFS is basically the answer to the question "what is the RIGHT way to decentralize the web?"

There is no RIGHT way to decentralize the web. I don't think IPFS is the right way to do it either.

Tim Berners-Lee's Solid (https://solid.mit.edu/) offers a much more practical path to a decentralized web. The advantages with Solid's approach over IPFS is that:

Solid doesn't throw out what we already have, and recommend a new layer on top of the internet (example: ipns).

Solid handles access control which pretty much every application needs (encryption is btw, a poor substitute for access control).

Solid has the ability to revoke access, and delete data (very important).

It can work in browsers without extensions.

Solid is not muddied with talk of the Blockchain. It's disappointing that cryptocurrency has very nearly hijacked this space.

Solid is conceptually simple. You own a pod that has a unique address (using familiar schemes). You put your stuff on it and allow access to people; like DropBox but standards based. Companies can offer paid hosting services to run your pod - more space, bandwidth etc.

IPFS is not commercialization friendly. IPFS performance is unlikely to be great, ever.

Disclosure: I am invested in an open protocol similar to Solid, but simpler. So not entirely unbiased.


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.


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 the need to use relational databases for storage? When building server side apps you do normally need tight control over storage.


> 1. How is this meaningfully different to WebDAV?

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.


I see, thanks. Sounds like it's a sort of Apple Time Machine but for the rest of us?


I tried to use Solid, but having a protocol to store your data did not seem very useful without being able to swap the applications that use them at will. Each application needs to understand not only the Solid protocol, but the format you are using for your data too.

The specification naively says that the data is saved in interoperable formats. Sure, you can store your data in an interoperable data formats, suppose it is JSON, but it is of little use if the various applications do not know how to interpret and manage correctly the information contained therein.

It's been a while, have the applications improved?


> Each application needs to understand not only the Solid protocol, but the format you are using for your data too.

I don't think we'll be able to avoid that hurdle; we'll need to make sure that the protocol is really simple.

But having to know the data format of the app itself is to be expected. If an app "instagram-on-solid" stores data in a certain way, the alternate app will need to understand those schemas as well to be compatible. That's how interop has always worked, even in the pre-internet age when we were exchanging files on disk.

> It's been a while, have the applications improved?

I haven't looked at apps in a while - but that was indeed moving very slowly.


I would have preferred IPFS to do the storage and propagation of data really well and not implemented stuff like IPNS in the core.

To me this should be a separate codebase. And I see this in other features they have been including too.

I'm using IPFS quite heavily to store content generated on https://pollinations.ai but there is no way I could run it without a centralized node that I have control over at the moment because otherwise it would just be painfully slow and unusable.

I love the idea of content addressed decentralized data. I have no real use for IPNS at the moment and many of the other features of the core IPFS stack.


Have you had a chance to try Skynet? It provides all of the same features as IPFS, but it's also a lot more performant and higher uptime. You wouldn't need a centralized node that you run yourself.


Do you have any good links to Skynet? I could just find an old GitHub repo. Is it in active use ?


Check out the pinned repos: https://github.com/SkynetLabs

Also https://docs.siasky.net/

Very much an actively developed project, with over 100,000 monthly active users.


The second link claims that it will store data without payment and allow extracting money in the future, with 0 mention of who is paying for the space. This is so suspicious that I almost cannot believe this is not addressed immediately.


Skynet operates on a freemium model where users get 20mbps and 100 GB of storage for free and significantly more if they pay (80mbps and 1 TB for $5/mo). This is what pays the bills, and also how things stay pinned.


I found this, I think it's what @Taek's referring to - https://siasky.net


I haven't used IPFS so I was trying to see what the IPFS image URL would look like but when I tried to inspect the images using (right click -> inspect element), Chrome selects the whole division tab (class=MuiCardContent-root) in the Elements tab in web console. I found that it's happening because of (style="pointer-events: none;"). When this style attribute is removed from web console, I'm able to inspect individual elements like image, paragraph correctly. Just out of curiosity, do you know why (style="pointer-events: none;") is used here?


Check an URL with results: https://pollinations.ai/p/QmbhMnkgrqqwQ39BP7S3F8qNSqHueaQz42...

The landing page is a bit of a mess


The problem is their goal isn't to do these things well by the usual metrics, it's to do them using a decentralised implementation. It's the implementation model that is the product, not rapid replication, not fast access, not long term access to data, not large scale storage.

The problem is that their architecture by it's nature takes all the quality related qualifiers out of those goals. Replication, but not rapid, access but not fast, access to data but not long term or actually resilient, storage but not large scale. So it's only advantage is if you value decentralisation above all other characteristics.


I agree with you but I think compared to Http or even bittorrent It’s extremely easy to attack IPFS.

Anyone can register a lot of fake “seeder” for a file chunk making it hard to download that chunk.

Same problem for the name server.


as in government, even if you have the mythical unicorn, the actual behavior of the users is what decides what is right and will push that forward.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: