raise ValueError('compressed payload too long')
data = self._prefix + struct.pack('<12sI', command, len(compressed_payload)) + checksum + compressed_payload
self.transport.write(data)
- print "SEND", command, len(compressed_payload)
def __getattr__(self, attr):
prefix = 'send_'
return best, desired
- @memoize.memoize_with_backing(expiring_dict.ExpiringDict(5, get_touches=False))
+ @memoize.memoize_with_backing(expiring_dict.ExpiringDict(15, get_touches=False))
def score(self, share_hash, ht):
head_height, last = self.verified.get_height_and_last(share_hash)
score2 = 0
from __future__ import division
+import random
import time
from twisted.internet import reactor
node.delete()
new_value = old_value if value is self._nothing else value
- self.d[key] = self.expiry_deque.append((time.time(), key)), new_value
+ self.d[key] = self.expiry_deque.append((time.time() + random.expovariate(1/self.expiry_time), key)), new_value
return new_value
def expire(self):
+ t = time.time()
for node in self.expiry_deque:
timestamp, key = node.contents
- if timestamp + self.expiry_time > time.time():
+ if timestamp > t:
break
del self.d[key]
node.delete()