File tree 1 file changed +14
-1
lines changed
ouroboros-consensus/src/unstable-consensus-testlib/Test
1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -48,11 +48,19 @@ import Test.CsjModel.StateTypes
48
48
-------------------------------------------------------------------------------}
49
49
50
50
-- | Events the CSJ logic needs to react to
51
+ --
52
+ -- TODO copy <https://github.com/IntersectMBO/ouroboros-consensus/pull/1492>'s
53
+ -- explanation that a @Reengage@ stimulus is unnecessary even when the GSM
54
+ -- transitions out of 'Ouroboros.Consensus.Node.GsmState.CaughtUp'
51
55
data CsjStimulus p a =
52
56
-- | The peer responded to a ChainSync message
53
57
ChainSyncReply ! (ChainSyncReply p a )
54
58
|
55
- -- | The peer just connected
59
+ -- | An upstream peer just connected
60
+ --
61
+ -- Note that this should simply not be called when the Genesis State
62
+ -- Machine (GSM) is in the 'Ouroboros.Consensus.Node.GsmState.CaughtUp'
63
+ -- state.
56
64
--
57
65
-- The argument is the payload for the current immutable tip.
58
66
Connect ! a
@@ -1164,6 +1172,11 @@ newJumpRequest2 y = \jump ->
1164
1172
-- Discards however much of the new 'JumpRequest' the Jumper has already
1165
1173
-- rejected via 'anticomm' and then builds the final 'Bisecting' if any jump
1166
1174
-- points remain.
1175
+ --
1176
+ -- TODO how much more complicated would this logic be if the invariant for
1177
+ -- Jumpers were merely @'candidate' extends 'comm'@ rather than @'candidate' ==
1178
+ -- 'comm'@? Letting candidates exceed commitments seems like it could reduce
1179
+ -- the cost of the GSM transition from CaughtUp to (Pre)Syncing.
1167
1180
newJumpRequest3 ::
1168
1181
Ord p
1169
1182
=> Set p
You can’t perform that action at this time.
0 commit comments