diff --git a/p2p/kademlia/network.py b/p2p/kademlia/network.py index 12ebaec..4394d0c 100644 --- a/p2p/kademlia/network.py +++ b/p2p/kademlia/network.py @@ -1,7 +1,7 @@ """ Package for interacting on the network at a high level. """ -STORE_ANYWHERE=True +STORE_ANYWHERE=False import random @@ -232,9 +232,6 @@ class Server: biggest = max([n.distance_to(node) for n in nodes]) if self.node.distance_to(node) < biggest: self.storage[dkey] = value - # ## IMPOSSIBLE STORING UNDIGESTED IN LOCAL STORAGE FOR NOW @DEBUG @HACK - # #self.storage.data_debug[key]=value - # self.storage.set(dkey,value) results = [self.protocol.call_store(n, dkey, value) for n in nodes] diff --git a/p2p/kademlia/storage.py b/p2p/kademlia/storage.py index 4a5e965..2dd3de7 100644 --- a/p2p/kademlia/storage.py +++ b/p2p/kademlia/storage.py @@ -119,14 +119,7 @@ class HalfForgetfulStorage(IStorage): self.fn = fn self.ttl = ttl self.log = logger.info - self.data_root = {} if not os.path.exists(self.fn) else self.load() - - for x in ['_digest','_plain']: - if not x in self.data_root: - self.data_root[x]=OrderedDict() - - self.data = self.data_root['_digest'] - self.data_plain = self.data_root['_plain'] + self.data = self.load() # import pickledb # self.data = pickledb.load(self.fn,auto_dump=True) @@ -142,6 +135,8 @@ class HalfForgetfulStorage(IStorage): asyncio.create_task(do()) def load(self): + if not os.path.exists(self.fn): return OrderedDict() + self.log('loading pickle...') with open(self.fn,'rb') as of: res=pickle.load(of) @@ -155,7 +150,7 @@ class HalfForgetfulStorage(IStorage): def items(self): return [(k,v) for k,v in zip(self.keys(),self.values())] def values(self): return [self.data[k] for k in self.keys()] - def set(self,dkey,value,undigested_too=None): + def set(self,dkey,value): # log(f'HFS.set({key}) -> {value}') newval = (time.monotonic(), value) @@ -165,12 +160,6 @@ class HalfForgetfulStorage(IStorage): del self.data[dkey] self.data[dkey]=newval - if undigested_too: - key=undigested_too - if key in self.data: - del self.data[key] - self.data_plain[key]=newval - # save and prune self.dump() @@ -200,14 +189,13 @@ class HalfForgetfulStorage(IStorage): #self.cull() return self.get(key) - def __repr__(self,lim_eg=20): + def __repr__(self,lim_eg=5): #self.cull() #return repr(self.data) - eg = list(sorted(self.data_plain.keys()))[:lim_eg] + eg = list(sorted(self.data.keys()))[:lim_eg] msg=f"""HalfForgetfulStorage() - # digested keys = {len(self.data)} - # undigested keys = {len(self.data_plain)} - e.g., {eg} + # keys = {len(self.data)} + e.g. = {eg} """ return msg