Make ChainBackend a monad
Home /
Input Output /
hydra-poc
Feb 08, 12-1 PM (0)
Feb 08, 1-2 PM (0)
Feb 08, 2-3 PM (0)
Feb 08, 3-4 PM (0)
Feb 08, 4-5 PM (0)
Feb 08, 5-6 PM (3)
Feb 08, 6-7 PM (0)
Feb 08, 7-8 PM (0)
Feb 08, 8-9 PM (0)
Feb 08, 9-10 PM (0)
Feb 08, 10-11 PM (0)
Feb 08, 11-12 AM (0)
Feb 09, 12-1 AM (0)
Feb 09, 1-2 AM (0)
Feb 09, 2-3 AM (0)
Feb 09, 3-4 AM (0)
Feb 09, 4-5 AM (0)
Feb 09, 5-6 AM (0)
Feb 09, 6-7 AM (0)
Feb 09, 7-8 AM (0)
Feb 09, 8-9 AM (33)
Feb 09, 9-10 AM (7)
Feb 09, 10-11 AM (31)
Feb 09, 11-12 PM (4)
Feb 09, 12-1 PM (22)
Feb 09, 1-2 PM (5)
Feb 09, 2-3 PM (1)
Feb 09, 3-4 PM (0)
Feb 09, 4-5 PM (0)
Feb 09, 5-6 PM (0)
Feb 09, 6-7 PM (0)
Feb 09, 7-8 PM (0)
Feb 09, 8-9 PM (0)
Feb 09, 9-10 PM (0)
Feb 09, 10-11 PM (0)
Feb 09, 11-12 AM (0)
Feb 10, 12-1 AM (0)
Feb 10, 1-2 AM (0)
Feb 10, 2-3 AM (0)
Feb 10, 3-4 AM (0)
Feb 10, 4-5 AM (0)
Feb 10, 5-6 AM (0)
Feb 10, 6-7 AM (0)
Feb 10, 7-8 AM (0)
Feb 10, 8-9 AM (0)
Feb 10, 9-10 AM (0)
Feb 10, 10-11 AM (9)
Feb 10, 11-12 PM (2)
Feb 10, 12-1 PM (2)
Feb 10, 1-2 PM (8)
Feb 10, 2-3 PM (5)
Feb 10, 3-4 PM (1)
Feb 10, 4-5 PM (0)
Feb 10, 5-6 PM (0)
Feb 10, 6-7 PM (0)
Feb 10, 7-8 PM (0)
Feb 10, 8-9 PM (0)
Feb 10, 9-10 PM (0)
Feb 10, 10-11 PM (0)
Feb 10, 11-12 AM (0)
Feb 11, 12-1 AM (0)
Feb 11, 1-2 AM (0)
Feb 11, 2-3 AM (0)
Feb 11, 3-4 AM (0)
Feb 11, 4-5 AM (0)
Feb 11, 5-6 AM (0)
Feb 11, 6-7 AM (2)
Feb 11, 7-8 AM (0)
Feb 11, 8-9 AM (32)
Feb 11, 9-10 AM (1)
Feb 11, 10-11 AM (0)
Feb 11, 11-12 PM (0)
Feb 11, 12-1 PM (0)
Feb 11, 1-2 PM (0)
Feb 11, 2-3 PM (1)
Feb 11, 3-4 PM (0)
Feb 11, 4-5 PM (0)
Feb 11, 5-6 PM (0)
Feb 11, 6-7 PM (0)
Feb 11, 7-8 PM (0)
Feb 11, 8-9 PM (0)
Feb 11, 9-10 PM (0)
Feb 11, 10-11 PM (0)
Feb 11, 11-12 AM (0)
Feb 12, 12-1 AM (0)
Feb 12, 1-2 AM (0)
Feb 12, 2-3 AM (0)
Feb 12, 3-4 AM (0)
Feb 12, 4-5 AM (0)
Feb 12, 5-6 AM (1)
Feb 12, 6-7 AM (2)
Feb 12, 7-8 AM (0)
Feb 12, 8-9 AM (1)
Feb 12, 9-10 AM (0)
Feb 12, 10-11 AM (4)
Feb 12, 11-12 PM (0)
Feb 12, 12-1 PM (0)
Feb 12, 1-2 PM (0)
Feb 12, 2-3 PM (1)
Feb 12, 3-4 PM (1)
Feb 12, 4-5 PM (0)
Feb 12, 5-6 PM (0)
Feb 12, 6-7 PM (0)
Feb 12, 7-8 PM (0)
Feb 12, 8-9 PM (0)
Feb 12, 9-10 PM (0)
Feb 12, 10-11 PM (0)
Feb 12, 11-12 AM (0)
Feb 13, 12-1 AM (0)
Feb 13, 1-2 AM (0)
Feb 13, 2-3 AM (0)
Feb 13, 3-4 AM (0)
Feb 13, 4-5 AM (0)
Feb 13, 5-6 AM (0)
Feb 13, 6-7 AM (0)
Feb 13, 7-8 AM (1)
Feb 13, 8-9 AM (1)
Feb 13, 9-10 AM (2)
Feb 13, 10-11 AM (4)
Feb 13, 11-12 PM (1)
Feb 13, 12-1 PM (2)
Feb 13, 1-2 PM (0)
Feb 13, 2-3 PM (0)
Feb 13, 3-4 PM (0)
Feb 13, 4-5 PM (0)
Feb 13, 5-6 PM (0)
Feb 13, 6-7 PM (0)
Feb 13, 7-8 PM (0)
Feb 13, 8-9 PM (0)
Feb 13, 9-10 PM (0)
Feb 13, 10-11 PM (0)
Feb 13, 11-12 AM (0)
Feb 14, 12-1 AM (19)
Feb 14, 1-2 AM (8)
Feb 14, 2-3 AM (2)
Feb 14, 3-4 AM (0)
Feb 14, 4-5 AM (0)
Feb 14, 5-6 AM (0)
Feb 14, 6-7 AM (0)
Feb 14, 7-8 AM (0)
Feb 14, 8-9 AM (0)
Feb 14, 9-10 AM (0)
Feb 14, 10-11 AM (0)
Feb 14, 11-12 PM (0)
Feb 14, 12-1 PM (0)
Feb 14, 1-2 PM (0)
Feb 14, 2-3 PM (0)
Feb 14, 3-4 PM (0)
Feb 14, 4-5 PM (1)
Feb 14, 5-6 PM (0)
Feb 14, 6-7 PM (0)
Feb 14, 7-8 PM (0)
Feb 14, 8-9 PM (0)
Feb 14, 9-10 PM (0)
Feb 14, 10-11 PM (0)
Feb 14, 11-12 AM (0)
Feb 15, 12-1 AM (0)
Feb 15, 1-2 AM (0)
Feb 15, 2-3 AM (0)
Feb 15, 3-4 AM (0)
Feb 15, 4-5 AM (0)
Feb 15, 5-6 AM (0)
Feb 15, 6-7 AM (0)
Feb 15, 7-8 AM (0)
Feb 15, 8-9 AM (0)
Feb 15, 9-10 AM (0)
Feb 15, 10-11 AM (0)
Feb 15, 11-12 PM (0)
Feb 15, 12-1 PM (0)
220 commits this week
Feb 08, 2026
-
Feb 15, 2026
pass backend to withHydraNode
> this required to define an offline chain backend, which throws errors at any backend call but it has a hardcoded option of blockTime = 1
track diff as part of node state
> avoids computing drift when rejecting inputs while catching up - we also wrapped all time reference being tracked by the into a new product type called ChainPointTime - now drift is a Natural and not a NominalDiffTime as in principle it should never be negative
double the time of contestation period being used
> so it doubles the unsynced policy
Revert "try: flip handling out of sync before tick or rollback"
This reverts commit 45d9da3e13c47db435038dd8392ded6b233e5df6.
wait for node in sync based on network block time
use default contestation period
> current is insuficient for real networks
try: flip handling out of sync before tick or rollback
fix rotation and node specs to derive outcomes without depending on real-time passing
minor rename for checkpointsEqual
add top lvl helpers to manage different node state synced status in logic spec
tui: remove unsed now in handleHydraEventsInfo
fix api spec for currentChainTime
> it is not optional anymore
enhance api description on new server outputs
> node synced and node unsynced
rename RejectedInput to RejectedInputBecauseUnsynced
> to make it more specific and dedicated
enhance haddock on currentChainTime
Co-authored-by: Sebastian Nagel <[email protected]>
do not track drift measured in slot
> because we have no recent view of the chain since we are out of sync
use latest NodeState.current slot instead of latest chain point tracked
> the former gets updated upon ticks the later upon head transitions observed, which usually is older than ticks
introduce new chainPointTime
> NodeState now tracks currentChainPoint :: ChainPointType tx, instead of currentSlot :: ChainSlot + currentChainTime :: Maybe UTCTime > NodeSynced and NodeUnsynced now carry ChainPointType tx, instead of chainTime :: UTCTime > extended IsChainState class with chainPointTime :: ChainPointType tx -> UTCTime > initialChainTime = posixSecondsToUTCTime 0