This commit is contained in:
Dmitry Zuikov 2023-03-30 08:44:42 +03:00
parent f0d8d6d4d2
commit 3f47cd102c
2 changed files with 62 additions and 45 deletions

View File

@ -5,14 +5,18 @@ import HBS2.Events
import HBS2.Hash
import HBS2.Clock
import HBS2.Net.Proto
import HBS2.Net.Proto.Peer
import HBS2.Prelude.Plated
import HBS2.Storage
import HBS2.Actors.Peer
import HBS2.Net.Proto.Sessions
import Data.Functor
import Data.Word
import Prettyprinter
import Data.ByteString.Lazy (ByteString)
import Data.Foldable
import Data.Foldable hiding (find)
import Data.Maybe
import System.Random.Shuffle
@ -82,13 +86,19 @@ blockChunksProto :: forall e m . ( MonadIO m
, Response e (BlockChunks e) m
, HasDeferred e (BlockChunks e) m
, HasOwnPeer e m
, Sessions e (KnownPeer e) m
, Pretty (Peer e)
)
=> BlockChunksI e m
-> BlockChunks e
-> m ()
blockChunksProto adapter (BlockChunks c p) =
blockChunksProto adapter (BlockChunks c p) = do
peer <- thatPeer (Proxy @(BlockChunks e))
auth <- find (KnownPeerKey peer) id <&> isJust
when auth do
case p of
BlockGetChunks h size n1 num -> do

View File

@ -2,10 +2,13 @@ module HBS2.Net.Proto.BlockInfo where
import HBS2.Prelude.Plated
import HBS2.Net.Proto
import HBS2.Net.Proto.Peer
import HBS2.Net.Proto.Sessions
import HBS2.Events
import HBS2.Hash
import Data.Functor
import Data.Maybe
data BlockInfo e = GetBlockSize (Hash HbSync)
| NoBlock (Hash HbSync)
@ -21,6 +24,7 @@ blockSizeProto :: forall e m . ( MonadIO m
, Response e (BlockInfo e) m
, HasDeferred e (BlockInfo e) m
, EventEmitter e (BlockInfo e) m
, Sessions e (KnownPeer e) m
)
=> GetBlockSize HbSync m
-> HasBlockEvent HbSync e m
@ -31,6 +35,9 @@ blockSizeProto getBlockSize evHasBlock =
\case
GetBlockSize h -> do
-- liftIO $ print "GetBlockSize"
p <- thatPeer (Proxy @(BlockInfo e))
auth <- find (KnownPeerKey p) id <&> isJust
when auth do
deferred (Proxy @(BlockInfo e))$ do
getBlockSize h >>= \case
Just size -> response (BlockSize @e h size)