From 2761af5d60fdd87ab6c93aa3b35ab8d4ff15d384 Mon Sep 17 00:00:00 2001 From: Dmitry Zuikov Date: Thu, 8 Aug 2024 05:26:47 +0300 Subject: [PATCH] Revert "not-good" This reverts commit 7e0305891bf79e6e6e05e8c969c710eac7e6fb92. --- hbs2-peer/lib/HBS2/Peer/RPC/Client/RefChan.hs | 3 -- hbs2-sync/src/HBS2/Sync/Prelude.hs | 32 ++++--------------- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/hbs2-peer/lib/HBS2/Peer/RPC/Client/RefChan.hs b/hbs2-peer/lib/HBS2/Peer/RPC/Client/RefChan.hs index cf812d2e..fba1344f 100644 --- a/hbs2-peer/lib/HBS2/Peer/RPC/Client/RefChan.hs +++ b/hbs2-peer/lib/HBS2/Peer/RPC/Client/RefChan.hs @@ -1,5 +1,4 @@ {-# Language AllowAmbiguousTypes #-} -{-# Language UndecidableInstances #-} module HBS2.Peer.RPC.Client.RefChan where import HBS2.OrDie @@ -135,8 +134,6 @@ data RefChanUpdateUnpacked e = A (AcceptTran e) | P HashRef (ProposeTran e) deriving stock (Generic) -instance ForRefChans e => Serialise (RefChanUpdateUnpacked e) - {-# COMPLETE A,P #-} walkRefChanTx :: forall proto m . ( MonadIO m diff --git a/hbs2-sync/src/HBS2/Sync/Prelude.hs b/hbs2-sync/src/HBS2/Sync/Prelude.hs index 18a6e743..ab8fcb8d 100644 --- a/hbs2-sync/src/HBS2/Sync/Prelude.hs +++ b/hbs2-sync/src/HBS2/Sync/Prelude.hs @@ -822,7 +822,7 @@ mergeState seed orig = do -- впоследствии -- -getStateFromDir0 :: ( MonadUnliftIO m +getStateFromDir0 :: ( MonadIO m , HasClientAPI RefChanAPI UNIX m , HasClientAPI StorageAPI UNIX m , HasStorage m @@ -841,7 +841,7 @@ getStateFromDir0 seed = do getStateFromDir seed dir incl excl -getStateFromDir :: ( MonadUnliftIO m +getStateFromDir :: ( MonadIO m , HasClientAPI RefChanAPI UNIX m , HasClientAPI StorageAPI UNIX m , HasStorage m @@ -883,44 +883,24 @@ getStateFromDir seed path incl excl = do S.yield (p,e) -getStateFromRefChan :: forall m . ( MonadUnliftIO m +getStateFromRefChan :: forall m . ( MonadIO m , HasClientAPI RefChanAPI UNIX m , HasClientAPI StorageAPI UNIX m , HasStorage m - , HasRunDir m ) => MyRefChan -> m [(FilePath, Entry)] -getStateFromRefChan rchan = flip runContT pure do - - cacheFile <- getRunDir <&> ( ".hbs2-sync/state/txcache") +getStateFromRefChan rchan = do debug $ red "getStateFromRefChan" <+> pretty (AsBase58 rchan) - cache <- ContT $ bracket (compactStorageOpen mempty cacheFile) compactStorageClose - - sto <- lift getStorage + sto <- getStorage outq <- newTQueueIO tss <- newTVarIO mempty - let check h = Compact.getValEither @(RefChanUpdateUnpacked L4Proto) cache h - <&> either (const True) isNothing - - lift $ walkRefChanTx @UNIX check rchan $ \txh -> \case - tx -> Compact.putVal cache txh tx - - txhashes <- Compact.keys cache - <&> fmap (deserialiseOrFail @HashRef . LBS.fromStrict) - <&> rights - - vals <- mapM (Compact.getValEither @(RefChanUpdateUnpacked L4Proto) cache) txhashes - <&> rights - <&> catMaybes - -- FIXME: may-be-slow - for_ vals $ \case - + walkRefChanTx @UNIX (const $ pure True) rchan $ \txh -> \case A (AcceptTran ts _ what) -> do -- debug $ red "ACCEPT" <+> pretty ts <+> pretty what for_ ts $ \w -> do