document search request routing

pull/4/head
Zlatin Balevsky 2018-07-03 18:01:29 +01:00
parent 51449bc84f
commit 771335c754
2 changed files with 6 additions and 1 deletions

View File

@ -14,6 +14,10 @@ By default Gnutella nodes become Ultrapeers automatically based on various crite
In the LimeWire flavor of Gnutella, ultrapeers had 32 slots for leaf connections (later on increased to 64) and 32 slots of connections to other ultrapeers. MuWire will allow hundreds of connections both by leafs and ultrapeers. This is done in order to reduce search latency and because CPU and RAM resources in modern computers are much higher than during the Gnutella era.
### Search request routing
Search requests originating from a leaf or locally at the ultrapeer get forwarded to all neighboring ultrapeers. Search requests arriving from an ultrapeer connection get forwarded only to those ultrapeer that have a keyword hit in their published Bloom filters. This simplifies the Gnutella model because instead of numeric ttl value a simple boolean can be used. Due to the higher fan-out factor this should result in similar search horizon.
## Content indexing
In Gnutella leafs upload Bloom filters of the keywords describing the files they are sharing to ultrapeers. Then, when a search query arrives at an ultrapeer if the hash of that query matches a bloom filter uploaded by a given leaf, the query is forwarded to that leaf.

View File

@ -67,6 +67,7 @@ Sent by a leaf when performing a search. Contains the reply-to b64 destination
{
type : "Search",
version: 1,
firstHop: false,
keywords : "great speeches"
replyTo : "asdfasf..."
}