From c769bd0c05e0812ebbaec36e3e2644b57ad8361e Mon Sep 17 00:00:00 2001 From: joe Date: Wed, 20 Sep 2017 20:43:33 -0400 Subject: Refresh tweak. Search own-id only for refreshing the last bucket. --- src/Network/Kademlia.hs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/Network/Kademlia.hs') diff --git a/src/Network/Kademlia.hs b/src/Network/Kademlia.hs index 873fc8c0..f1ffda19 100644 --- a/src/Network/Kademlia.hs +++ b/src/Network/Kademlia.hs @@ -277,7 +277,13 @@ forkPollForRefresh interval psq refresh = do again refreshBucket :: forall nid tok ni addr. - ( Show nid, Serialize nid, Ord nid, Ord ni, Hashable nid, Hashable ni, Ord addr ) => + ( Show nid + , Serialize nid + , Ord nid + , Ord ni + , Ord addr + , Hashable nid + , Hashable ni ) => Search nid addr tok ni ni -> TVar (BucketList ni) -> Int -> IO Int refreshBucket sch var n = do tbl <- atomically (readTVar var) @@ -379,10 +385,6 @@ bootstrap sch var ping ns ns0 = do (R.defaultBucketCount - 1) again cnt (size,num):_ -> do - -- If we don't yet have enough buckets, we need to search our own id. - -- We indicate that by setting the bucket number to the target. - let num' | bktCount tbl < R.defaultBucketCount = R.defaultBucketCount - 1 - | otherwise = num - hPutStrLn stderr $ "Bucket too small, refresh "++ show (num',(size,num),shp) - cnt <- refreshBucket sch var num' + hPutStrLn stderr $ "Bucket too small, refresh "++ show (size,num,shp) + cnt <- refreshBucket sch var num again cnt -- cgit v1.2.3