Recent submissions

Comment · 5 months ago
Every limewire client was a host cache and came with a bootstrap list of ips of one kind or another. One feature that I'm surprised that Bitcoin didn't use.
Comment · 5 months ago
Gnutella developers created huge innovations and would have continued to do so if not sued out of existence. We solved scalability and had good download mesh + DHT solutions for sourcing. I'm sure we would have been at least as good as torrents (which we supported) if we had continued.
Comment · 5 months ago
LimeWire was huge .. 100s of millions of downloads in those days. It only went away because it was sued out of existence. Plus, by the end, it supported torrents as well.
Comment · 5 months ago
We solved all that and used DHTs and download meshes, etc ...
Comment · 5 months ago
Gnutella's original sin was that it combined distributed search with distributed download. In a rational world, that would be smart and good but in a litigious world, that was too sophisticated for the Supreme Court and they ruled it as infringing on copyright through inducement of the user. Gnutella clients, like other P2P clients with search, got sued out of existence.

Bittorrent offloaded the distributed search onto websites which routinely got sued or shutdown. Funnily enough, one of my big improvements to Gnutella in the first year of LimeWire was to drive out the website users because they were overwhelming the network upload capabilities without adding to them. That improved the 90% download failures in 2001 but interesting to wonder what if we had gone another way.

Comment · 5 months ago
Shout out to Gene Kan (https://en.wikipedia.org/wiki/Gene_Kan) who was the intermediary at least for the release of the Gnutella spec and reference client from Nullsoft and an early supporter. He died too young.
Comment · 5 months ago
We made it scale with last hop query routing. Basically we realized that 90% of the query traffic occurred on the last hop (ultrapeer to ultrapeer). So we took the keyword bloom filter we were already using on leaf node connections, aggregated those and propagated that to adjoining ultrapeers. Then we sampled response rates of queries from originating ultrapeers with increasing TTLs to get a sufficient but not overwhelming results. We also increased the ultrapeer to ultrapeer connections so that we could sample more efficiently while dropping the TTL.

That was LimeWire connections and other clients like BearShare and gtk-gnutella and possibly Gnucleus that obeyed the new protocol requirements. Others were kept in a sequestered network and deprioritized.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton