@@ -21,13 +21,16 @@ import Data.Functor.Contravariant ((>$<))
2121import Data.Hashable
2222import Data.Sequence (Seq )
2323import Data.Sequence qualified as Seq
24+ import Data.Set (Set )
25+ import Data.Set qualified as Set
2426import Data.Time.Clock.POSIX (POSIXTime )
2527import Data.Time.Clock.POSIX qualified as Time
2628import Data.Void (Void )
2729import System.Random (StdGen )
2830import System.Random qualified as Random
2931
3032import Cardano.KESAgent.KES.Crypto (Crypto (.. ))
33+ import Cardano.KESAgent.KES.Evolution qualified as KES
3134
3235import Ouroboros.Network.BlockFetch (FetchClientRegistry ,
3336 newFetchClientRegistry )
@@ -38,11 +41,12 @@ import Ouroboros.Network.PeerSharing (PeerSharingAPI, PeerSharingRegistry,
3841 newPeerSharingAPI , newPeerSharingRegistry ,
3942 ps_POLICY_PEER_SHARE_MAX_PEERS , ps_POLICY_PEER_SHARE_STICKY_TIME )
4043import Ouroboros.Network.TxSubmission.Inbound.V2
41- import Ouroboros.Network.TxSubmission.Mempool.Simple (Mempool (.. ), MempoolSeq (.. ))
44+ import Ouroboros.Network.TxSubmission.Mempool.Simple (Mempool (.. ),
45+ MempoolSeq (.. ))
4246import Ouroboros.Network.TxSubmission.Mempool.Simple qualified as Mempool
4347
4448import DMQ.Configuration
45- import DMQ.Protocol.SigSubmission.Type (Sig (sigId , sigExpiresAt ), SigId )
49+ import DMQ.Protocol.SigSubmission.Type (Sig (sigExpiresAt , sigId ), SigId )
4650import DMQ.Tracer
4751
4852
@@ -56,6 +60,7 @@ data NodeKernel crypto ntnAddr m =
5660 , peerSharingRegistry :: ! (PeerSharingRegistry ntnAddr m )
5761 , peerSharingAPI :: ! (PeerSharingAPI ntnAddr StdGen m )
5862 , mempool :: ! (Mempool m SigId (Sig crypto ))
63+ , evolutionConfig :: ! (KES. EvolutionConfig )
5964 , sigChannelVar :: ! (TxChannelsVar m ntnAddr SigId (Sig crypto ))
6065 , sigMempoolSem :: ! (TxMempoolSem m )
6166 , sigSharedTxStateVar :: ! (SharedTxStateVar m ntnAddr SigId (Sig crypto ))
@@ -65,9 +70,10 @@ newNodeKernel :: ( MonadLabelledSTM m
6570 , MonadMVar m
6671 , Ord ntnAddr
6772 )
68- => StdGen
73+ => KES. EvolutionConfig
74+ -> StdGen
6975 -> m (NodeKernel crypto ntnAddr m )
70- newNodeKernel rng = do
76+ newNodeKernel evolutionConfig rng = do
7177 publicPeerSelectionStateVar <- makePublicPeerSelectionStateVar
7278
7379 fetchClientRegistry <- newFetchClientRegistry
@@ -90,6 +96,7 @@ newNodeKernel rng = do
9096 , peerSharingRegistry
9197 , peerSharingAPI
9298 , mempool
99+ , evolutionConfig
93100 , sigChannelVar
94101 , sigMempoolSem
95102 , sigSharedTxStateVar
@@ -111,6 +118,7 @@ withNodeKernel :: forall crypto ntnAddr m a.
111118 )
112119 => (forall ev . Aeson. ToJSON ev => Tracer m (WithEventType ev ))
113120 -> Configuration
121+ -> KES. EvolutionConfig
114122 -> StdGen
115123 -> (NodeKernel crypto ntnAddr m -> m a )
116124 -- ^ as soon as the callback exits the `mempoolWorker` and all
@@ -120,12 +128,13 @@ withNodeKernel tracer
120128 Configuration {
121129 dmqcSigSubmissionLogicTracer = I sigSubmissionLogicTracer
122130 }
131+ evolutionConfig
123132 rng k = do
124133 nodeKernel@ NodeKernel { mempool,
125134 sigChannelVar,
126135 sigSharedTxStateVar
127136 }
128- <- newNodeKernel rng
137+ <- newNodeKernel evolutionConfig rng
129138 withAsync (mempoolWorker mempool)
130139 $ \ mempoolThread ->
131140 withAsync (decisionLogicThreads
0 commit comments