HNHacker News
TopNewBestAskShowJobs

gbildson

18 karma · joined January 27, 2012

submissionscomments
gbildson··on Gnutella: A Protocol Outliving the World That Created It
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.
gbildson··on Gnutella: A Protocol Outliving the World That Created It
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.
gbildson··on Gnutella: A Protocol Outliving the World That Created It
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.
gbildson··on Gnutella: A Protocol Outliving the World That Created It
We solved all that and used DHTs and download meshes, etc ...
gbildson··on Gnutella: A Protocol Outliving the World That Created It
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.

gbildson··on Gnutella: A Protocol Outliving the World That Created It
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.
gbildson··on Gnutella: A Protocol Outliving the World That Created It
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.