diff --git a/hbs2-peer/app/RefChan.hs b/hbs2-peer/app/RefChan.hs index d9432df8..b97ef0ff 100644 --- a/hbs2-peer/app/RefChan.hs +++ b/hbs2-peer/app/RefChan.hs @@ -437,6 +437,8 @@ logMergeProcess _ q = do trans <- filter (not . flip HashSet.member current) . mconcat <$> mapM (lift . readLog sto) logs + guard (not $ List.null trans) + -- итак, тут приехал весь лог, который есть у пира -- логично искать подтверждения только в нём. если -- пир принял транзы без достаточного количества @@ -456,8 +458,6 @@ logMergeProcess _ q = do r <- forM trans $ \href -> runMaybeT do - debug $ "TO MERGE" <+> pretty href - blk <- MaybeT $ liftIO $ getBlock sto (fromHashRef href) debug $ "BLOCK OK" <+> pretty href @@ -508,9 +508,10 @@ logMergeProcess _ q = do let pt = toPTree (MaxSize 256) (MaxNum 256) merged - liftIO do - nref <- makeMerkle 0 pt $ \(_,_,bss) -> do - void $ putBlock sto bss + unless (List.null new) do + liftIO do + nref <- makeMerkle 0 pt $ \(_,_,bss) -> do + void $ putBlock sto bss - updateRef sto chanKey nref + updateRef sto chanKey nref