Skip to content

Commit b5688b2

Browse files
committed
simulation: fix RB header size and validation delay
1 parent c4b083e commit b5688b2

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

simulation/src/LeiosProtocol/Short.hs

+25-8
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ convertConfig disk =
172172
praos =
173173
PraosConfig
174174
{ blockFrequencyPerSlot = disk.rbGenerationProbability
175-
, headerSize = fromIntegral disk.ibHeadSizeBytes
175+
, headerSize = fromIntegral disk.rbHeadSizeBytes
176176
, bodySize = \body ->
177177
1
178178
+ sum (map (certificateSize . snd) body.endorseBlocks)
@@ -187,7 +187,7 @@ convertConfig disk =
187187
| otherwise = 0
188188
in legacy
189189
+ sum (map (certificateValidation . snd) body.endorseBlocks)
190-
, headerValidationDelay = const $ durationMsToDiffTime disk.ibHeadValidationCpuTimeMs
190+
, headerValidationDelay = const $ durationMsToDiffTime disk.rbHeadValidationCpuTimeMs
191191
, blockGenerationDelay = \(Block _ body) ->
192192
durationMsToDiffTime disk.rbGenerationCpuTimeMs
193193
+ sum (map (certificateGeneration . snd) body.endorseBlocks)
@@ -509,14 +509,17 @@ mkEndorseBlock cfg@LeiosConfig{pipeline = _ :: SingPipeline p} id slot producer
509509
fixSize cfg $
510510
EndorseBlock{endorseBlocksEarlierStage = [], endorseBlocksEarlierPipeline = [], size = 0, ..}
511511

512-
mockFullEndorseBlock :: LeiosConfig -> EndorseBlock
513-
mockFullEndorseBlock cfg =
512+
mockEndorseBlock :: LeiosConfig -> Int -> EndorseBlock
513+
mockEndorseBlock cfg n =
514514
mkEndorseBlock
515515
cfg
516516
(EndorseBlockId (NodeId 0) 0)
517517
0
518518
(NodeId 0)
519-
[InputBlockId (NodeId 0) i | i <- [0 .. cfg.sliceLength * (ceiling cfg.inputBlockFrequencyPerSlot) - 1]]
519+
[InputBlockId (NodeId 0) i | i <- [0 .. n - 1]]
520+
521+
mockFullEndorseBlock :: LeiosConfig -> EndorseBlock
522+
mockFullEndorseBlock cfg = mockEndorseBlock cfg $ cfg.sliceLength * (ceiling cfg.inputBlockFrequencyPerSlot)
520523

521524
mkVoteMsg :: LeiosConfig -> VoteId -> SlotNo -> NodeId -> Word64 -> [EndorseBlockId] -> VoteMsg
522525
mkVoteMsg cfg id slot producer votes endorseBlocks = fixSize cfg $ VoteMsg{size = 0, ..}
@@ -526,6 +529,17 @@ mkCertificate cfg vs =
526529
assert (fromIntegral cfg.votesForCertificate <= sum (Map.elems vs)) $
527530
Certificate vs
528531

532+
mockRankingBlock :: LeiosConfig -> Int -> RankingBlock
533+
mockRankingBlock cfg n =
534+
fixSize cfg $
535+
fixupBlock (Chain.headAnchor @RankingBlock Genesis) $
536+
mkPartialBlock 0 $
537+
mkRankingBlockBody
538+
cfg
539+
(NodeId 0)
540+
(Just (EndorseBlockId (NodeId 0) 0, mockCertificate cfg n))
541+
cfg.sizes.rankingBlockLegacyPraosPayloadAvgSize
542+
529543
mockFullRankingBlock :: LeiosConfig -> RankingBlock
530544
mockFullRankingBlock cfg =
531545
fixSize cfg $
@@ -554,19 +568,22 @@ mockFullVoteMsg cfg =
554568
1
555569
[EndorseBlockId (NodeId 0) i | i <- [0 .. ceiling cfg.endorseBlockFrequencyPerStage - 1]]
556570

557-
mockFullCertificate :: LeiosConfig -> Certificate
558-
mockFullCertificate cfg =
571+
mockCertificate :: LeiosConfig -> Int -> Certificate
572+
mockCertificate cfg n =
559573
mkCertificate
560574
cfg
561575
( Map.fromList $
562576
[ (VoteId (NodeId 0) i, 1)
563577
| i <-
564578
[ 0
565-
.. cfg.votesForCertificate - 1
579+
.. n - 1
566580
]
567581
]
568582
)
569583

584+
mockFullCertificate :: LeiosConfig -> Certificate
585+
mockFullCertificate cfg = mockCertificate cfg cfg.votesForCertificate
586+
570587
---------------------------------------------------------------------------------------
571588
---- Selecting data to build blocks
572589
---------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)