pubky / pkarr

Public Key Addressable Resource Records (sovereign TLDs)
https://app.pkarr.org
MIT License
143 stars 16 forks source link

IPFS DHT #5

Closed jakiki6 closed 10 months ago

jakiki6 commented 1 year ago

Why do you not make use of the IPFS DHT? It's a lot more robust and provides basically everything you need, since you can publish your records as an IPNS record.

decentralgabe commented 10 months ago

publishing to both would be nice

Nuhvi commented 10 months ago

If IPFS was usable at all I would have done so. It is not. Saying that it is "a lot more robust" makes me question whether we are both living in the same universe.

dpc commented 10 months ago

The OP got a bit harsh response, but to be fair the original post does come a bit arrogant, so I guess it's fair.

But I actually wanted to inquiry a bit deeper. As I was trying ipfs couple of times over the years, it did work ... rather poorly. But I'm not sure if it was just my impression. If anyone could throw at me a link or a bit of text explaining the state of IPFS and why it kind of ... never got anywhere, I would appreciate it. Thank you.

Nuhvi commented 10 months ago

I am really sorry for the OP, I never answered since Jun 7 because I knew I couldn't be impassionate about this, I did my best I swear.

Let me try again.

First, Mainline DHT is:

  1. 15 years old battle-tested
  2. Has ~10 million nodes of organic users (torrent clients that open ports or use upnp)
  3. Is very reliable and relatively fast.
  4. Simple enough that you can read all relevant spec BEP0005, BEP0044 and implement a usable version of it in a weekend, so you can actually confirm the claims 1 through 3.
  5. It is done. It is finished. It doesn't change, it found its product-market-fit, it is no longer an interesting project, it is a utility, a known quantity like DNS servers.

In comparison, IPFS, which had the benefit of hindsight (it literally just copied BitTorrent), did such a horrible job that it:

  1. Is orders of magnitude smaller, but still...
  2. Much slower and less reliable.

So the question isn't "Why not use IPFS", The question is rather Why does IPFS exist at all? its biggest contribution is to convince people that DHTs are unfeasible, I spend most of my time trying to help traumatized folks to trust Mainline DHT, because most of their experience comes from playing with IPFS.

Now, to your question, How did this mess happen? Well, I have no definitive answer, but I suspect that Protocol Labs while hiring very smart engineers, have a culture that encourages infinite complexity.

They deny themselves taking advantage of information about the system for the sake of generalization, it is literally the opposite of optimization.

BitTorrent on the other hand has a culture of committing to the best engineering choices at the time for a clearly defined use case, Do that for as long as they can get away with, then if necessary, gradually migrate to a new version where you again commit to the best design you can think of.

I submit that no matter how smart Protocol Labs engineers are, they can't make performant software without clear assumptions, they can't make simple designs when the priority is infinite future compatibility.

The result is software that is impossible to fully understand and does nothing. But hey it is forward-compatible and abstract enough to be interplanetary.

Nuhvi commented 10 months ago

For the record:

IPNS: https://github.com/ipfs/kub Mainline: Screenshot 2023-09-10 at 10 14 41