Hi, 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? Thanks. Gordan