A method performed by a computer system for publishing information in a distributed network without a central management infrastructure, comprising: receiving an indication of a new node and a destination node, the new node omitted from a contact list associated with the destination node, the contact list having entries in the form of a key and a location, wherein each key of the entry is a hash of the name of the corresponding node and each location of the entry is a location of the corresponding node in a communication system, wherein the contact list keys are arranged in a key-space using a logarithmic distribution (c log d) of the keys that are associated with the neighboring nodes, wherein the logarithmic distribution of the keys in the key space is defined based on a distance between any two keys as the arithmetic difference of bit patterns of the keys, viewed as integers modulo the size of the key space; introducing the new node to the destination node by sending the destination node a request to establish a new circuit to the new node; and causing the destination node to add a new entry into its contact list, wherein the new entry includes the key associated with the new node to the contact list, wherein the new entry is added when adding the key associated with the new node improves the logarithmic distribution c log d of the keys associated with neighboring nodes wherein K=hash and is a value in the key-space, wherein for each value d between 0 and a key-space size, N d is a number of entries in the contact list for N whose keys are a distance less than d from K=hash, such that N d is defined as: N d = | N ′ such that | hash N − hash N ′ | < d | < c log d wherein c is a constant, and wherein the inequality states that the distribution of the keys of the entries in a node N's contact list occur increasingly sparsely at greater distances from the hash value of N. receiving an indication of a new node and a destination node, the new node omitted from a contact list associated with the destination node, the contact list having entries in the form of a key and a location, wherein each key of the entry is a hash of the name of the corresponding node and each location of the entry is a location of the corresponding node in a communication system, wherein the contact list keys are arranged in a key-space using a logarithmic distribution (c log d) of the keys that are associated with the neighboring nodes, wherein the logarithmic distribution of the keys in the key space is defined based on a distance between any two keys as the arithmetic difference of bit patterns of the keys, viewed as integers modulo the size of the key space; introducing the new node to the destination node by sending the destination node a request to establish a new circuit to the new node; and causing the destination node to add a new entry into its contact list, wherein the new entry includes the key associated with the new node to the contact list, wherein the new entry is added when adding the key associated with the new node improves the logarithmic distribution c log d of the keys associated with neighboring nodes wherein K=hash and is a value in the key-space, wherein for each value d between 0 and a key-space size, N d is a number of entries in the contact list for N whose keys are a distance less than d from K=hash, such that N d is defined as: N d = | N ′ such that | hash N − hash N ′ | < d | < c log d wherein c is a constant, and wherein the inequality states that the distribution of the keys of the entries in a node N's contact list occur increasingly sparsely at greater distances from the hash value of N. wherein c is a constant, and wherein the inequality states that the distribution of the keys of the entries in a node N's contact list occur increasingly sparsely at greater distances from the hash value of N.