From 840ee52414346a0b7a00d5f76dd9546549fc2380 Mon Sep 17 00:00:00 2001 From: Karl Knutsson Date: Thu, 4 Jul 2024 15:52:31 +0200 Subject: [PATCH] Add support for fetching tip through cardano-ping Added NodeToClientVersionV17 Update cardano-ping to version 0.4.0.2 in order to support fetching tip. --- cabal.project | 3 ++- cardano-cli/cardano-cli.cabal | 2 +- cardano-cli/src/Cardano/CLI/Commands/Ping.hs | 1 + cardano-cli/src/Cardano/CLI/Options/Ping.hs | 7 +++++++ cardano-cli/src/Cardano/CLI/Run/Ping.hs | 6 +++++- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/cabal.project b/cabal.project index 594072e06b..e50bba650d 100644 --- a/cabal.project +++ b/cabal.project @@ -14,7 +14,7 @@ repository cardano-haskell-packages -- you need to run if you change them index-state: , hackage.haskell.org 2024-08-08T19:27:29Z - , cardano-haskell-packages 2024-09-05T16:30:09Z + , cardano-haskell-packages 2024-09-09T11:32:44Z packages: cardano-cli @@ -57,3 +57,4 @@ write-ghc-environment-files: always -- IMPORTANT -- Do NOT add more source-repository-package stanzas here unless they are strictly -- temporary! Please read the section in CONTRIBUTING about updating dependencies. + diff --git a/cardano-cli/cardano-cli.cabal b/cardano-cli/cardano-cli.cabal index 08f1f7a4cd..0437ce8c7d 100644 --- a/cardano-cli/cardano-cli.cabal +++ b/cardano-cli/cardano-cli.cabal @@ -225,7 +225,7 @@ library cardano-ledger-byron >=1.0.1.0, cardano-ledger-core, cardano-ledger-shelley, - cardano-ping ^>=0.2.0.13, + cardano-ping ^>=0.4, cardano-prelude, cardano-slotting ^>=0.2.0.0, cardano-strict-containers ^>=0.1, diff --git a/cardano-cli/src/Cardano/CLI/Commands/Ping.hs b/cardano-cli/src/Cardano/CLI/Commands/Ping.hs index 11e07f7e78..b45bb87231 100644 --- a/cardano-cli/src/Cardano/CLI/Commands/Ping.hs +++ b/cardano-cli/src/Cardano/CLI/Commands/Ping.hs @@ -19,5 +19,6 @@ data PingCmd = PingCmd , pingCmdJson :: !Bool , pingCmdQuiet :: !Bool , pingOptsHandshakeQuery :: !Bool + , pingOptsGetTip :: !Bool } deriving (Eq, Show) diff --git a/cardano-cli/src/Cardano/CLI/Options/Ping.hs b/cardano-cli/src/Cardano/CLI/Options/Ping.hs index f07570b136..951e9af652 100644 --- a/cardano-cli/src/Cardano/CLI/Options/Ping.hs +++ b/cardano-cli/src/Cardano/CLI/Options/Ping.hs @@ -110,3 +110,10 @@ pPing = "Query the supported protocol versions using the handshake protocol and terminate the connection." ] ) + <*> ( Opt.switch $ + mconcat + [ Opt.long "tip" + , Opt.short 't' + , Opt.help "Request tip then exit." + ] + ) diff --git a/cardano-cli/src/Cardano/CLI/Run/Ping.hs b/cardano-cli/src/Cardano/CLI/Run/Ping.hs index dd6aa5fb7d..2cbaaa6c39 100644 --- a/cardano-cli/src/Cardano/CLI/Run/Ping.hs +++ b/cardano-cli/src/Cardano/CLI/Run/Ping.hs @@ -54,6 +54,7 @@ pingClient stdout stderr cmd = CNP.pingClient stdout stderr opts , CNP.pingOptsPort = pingCmdPort cmd , CNP.pingOptsMagic = pingCmdMagic cmd , CNP.pingOptsHandshakeQuery = pingOptsHandshakeQuery cmd + , CNP.pingOptsGetTip = pingOptsGetTip cmd } runPingCmd :: PingCmd -> ExceptT PingClientCmdError IO () @@ -80,7 +81,10 @@ runPingCmd options = do return ([addr], CNP.supportedNodeToClientVersions $ pingCmdMagic options) -- Logger async thread handle - laid <- liftIO . async $ CNP.logger msgQueue (pingCmdJson options) (pingOptsHandshakeQuery options) + laid <- + liftIO . async $ + CNP.logger msgQueue (pingCmdJson options) (pingOptsHandshakeQuery options) (pingOptsGetTip options) + -- Ping client thread handles caids <- forM addresses $