Claims
- 1. A method of persisting a node's reputation in a network having transient network communities where a collection of the nodes making up the network may change over time, comprising steps of:
using a persistent node identifier for each node in the network, even though a different network address may be assigned to the node upon entering the network multiple times; creating a mapping between the persistent node identifier of each node and a current network address used by that node; and recording results of each node's behavior as it interacts with other nodes in the network, wherein the mapping allows associating the behavior with the node even though its current network address may change.
- 2. The method according to claim 1, wherein the recorded results for each node indicate how successful the node is at responding to queries from other nodes.
- 3. The method according to claim 1, wherein the recorded results for each node indicate the node's efficiency at responding to queries from other nodes.
- 4. The method according to claim 3, wherein the efficiency is measured as elapsed time of the responses to the queries.
- 5. The method according to claim 2, wherein the success is determined for each of the queries the node can answer.
- 6. The method according to claim 2, wherein the success is determined collectively for all of the queries the node can answer.
- 7. The method according to claim 3, wherein the efficiency is determined for each of the queries the node can answer.
- 8. The method according to claim 1, wherein the efficiency is determined collectively for all of the queries the node can answer.
- 9. The method according to claim 1, wherein the node's reputation comprises a set of queries which the node can answer, as well as the recorded results of the node's behavior as it responds to those queries.
- 10. The method according to claim 1, wherein the node's reputation comprises a set of services available from the node, as well as the recorded results of the node's behavior as it performs those services.
- 11. The method according to claim 1, further comprising the step of forwarding a reference to the recorded results for a particular node, along with messages sent by the particular node.
- 12. The method according to claim 1, further comprising the steps of:
receiving, by a particular node, a request for content available from that particular node; and forwarding, by the particular node, the requested content, along with information asserting the particular node's reputation, wherein the reputation includes the recorded results for the particular node.
- 13. The method according to claim 12, further comprising the step of revising, by the particular node, its recorded results in response to receiving the request and forwarding the requested content.
- 14. The method according to claim 12, further comprising the steps of:
receiving the forwarded content at a receiving node; and storing, by the receiving node responsive to the receiving step, a local version of the particular node's reputation, wherein the local version reflects whether the received content is satisfactory to the receiving node.
- 15. The method according to claim 1, further comprising the step of broadcasting a message, by each node as it enters the network, thereby advertising the node's version of its reputation, wherein the reputation comprises the node's view of how successful it is in its interactions with other nodes in the network.
- 16. The method according to claim 15, wherein the reputation further comprises content available from the broadcasting node.
- 17. The method according to claim 15, wherein the reputation further comprises services available from the broadcasting node.
- 18. The method according to claim 15, further comprising steps of:
receiving, by another node in the network, the broadcast message; retrieving from the broadcast message, by the receiving node, the broadcasting node's version of its reputation; and storing a local copy of the retrieved reputation.
- 19. The method according to claim 15, wherein the advertised reputation is a reference to the broadcasting node's version of its reputation, and further comprising steps of:
receiving, by another node in the network, the broadcast message; retrieving from the broadcast message, by the receiving node, the reference; and storing a local copy of the reference.
- 20. The method according to claim 18, wherein the local copy reflects the receiving node's view of the broadcasting node's reputation.
- 21. The method according to claim 20, wherein the local copy ignores the broadcasting node's view of its reputation if the receiving node considers the broadcasting node to be untrustworthy.
- 22. The method according to claim 1, further comprising the steps of:
determining, by a particular node, that it needs content or a service from another node; determining which other nodes in the network can provide the needed content or service; and evaluating the recorded results for the nodes which can provide the needed content or service in order to select from among those nodes.
- 23. The method according to claim 1, wherein the recorded results indicate when a particular node is considered untrustworthy.
- 24. The method according to claim 1, wherein the recorded results are recomputed over time and thereby reflect whether the nodes are earning trust of other nodes in the network.
- 25. The method according to claim 24, wherein a particular node wanting to interact with another node in the network considers the other node's recorded results to determine whether to trust the other node.
- 26. The method according to claim 1, wherein the recorded results are recomputed over time and thereby reflect whether the nodes are considered, by other nodes in the network, to be efficient in responding to queries.
- 27. The method according to claim 26, wherein a particular node wanting to interact with another node in the network considers the recorded results of a plurality of other nodes to determine which of the other nodes can most efficiently carry out the interaction.
- 28. The method according to claim 1, wherein the persistent node identifier of each node is used locate a particular node's recorded results, even though the current network address of the particular node has changed since creation of the recorded results.
- 29. The method according to claim 15, further comprising the steps of:
receiving, by the broadcasting node, responses from other nodes which receive the broadcast message, wherein the responses comprise the other nodes' versions of their reputations; and using, by the broadcasting node, the received versions from the responses to determine a local view of the other nodes' reputations.
- 30. The method according to claim 29, further comprising the step of sending, by the broadcasting node, a subsequent message to each of the other nodes from which the responses are received, wherein the subsequent message requests the other nodes to propagate a request for identity of nodes, thereby enabling the broadcasting node to learn of nodes in other subnets and to exchange reputation information with those nodes in other subnets.
- 31. A system for persisting a node's reputation in a network having transient network communities where a collection of the nodes making up the network may change over time, comprising:
means for using a persistent node identifier for each node in the network, even though a different network address may be assigned to the node upon entering the network multiple times; means for creating a mapping between the persistent node identifier of each node and a current network address used by that node; and means for recording results of each node's behavior as it interacts with other nodes in the network, wherein the mapping allows associating the behavior with the node even though its current network address may change.
- 32. The system according to claim 31, wherein the recorded results for each node indicate how successful the node is at performing services for other nodes.
- 33. The system according to claim 31, wherein the recorded results for each node indicate the node's efficiency at performing services for other nodes.
- 34. The system according to claim 31, wherein the node's reputation comprises a set of queries which the node can answer and/or services available from the node, as well as the recorded results of the node's behavior as it responds to those queries and/or performs those services.
- 35. The system according to claim 31, further comprising:
means for receiving, by a particular node, a request for content available from that particular node; means for forwarding, by the particular node, the requested content, along with information asserting the particular node's reputation, wherein the reputation includes the recorded results for the particular node; and means for revising, by the particular node, its recorded results in response to receiving the request and forwarding the requested content.
- 36. The system according to claim 35, further comprising:
means for receiving the forwarded content at a receiving node; and means for storing, by the receiving node responsive to operation of the means for receiving, a local version of the particular node's reputation, wherein the local version reflects whether the received content is satisfactory to the receiving node.
- 37. The system according to claim 31, further comprising:
means for determining, by a particular node, that it needs content or a service from another node; means for determining which other nodes in the network can provide the needed content or service; and means for evaluating the recorded results for the nodes which can provide the needed content or service in order to select from among those nodes.
- 38. A computer program product for persisting a node's reputation in an ad hoc network where a collection of the nodes making up the network may change over time, the computer program product embodied on one or more computer-readable media and comprising:
computer-readable program code means for using a persistent node identifier for each node in the network, even though a different network address may be assigned to the node upon entering the network multiple times; computer-readable program code means for creating a mapping between the persistent node identifier of each node and a current network address used by that node; and computer-readable program code means for recording results of each node's behavior as it interacts with other nodes in the network, wherein the mapping allows associating the behavior with the node even though its current network address may change.
- 39. The computer program product according to claim 38, wherein the node's reputation comprises a set of queries which the node can answer and/or services available from the node, as well as the recorded results of the node's behavior as it responds to those queries and/or performs those services.
- 40. The computer program product according to claim 39, wherein the recorded results for each node indicate (1) how successful the node is at responding to queries from, and/or performing services for, other nodes and/or (2) the node's efficiency at responding to queries from, or performing services for, other nodes, wherein the recorded results are recomputed over time to reflect changes to the node's success and/or efficiency.
- 41. The computer program product according to claim 38, further comprising:
computer-readable program code means for determining, by a particular node, that it needs content or a service from another node; computer-readable program code means for determining which other nodes in the network can provide the needed content or service; and computer-readable program code means for evaluating the recorded results for the nodes which can provide the needed content or service in order to select from among those nodes.
- 42. The computer program product according to claim 38, wherein the persistent node identifier of each node is used to locate a particular node's recorded results, even though the current network address of the particular node has changed since creation of the recorded results.
- 43. The computer program product according to claim 38, further comprising:
computer-readable program code means for broadcasting a message, by each node as it enters the network, thereby advertising the node's version of its reputation; computer-readable program code means for receiving, by the broadcasting node, responses from other nodes which receive the broadcast message, wherein the responses comprise the other nodes' versions of their reputations; and computer-readable program code means for using, by the broadcasting node, the received versions from the responses to determine a local view of the other nodes' reputations.
- 44. The computer program product according to claim 43, further comprising computer-readable program code means for sending, by the broadcasting node, a subsequent message to each of the other nodes from which the responses are received, wherein the subsequent message requests the other nodes to propagate a request for identity of nodes, thereby enabling the broadcasting node to learn of nodes in other subnets and to exchange reputation information with those nodes in other subnets.
- 45. The computer program product according to claim 38, further comprising computer-readable program code means for initializing the recorded results of one or more nodes' behavior with an externally-determined value.
RELATED INVENTIONS
[0001] The present invention is related to the following commonly-assigned inventions, all of which were filed concurrently herewith and which are hereby incorporated herein by reference: U.S. Pat. No. ______ (Ser. No. ______), titled “Interminable Peer Relationships in Transient Communities”; U.S. Pat. No. ______ (Ser. No. ______), titled “Content Tracking in Transient Communities”; U.S. Pat. No. ______ (Ser. No. ______), titled “Providing Management Functions in Decentralized Networks”; U.S. Pat. No. ______ (Ser. No. ______), titled “Broadcast Tiers in Decentralized Networks”; and U.S. Pat. No. ______ (Ser. No. ______, titled “Managing Storage Resources in Decentralized Networks”.