Hacker News new | ask | show | jobs
by akavel 45 days ago
Huge congrats on the release!

I'm slowly trying to build an app on Iroh; it's progressing tiny bit by tiny bit, but I must admit I'm struggling a lot all the time, both with various low-level details, as well as with understanding many high-level aspects, concepts, and approaches. Oftentimes I have to resort to some LLM-generated "wiki" websites to help me progress. I really hope you'll manage one day to allocate some more resources to improve the docs. That said, when I manage to muster enough strength, I do manage to grind some progress, and also it's good to know the underlying tech seems robust, given how many real-world solutions you've built on it!

At this moment, if I can try to ask one question: AFAIU Iroh emerged from an attempt at fixing IPFS. I also understand you've since focused more on providing the lower-level building blocks that would allow this and other solutions. Understanding some basics, but still having hard time to get a really solid grasp of the whole of Iroh, I wonder: between Iroh, p2panda, and Willow, what's available and what's missing / needs to be added if one wanted to try and build an "IPFS-like" with those technologies? I'm especially interested in an idea of a "new web" that would defuse DDoS of static websites in a Torrent-like way, forcing the downloading peers to also share their upstream bandwidth while doing this. I'm also thinking of e.g. a "globally-distributed Internet Archive", where I can easily download part of the Archive to my computer, and this automatically improves its availability on such "new web" for subsequent downloaders and browsers. Would you care to give a newbie something of a high-level overview of how one could try to do it over maybe some appropriate combination of Iroh+p2panda+Willow+DHT?

1 comments

We started as an IPFS implementation, but since then the scope of iroh has been reduced. Iroh is not IPFS, but more like libp2p.

If you want something like a globally distributed internet archive you would have to use protocols on top of iroh. For example iroh-blobs provides verified streaming of content-addressed data using the BLAKE3 tree hash function. It is very close to itself being 1.0 (probably Q3), but for now it requires you to know from where to stream the data.

What is missing to fully replace IPFS is a global distributed content discovery system. This is a really hard problem that IPFS itself never solved reliably in my opinion.

I also still want this to happen eventually, but the first step is to get the connection layer super reliable and fast, which we have done.

I wish you could also delegate this problem to the mainline DHT, but alas that is not possible because of some mainline limitiations. So I am working on the side on a new DHT, see https://www.iroh.computer/blog/lets-write-a-dht-1

> I wish you could also delegate this problem to the mainline DHT, but alas that is not possible because of some mainline limitiations.

Have you seen https://github.com/bittorrent/bittorrent.org/pull/174 - does that address the main issue?

Yeah, that’s from a friend of mine. If something like this would gain traction that would be cool.
Is content discovery on the official roadmap? If the original peer say peer A goes offline but B downloaded $X, can see find B and download, validate the content today?

Sorry if this has been answered or covered on the web I'm currently travelling.

Edit: I managed to read the linked page, thank you for working on such an amazing project!

We don't have the post 1.0 roadmap very fleshed out at this point. The team has been extremely focused on getting 1.0 out of the door for the last year. This took longer than expected, as expected :-)

But I can say that some form of global content discovery is in my personal definition of done for the project. I'm the BLAKE3 guy at n0, and I don't consider blobs done without global content discovery.

But it is a hard problem, and our standards for "it just works" are pretty high.

Excellent I look forward to it, I like Iroh objective of keeping it's footprint small enough to run on low powered devices. IPFS in my experience is very heavy.

If my understanding is right, content discovery can't happen on the existing mainline DHT which is a shame. Maybe once you have enough traction you can propose a standards change? DHT mainline today is amazing because of its network size.

There is this https://github.com/bittorrent/bittorrent.org/pull/174

We would love this to gain more traction so we can use mainline also for content discovery. But we have to be realistic: mainline moves slowly, and for good reasons.

Thank you very much for the response! I'm definitely going to read the blogpost, thanks as well for sharing it!