[Tech] Key Space Specialization Calculation

gordan at bobich.net gordan at bobich.net
Sun Sep 28 16:57:30 BST 2008


I'm trying to work out how Freenet determines node specialization within 
one node, according to the keys it contains, and I haven't found any 
detailed documentation on this.

I seem to remember seeing mentions of a method to represent a node's 
specialization as just another 160-bit key (if files are keyed by a 
160-bit hash), according to the "proximity" of keys in the data store to 
each other and picking the point in the key space that is most densely 
populated - but I've not been able to find any documentation on the 
algorithm used.

Most other DHT projects use a somewhat naive bucketing approach of 
dividing the key space into a fixed number of buckets (let's say 256 for 
the sake of the argument), and then doing a simple tally based on the 
first byte of the keys in the store. Obviously, this approach doesn't 
scale particularly well.

So, what I'd like to know is what is the algorithm used for 
determining the node's specialization in Freenet?



More information about the Tech mailing list