Skip to content

Commit 771e23c

Browse files
Bump to NodeToClientV_23
Supports block hash in cbor encoding of ledger peer snapshot
1 parent 994f1eb commit 771e23c

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

cardano-diffusion/api/lib/Cardano/Network/NodeToClient/Version.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,11 @@ data NodeToClientVersion
5656
-- ^ new codecs for @PParams@ and @CompactGenesis@
5757
| NodeToClientV_22
5858
-- ^ support SRV records in @GetBigLedgerPeerSnapshot@ query
59+
-- TODO: remove CBOR instances from LedgerPeers.Type when V22 support
60+
-- is removed!
5961
| NodeToClientV_23
6062
-- ^ added @QueryDRepsDelegations@,
63+
-- LedgerPeerSnapshot CBOR encoding contains block hash
6164
deriving (Eq, Ord, Enum, Bounded, Show, Generic, NFData)
6265

6366
-- | We set 16ths bit to distinguish `NodeToNodeVersion` and

cardano-diffusion/protocols/cddl/specs/handshake-node-to-client.cddl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ versionTable = { * versionNumber => nodeToClientVersionData }
1919

2020

2121
; as of version 2 (which is no longer supported) we set 16th bit to 1
22-
; 16 / 17 / 18 / 19 / 20 / 21 / 22 / 23
22+
; 16 / 17 / 18 / 19 / 20 / 21 / 22 / 23
2323
versionNumber = 32784 / 32785 / 32786 / 32787 / 32788 / 32789 / 32790 / 32791
2424

2525
; As of version 15 and higher

cardano-ping/src/Cardano/Network/Ping.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ supportedNodeToClientVersions magic =
154154
, NodeToClientVersionV20 magic
155155
, NodeToClientVersionV21 magic
156156
, NodeToClientVersionV22 magic
157+
, NodeToClientVersionV33 magic
157158
]
158159

159160
data InitiatorOnly = InitiatorOnly | InitiatorAndResponder
@@ -193,6 +194,7 @@ data NodeVersion
193194
| NodeToClientVersionV20 Word32
194195
| NodeToClientVersionV21 Word32
195196
| NodeToClientVersionV22 Word32
197+
| NodeToClientVersionV23 Word32
196198
| NodeToNodeVersionV1 Word32
197199
| NodeToNodeVersionV2 Word32
198200
| NodeToNodeVersionV3 Word32
@@ -226,6 +228,7 @@ instance ToJSON NodeVersion where
226228
NodeToClientVersionV20 m -> go2 "NodeToClientVersionV20" m
227229
NodeToClientVersionV21 m -> go2 "NodeToClientVersionV21" m
228230
NodeToClientVersionV22 m -> go2 "NodeToClientVersionV22" m
231+
NodeToClientVersionV23 m -> go2 "NodeToClientVersionV23" m
229232
NodeToNodeVersionV1 m -> go2 "NodeToNodeVersionV1" m
230233
NodeToNodeVersionV2 m -> go2 "NodeToNodeVersionV2" m
231234
NodeToNodeVersionV3 m -> go2 "NodeToNodeVersionV3" m
@@ -377,6 +380,9 @@ handshakeReqEnc versions query =
377380
encodeVersion (NodeToClientVersionV22 magic) =
378381
CBOR.encodeWord (22 `setBit` nodeToClientVersionBit)
379382
<> nodeToClientDataWithQuery magic
383+
encodeVersion (NodeToClientVersionV23 magic) =
384+
CBOR.encodeWord (23 `setBit` nodeToClientVersionBit)
385+
<> nodeToClientDataWithQuery magic
380386

381387
-- node-to-node
382388
encodeVersion (NodeToNodeVersionV1 magic) =
@@ -528,6 +534,7 @@ handshakeDec = do
528534
(20, True) -> Right . NodeToClientVersionV20 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
529535
(21, True) -> Right . NodeToClientVersionV21 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
530536
(22, True) -> Right . NodeToClientVersionV22 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
537+
(23, True) -> Right . NodeToClientVersionV23 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
531538
_ -> return $ Left $ UnknownVersionInRsp version
532539

533540
decodeWithMode :: (Word32 -> InitiatorOnly -> NodeVersion) -> CBOR.Decoder s (Either HandshakeFailure NodeVersion)
@@ -853,6 +860,7 @@ isSameVersionAndMagic v1 v2 = extract v1 == extract v2
853860
extract (NodeToClientVersionV20 m) = (-20, m)
854861
extract (NodeToClientVersionV21 m) = (-21, m)
855862
extract (NodeToClientVersionV22 m) = (-22, m)
863+
extract (NodeToClientVersionV23 m) = (-23, m)
856864
extract (NodeToNodeVersionV1 m) = (1, m)
857865
extract (NodeToNodeVersionV2 m) = (2, m)
858866
extract (NodeToNodeVersionV3 m) = (3, m)

0 commit comments

Comments
 (0)