System and method for searching a peer-to-peer network
First Claim
1. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
- formatting a peer-to-peer search request message;
solving a distributed throttling computational puzzle for the peer-to-peer search request message; and
sending the peer-to-peer search request message to at least one receiving peer in a peer-to-peer network.
2 Assignments
0 Petitions
Accused Products
Abstract
A peer-to-peer (P2P) search request message may multicast from an originating peer to its neighboring peers. Each neighboring peer may multicast the request message in turn until a search radius is reached. Each peer receiving the request message may conduct a single node search. If the single node search is successful, a P2P search response message may be generated. Each receiving peer may filter duplicate messages and may multicast to less than 100% of its neighbors. Responses may be cached and cached responses sent in response to request messages, expanding the effective search radius of a given P2P search. The multicast probability for a neighbor may be a function of how frequently the neighbor has previously responded to a particular search type. To reduce abuse by impolite or malicious peers, in addition to rate-based throttling, originating peers may be required to solve a computationally expensive puzzle.
136 Citations
34 Claims
-
1. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
-
formatting a peer-to-peer search request message;
solving a distributed throttling computational puzzle for the peer-to-peer search request message; and
sending the peer-to-peer search request message to at least one receiving peer in a peer-to-peer network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
-
formatting a peer-to-peer search request message;
selecting a multicast set from at least one neighboring peer of a sending peer, each neighboring peer of the sending peer having a peer-to-peer search multicast probability of being included in the multicast set, and the peer-to-peer search multicast probability is a function comprising the number of neighboring peers of the sending peer; and
sending the peer-to-peer search request message to each neighboring peer of the sending peer in the multicast set. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
-
parsing a peer-to-peer search request message, the peer-to-peer search request message comprising a plurality of data fields, the plurality of data fields comprising;
a first data field containing a search request message identifier; and
a second data field containing a search request identifier;
discarding the peer-to-peer search request message if the search request message identifier in the first data field of the peer-to-peer search request message is in a search request cache; and
passing at least one data field of the peer-to-peer search request message to at least one registered application if the search request identifier in the second data field of the peer-to-peer search request message is not in the search request cache. - View Dependent Claims (18, 19)
-
-
20. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
-
parsing a peer-to-peer search request message;
verifying that a distributed throttling computational puzzle for the peer-to-peer search request message is solved; and
discarding the peer-to-peer search request message if the distributed throttling computational puzzle for the peer-to-peer search request message is not solved. - View Dependent Claims (21, 22, 23)
-
-
24. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
-
updating a peer-to-peer routing path of a peer-to-peer search request message to include a forwarding peer;
determining that a forwarding condition is true for each neighboring peer of the forwarding peer in a peer-to-peer network, the forwarding condition comprising that the neighboring peer is not in the peer-to-peer routing path of the peer-to-peer search request message; and
forwarding the peer-to-peer search request message to the neighboring peer if the forwarding condition is true for the neighboring peer. - View Dependent Claims (25, 26, 27)
-
-
28. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
-
formatting a peer-to-peer search response message in response to a peer-to-peer search request message, the peer-to-peer search request message having a peer-to-peer routing path, the peer-to-peer routing path listing, in order, at least one peer in a peer-to-peer network traversed by the peer-to-peer search request message, the peer-to-peer routing path listing beginning with an originating peer of the peer-to-peer search request message; and
sending, from a responding peer, the peer-to-peer search response message to the first peer in the peer-to-peer routing path that is a neighboring peer of the responding peer.
-
-
29. A computer-readable medium having thereon computer-executable instructions for performing a method comprising:
-
parsing a peer-to-peer search response message sent in response to a peer-to-peer search request message, the peer-to-peer search response message having a peer-to-peer request routing path, the peer-to-peer request routing path listing, in order, at least one peer in a peer-to-peer network traversed by the peer-to-peer search request message, the peer-to-peer routing path listing beginning with an originating peer of the peer-to-peer search request message; and
forwarding, from a forwarding peer, the peer-to-peer search response message to the first peer in the peer-to-peer request routing path that is a neighboring peer of the forwarding peer.
-
- 30. A computerized system, comprising a search message filter module configured to, at least, discard an incoming peer-to-peer search request message if the incoming peer-to-peer search request message does not include a valid solution to a distributed throttling computational puzzle for the incoming peer-to-peer search request message.
Specification