From 5be6292a76960abbd9cf5a918975d41302ec7da2 Mon Sep 17 00:00:00 2001 From: Dmitry Zuikov Date: Wed, 15 Feb 2023 11:53:50 +0300 Subject: [PATCH] rpc-own-peer-key --- .fixme/log | 4 +++- docs/devlog.md | 4 ++++ hbs2-peer/app/PeerMain.hs | 12 +++++++++++- hbs2-peer/app/RPC.hs | 8 ++++---- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.fixme/log b/.fixme/log index e81a6e1b..c1a998d6 100644 --- a/.fixme/log +++ b/.fixme/log @@ -161,4 +161,6 @@ fixme-set "workflow" "test" "DTZ2RqeN7y" fixme-set "workflow" "test" "84iLJsvCtT" fixme-set "workflow" "wip" "GkCkjVMAXW" -fixme-set "workflow" "test" "GkCkjVMAXW" \ No newline at end of file +fixme-set "workflow" "test" "GkCkjVMAXW" + +fixme-set "workflow" "test" "t8M3AEnm93" \ No newline at end of file diff --git a/docs/devlog.md b/docs/devlog.md index 4d5b8904..6de2973c 100644 --- a/docs/devlog.md +++ b/docs/devlog.md @@ -1,6 +1,10 @@ ## 2023-02-15 +TODO: rpc-own-peer-key + + poke to print peer's own auth key + TODO: rpc-known-peers TODO: announce-group diff --git a/hbs2-peer/app/PeerMain.hs b/hbs2-peer/app/PeerMain.hs index f24b47fd..99973df8 100644 --- a/hbs2-peer/app/PeerMain.hs +++ b/hbs2-peer/app/PeerMain.hs @@ -538,7 +538,11 @@ runPeer opts = Exception.handle myException $ do void $ liftIO $ waitAnyCatchCancel workers let pokeAction _ = do + who <- thatPeer (Proxy @(RPC e)) + let k = view peerSignPk pc + -- FIXME: to-delete-POKE liftIO $ atomically $ writeTQueue rpcQ POKE + request who (RPCPokeAnswer @e k) let annAction h = do liftIO $ atomically $ writeTQueue rpcQ (ANNOUNCE h) @@ -652,6 +656,9 @@ withRPC saddr cmd = do Log.info $ "pong from" <+> pretty pa exitSuccess + + RPCPoke{} -> pause @'Seconds 0.1 + RPCPeers{} -> liftIO do pause @'Seconds 1 exitSuccess @@ -664,7 +671,10 @@ withRPC saddr cmd = do where adapter q = RpcAdapter dontHandle - (const $ notice "alive-and-kicking" >> liftIO exitSuccess) + + (\k -> do Log.info ( "alive-and-kicking" <+> pretty (AsBase58 k)) + liftIO exitSuccess ) + (const $ liftIO exitSuccess) (const $ notice "ping?") (liftIO . atomically . writeTQueue q) diff --git a/hbs2-peer/app/RPC.hs b/hbs2-peer/app/RPC.hs index eee176d1..a345f7bd 100644 --- a/hbs2-peer/app/RPC.hs +++ b/hbs2-peer/app/RPC.hs @@ -19,7 +19,7 @@ data RPC e = RPCPoke | RPCPing (PeerAddr e) | RPCPong (PeerAddr e) - | RPCPokeAnswer + | RPCPokeAnswer (PubKey 'Sign e) | RPCAnnounce (Hash HbSync) | RPCFetch (Hash HbSync) | RPCPeers @@ -47,7 +47,7 @@ makeLenses 'RPCEnv data RpcAdapter e m = RpcAdapter { rpcOnPoke :: RPC e -> m () - , rpcOnPokeAnswer :: RPC e -> m () + , rpcOnPokeAnswer :: PubKey 'Sign e -> m () , rpcOnAnnounce :: Hash HbSync -> m () , rpcOnPing :: PeerAddr e -> m () , rpcOnPong :: PeerAddr e -> m () @@ -94,8 +94,8 @@ rpcHandler :: forall e m . ( MonadIO m => RpcAdapter e m -> RPC e -> m () rpcHandler adapter = \case - p@RPCPoke{} -> rpcOnPoke adapter p >> response (RPCPokeAnswer @e) - p@RPCPokeAnswer{} -> rpcOnPokeAnswer adapter p + p@RPCPoke{} -> rpcOnPoke adapter p + (RPCPokeAnswer k) -> rpcOnPokeAnswer adapter k (RPCAnnounce h) -> rpcOnAnnounce adapter h (RPCPing pa) -> rpcOnPing adapter pa (RPCPong pa) -> rpcOnPong adapter pa