mirror of https://github.com/zlatinb/muwire
document search request routing
parent
51449bc84f
commit
771335c754
|
@ -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.
|
||||
|
|
|
@ -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..."
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue