Remix.run Logo
gbildson an hour 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.