-
Notifications
You must be signed in to change notification settings - Fork 20
/
NetworkProtocolVersion.hs
72 lines (56 loc) · 2.59 KB
/
NetworkProtocolVersion.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Ouroboros.Consensus.Shelley.Ledger.NetworkProtocolVersion (
ShelleyNodeToClientVersion (..)
, ShelleyNodeToNodeVersion (..)
) where
import qualified Data.Map.Strict as Map
import Ouroboros.Consensus.Node.NetworkProtocolVersion
import Ouroboros.Consensus.Shelley.Ledger.Block
data ShelleyNodeToNodeVersion = ShelleyNodeToNodeVersion1
deriving (Show, Eq, Ord, Enum, Bounded)
data ShelleyNodeToClientVersion =
ShelleyNodeToClientVersion1
-- | New queries introduced
| ShelleyNodeToClientVersion2
-- | New query introduced
| ShelleyNodeToClientVersion3
-- | New queries introduced
| ShelleyNodeToClientVersion4
-- | New queries introduced: GetRewardInfoPools
| ShelleyNodeToClientVersion5
-- | New queries introduced: GetPoolDistr, GetPoolState, GetStakeSnapshots
| ShelleyNodeToClientVersion6
-- | New queries introduced: GetStakeDelegDeposits
| ShelleyNodeToClientVersion7
-- | New queries introduced: GetConstitutionHash, GetFilteredVoteDelegatees
| ShelleyNodeToClientVersion8
-- | New queries introduced: GetPeerSnapshot
| ShelleyNodeToClientVersion9
deriving (Show, Eq, Ord, Enum, Bounded)
instance HasNetworkProtocolVersion (ShelleyBlock proto era) where
type BlockNodeToNodeVersion (ShelleyBlock proto era) = ShelleyNodeToNodeVersion
type BlockNodeToClientVersion (ShelleyBlock proto era) = ShelleyNodeToClientVersion
-- TODO #2668 make this era-specific
instance SupportedNetworkProtocolVersion (ShelleyBlock proto era) where
supportedNodeToNodeVersions _ = Map.fromList [
(NodeToNodeV_7, ShelleyNodeToNodeVersion1)
, (NodeToNodeV_8, ShelleyNodeToNodeVersion1)
, (NodeToNodeV_9, ShelleyNodeToNodeVersion1)
, (NodeToNodeV_10, ShelleyNodeToNodeVersion1)
, (NodeToNodeV_11, ShelleyNodeToNodeVersion1)
, (NodeToNodeV_12, ShelleyNodeToNodeVersion1)
, (NodeToNodeV_13, ShelleyNodeToNodeVersion1)
]
supportedNodeToClientVersions _ = Map.fromList [
(NodeToClientV_9, ShelleyNodeToClientVersion5)
, (NodeToClientV_10, ShelleyNodeToClientVersion5)
, (NodeToClientV_11, ShelleyNodeToClientVersion5)
, (NodeToClientV_12, ShelleyNodeToClientVersion5)
, (NodeToClientV_13, ShelleyNodeToClientVersion5)
, (NodeToClientV_14, ShelleyNodeToClientVersion6)
, (NodeToClientV_15, ShelleyNodeToClientVersion7)
, (NodeToClientV_16, ShelleyNodeToClientVersion8)
, (NodeToClientV_16, ShelleyNodeToClientVersion9)
]
latestReleasedNodeVersion = latestReleasedNodeVersionDefault