Search

From Pfyshnet

Jump to: navigation, search


DDR is utilized to facilitate anonymous and secure search also. Unlike most networks that have attempted to implement search, it is not a weak point for pfyshnet. DDR affords the user the same comfort level and security for search as it does for any other transaction. No keyword, or even keyword hash, is ever revealed to any intermediate nodes. Only the hash of the keyword is revealed to final destination nodes likely to be storing data associated with the keyword hash.

When a node receives a new group key it can choose to use it to create a Search Specification. A Search Specification is just like a Download Specification except that there is no data directly associated with it (there is no tag value). When a node creates a new Search Specification with a new group key it must share it with as many nodes as possible for it to be effective. It is wrapped in an outbound node to node route and dispatched. When it reaches the destination node, it openly distributes it to other nodes who propagate it forward for wide distribution.


The public group keys from the Search Specification are hashed together to form a level ID which is truncated to the depth indicated by the number of keys, just as normal level values are. When a user wishes to search for a keyword the keyword is hashed. The node is then queried for all the Search Specifications where the partial level ID value matches the keyword hash truncated to the same depth. The full keyword hash, and a return route is then encoded as a DDR route using the Search Specification's group keys. It is then dispatched. A node at the end of the DDR route will then search for the full keyword hash value in its database and return any matching data associated.


When a user has uploaded data to the network and wants to allow others to be able search for it with a given keyword, the full keyword hash and Download Specification are stored using matching Search Specifications.


It is important to note that many different Search Specifications may match the search keyword hash, and the Download Specification and full keyword is stored with all the matching Search Specifications. The same is true for searches. Many Search Specifications may match the hash of the search keyword, and the user my receive the same results multiple times. The tag value of the returned Download Specifications can be used to identify duplicate returns.


Just as DDR keeps the requested tag value encoded until it reaches a destination likely to have the data, it keeps the keyword hash value encoded until it reaches a node likely to have data stored for the keyword hash.

Personal tools
SourceForge.net Logo