There is an issue when republishing keys. In RefreshTable all the keys older than one hour are republished. The problem is in network.py where the key is set. Since the "key" when republishing is actually a sha1 digest you do not need to create a digest of it again. In addition the self.log.debug() messages will throw an exception because the key is a digest, not a string.
def set(self, key, value):
"""
Set the given key to the given value in the network.
"""
self.log.debug("setting '%s' = '%s' on network" % (key, value)) <-- key is a digest OR a string here
There is an issue when republishing keys. In RefreshTable all the keys older than one hour are republished. The problem is in network.py where the key is set. Since the "key" when republishing is actually a sha1 digest you do not need to create a digest of it again. In addition the self.log.debug() messages will throw an exception because the key is a digest, not a string.