leiosdemo202510: refactor from traceM to general Leios logic tracers
      
    
    
  
Home /
    Input Output / 
ouroboros-consensus
  
  
          Oct 23, 11-12 AM (0)
        
      
          Oct 24, 12-1 AM (3)
        
      
          Oct 24, 1-2 AM (0)
        
      
          Oct 24, 2-3 AM (0)
        
      
          Oct 24, 3-4 AM (0)
        
      
          Oct 24, 4-5 AM (0)
        
      
          Oct 24, 5-6 AM (0)
        
      
          Oct 24, 6-7 AM (0)
        
      
          Oct 24, 7-8 AM (1)
        
      
          Oct 24, 8-9 AM (2)
        
      
          Oct 24, 9-10 AM (3)
        
      
          Oct 24, 10-11 AM (1)
        
      
          Oct 24, 11-12 PM (0)
        
      
          Oct 24, 12-1 PM (1)
        
      
          Oct 24, 1-2 PM (13)
        
      
          Oct 24, 2-3 PM (6)
        
      
          Oct 24, 3-4 PM (0)
        
      
          Oct 24, 4-5 PM (0)
        
      
          Oct 24, 5-6 PM (0)
        
      
          Oct 24, 6-7 PM (0)
        
      
          Oct 24, 7-8 PM (7)
        
      
          Oct 24, 8-9 PM (0)
        
      
          Oct 24, 9-10 PM (5)
        
      
          Oct 24, 10-11 PM (2)
        
      
          Oct 24, 11-12 AM (2)
        
      
          Oct 25, 12-1 AM (0)
        
      
          Oct 25, 1-2 AM (0)
        
      
          Oct 25, 2-3 AM (0)
        
      
          Oct 25, 3-4 AM (0)
        
      
          Oct 25, 4-5 AM (0)
        
      
          Oct 25, 5-6 AM (0)
        
      
          Oct 25, 6-7 AM (0)
        
      
          Oct 25, 7-8 AM (0)
        
      
          Oct 25, 8-9 AM (2)
        
      
          Oct 25, 9-10 AM (0)
        
      
          Oct 25, 10-11 AM (0)
        
      
          Oct 25, 11-12 PM (0)
        
      
          Oct 25, 12-1 PM (0)
        
      
          Oct 25, 1-2 PM (1)
        
      
          Oct 25, 2-3 PM (0)
        
      
          Oct 25, 3-4 PM (3)
        
      
          Oct 25, 4-5 PM (2)
        
      
          Oct 25, 5-6 PM (0)
        
      
          Oct 25, 6-7 PM (2)
        
      
          Oct 25, 7-8 PM (4)
        
      
          Oct 25, 8-9 PM (0)
        
      
          Oct 25, 9-10 PM (0)
        
      
          Oct 25, 10-11 PM (0)
        
      
          Oct 25, 11-12 AM (0)
        
      
          Oct 26, 12-1 AM (0)
        
      
          Oct 26, 1-2 AM (0)
        
      
          Oct 26, 2-3 AM (0)
        
      
          Oct 26, 3-4 AM (0)
        
      
          Oct 26, 4-5 AM (0)
        
      
          Oct 26, 5-6 AM (0)
        
      
          Oct 26, 6-7 AM (0)
        
      
          Oct 26, 7-8 AM (0)
        
      
          Oct 26, 8-9 AM (0)
        
      
          Oct 26, 9-10 AM (0)
        
      
          Oct 26, 10-11 AM (0)
        
      
          Oct 26, 11-12 PM (0)
        
      
          Oct 26, 12-1 PM (0)
        
      
          Oct 26, 1-2 PM (1)
        
      
          Oct 26, 2-3 PM (0)
        
      
          Oct 26, 3-4 PM (0)
        
      
          Oct 26, 4-5 PM (2)
        
      
          Oct 26, 5-6 PM (2)
        
      
          Oct 26, 6-7 PM (1)
        
      
          Oct 26, 7-8 PM (1)
        
      
          Oct 26, 8-9 PM (0)
        
      
          Oct 26, 9-10 PM (1)
        
      
          Oct 26, 10-11 PM (1)
        
      
          Oct 26, 11-12 AM (0)
        
      
          Oct 27, 12-1 AM (0)
        
      
          Oct 27, 1-2 AM (0)
        
      
          Oct 27, 2-3 AM (0)
        
      
          Oct 27, 3-4 AM (1)
        
      
          Oct 27, 4-5 AM (1)
        
      
          Oct 27, 5-6 AM (0)
        
      
          Oct 27, 6-7 AM (0)
        
      
          Oct 27, 7-8 AM (1)
        
      
          Oct 27, 8-9 AM (8)
        
      
          Oct 27, 9-10 AM (3)
        
      
          Oct 27, 10-11 AM (8)
        
      
          Oct 27, 11-12 PM (3)
        
      
          Oct 27, 12-1 PM (1)
        
      
          Oct 27, 1-2 PM (1)
        
      
          Oct 27, 2-3 PM (1)
        
      
          Oct 27, 3-4 PM (3)
        
      
          Oct 27, 4-5 PM (1)
        
      
          Oct 27, 5-6 PM (0)
        
      
          Oct 27, 6-7 PM (0)
        
      
          Oct 27, 7-8 PM (0)
        
      
          Oct 27, 8-9 PM (0)
        
      
          Oct 27, 9-10 PM (2)
        
      
          Oct 27, 10-11 PM (0)
        
      
          Oct 27, 11-12 AM (1)
        
      
          Oct 28, 12-1 AM (1)
        
      
          Oct 28, 1-2 AM (2)
        
      
          Oct 28, 2-3 AM (2)
        
      
          Oct 28, 3-4 AM (0)
        
      
          Oct 28, 4-5 AM (0)
        
      
          Oct 28, 5-6 AM (0)
        
      
          Oct 28, 6-7 AM (0)
        
      
          Oct 28, 7-8 AM (5)
        
      
          Oct 28, 8-9 AM (2)
        
      
          Oct 28, 9-10 AM (2)
        
      
          Oct 28, 10-11 AM (1)
        
      
          Oct 28, 11-12 PM (11)
        
      
          Oct 28, 12-1 PM (0)
        
      
          Oct 28, 1-2 PM (5)
        
      
          Oct 28, 2-3 PM (9)
        
      
          Oct 28, 3-4 PM (2)
        
      
          Oct 28, 4-5 PM (1)
        
      
          Oct 28, 5-6 PM (3)
        
      
          Oct 28, 6-7 PM (0)
        
      
          Oct 28, 7-8 PM (0)
        
      
          Oct 28, 8-9 PM (1)
        
      
          Oct 28, 9-10 PM (0)
        
      
          Oct 28, 10-11 PM (0)
        
      
          Oct 28, 11-12 AM (0)
        
      
          Oct 29, 12-1 AM (0)
        
      
          Oct 29, 1-2 AM (0)
        
      
          Oct 29, 2-3 AM (0)
        
      
          Oct 29, 3-4 AM (0)
        
      
          Oct 29, 4-5 AM (0)
        
      
          Oct 29, 5-6 AM (0)
        
      
          Oct 29, 6-7 AM (0)
        
      
          Oct 29, 7-8 AM (0)
        
      
          Oct 29, 8-9 AM (1)
        
      
          Oct 29, 9-10 AM (2)
        
      
          Oct 29, 10-11 AM (2)
        
      
          Oct 29, 11-12 PM (15)
        
      
          Oct 29, 12-1 PM (1)
        
      
          Oct 29, 1-2 PM (1)
        
      
          Oct 29, 2-3 PM (1)
        
      
          Oct 29, 3-4 PM (0)
        
      
          Oct 29, 4-5 PM (0)
        
      
          Oct 29, 5-6 PM (1)
        
      
          Oct 29, 6-7 PM (0)
        
      
          Oct 29, 7-8 PM (0)
        
      
          Oct 29, 8-9 PM (0)
        
      
          Oct 29, 9-10 PM (5)
        
      
          Oct 29, 10-11 PM (1)
        
      
          Oct 29, 11-12 AM (0)
        
      
          Oct 30, 12-1 AM (1)
        
      
          Oct 30, 1-2 AM (0)
        
      
          Oct 30, 2-3 AM (0)
        
      
          Oct 30, 3-4 AM (0)
        
      
          Oct 30, 4-5 AM (0)
        
      
          Oct 30, 5-6 AM (0)
        
      
          Oct 30, 6-7 AM (0)
        
      
          Oct 30, 7-8 AM (1)
        
      
          Oct 30, 8-9 AM (1)
        
      
          Oct 30, 9-10 AM (1)
        
      
          Oct 30, 10-11 AM (0)
        
      
          Oct 30, 11-12 PM (1)
        
      
          Oct 30, 12-1 PM (0)
        
      
          Oct 30, 1-2 PM (3)
        
      
          Oct 30, 2-3 PM (6)
        
      
          Oct 30, 3-4 PM (7)
        
      
          Oct 30, 4-5 PM (0)
        
      
          Oct 30, 5-6 PM (3)
        
      
          Oct 30, 6-7 PM (0)
        
      
          Oct 30, 7-8 PM (0)
        
      
          Oct 30, 8-9 PM (0)
        
      
          Oct 30, 9-10 PM (0)
        
      
          Oct 30, 10-11 PM (0)
        
      
          Oct 30, 11-12 AM (0)
        
      
    
205 commits this week
    
    
Oct 24, 2025
      -
Oct 31, 2025
    
  
  
      Store previous epoch nonce in PraosState
      
    
    
  
      Add pure Peras Voting rules
      
        
    
  
With the currently selected generation sizes, we hit the different
voting rules in a somewhat decent proportion, even against randomly
generated functions as part of the PerasVotingView interface.
ouroboros-consensus
  Peras
    Peras voting rules
      isPerasVotingAllowed: OK (1.55s)
        +++ OK, passed 10000 tests.
        Actual result (10000 in total):
        60.29% NoVoteReason(VR-1A or VR-2A)
        20.90% NoVoteReason(VR-1A or VR-2B)
         9.60% VoteReason(VR-2A and VR-2B)
         4.93% VoteReason(VR-1A and VR-1B)
         2.67% NoVoteReason(VR-1B or VR-2A)
         1.61% NoVoteReason(VR-1B or VR-2B)
        Should vote according to model (10000 in total):
        85.47% False
        14.53% True
        VR-(1A|1B|2A|2B) (10000 in total):
        21.30% (False,True,False,False)
        21.24% (False,False,False,False)
        10.63% (False,False,True,False)
        10.27% (False,True,True,False)
         8.99% (False,False,False,True)
         8.76% (False,True,False,True)
         4.67% (False,True,True,True)
         4.26% (False,False,True,True)
         1.93% (True,False,False,False)
         1.77% (True,True,False,False)
         1.71% (True,True,True,False)
         1.61% (True,False,True,False)
         0.75% (True,True,True,True)
         0.74% (True,False,False,True)
         0.70% (True,True,False,True)
         0.67% (True,False,True,True)
        VR-1A (10000 in total):
        90.12% False
         9.88% True
        VR-1B (10000 in total):
        50.07% False
        49.93% True
        VR-2A (10000 in total):
        65.43% False
        34.57% True
        VR-2B (10000 in total):
        70.46% False
        29.54% True
      
    
      Add onPerasRoundNo helper and Num instance
      
    
    
  
      Introduce O.C.Peras.Params
      
    
    
  
      Move geometric into Test.Util.QuickCheck
      
    
    
  
      Add explainable boolean predicate evaluator
      
    
    
  
      Add pure Peras Voting rules
      
        
    
  
With the currently selected generation sizes, we hit the different
voting rules in a somewhat decent proportion, even against randomly
generated functions as part of the PerasVotingView interface.
ouroboros-consensus
  Peras
    Peras voting rules
      isPerasVotingAllowed: OK (1.55s)
        +++ OK, passed 10000 tests.
        Actual result (10000 in total):
        60.29% NoVoteReason(VR-1A or VR-2A)
        20.90% NoVoteReason(VR-1A or VR-2B)
         9.60% VoteReason(VR-2A and VR-2B)
         4.93% VoteReason(VR-1A and VR-1B)
         2.67% NoVoteReason(VR-1B or VR-2A)
         1.61% NoVoteReason(VR-1B or VR-2B)
        Should vote according to model (10000 in total):
        85.47% False
        14.53% True
        VR-(1A|1B|2A|2B) (10000 in total):
        21.30% (False,True,False,False)
        21.24% (False,False,False,False)
        10.63% (False,False,True,False)
        10.27% (False,True,True,False)
         8.99% (False,False,False,True)
         8.76% (False,True,False,True)
         4.67% (False,True,True,True)
         4.26% (False,False,True,True)
         1.93% (True,False,False,False)
         1.77% (True,True,False,False)
         1.71% (True,True,True,False)
         1.61% (True,False,True,False)
         0.75% (True,True,True,True)
         0.74% (True,False,False,True)
         0.70% (True,True,False,True)
         0.67% (True,False,True,True)
        VR-1A (10000 in total):
        90.12% False
         9.88% True
        VR-1B (10000 in total):
        50.07% False
        49.93% True
        VR-2A (10000 in total):
        65.43% False
        34.57% True
        VR-2B (10000 in total):
        70.46% False
        29.54% True
      
    
      Simplify HasPerasCertX field accessors
      
    
    
  
      leiosdemo202510: enable the Leios TraceSendRecv tracers
      
    
    
  
      Add pure Peras Voting rules
      
        
    
  
With the currently selected generation sizes, we hit the different
voting rules in a somewhat decent proportion, even against randomly
generated functions as part of the PerasVotingView interface.
ouroboros-consensus
  Peras
    Peras voting rules
      isPerasVotingAllowed: OK (1.55s)
        +++ OK, passed 10000 tests.
        Actual result (10000 in total):
        60.29% NoVoteReason(VR-1A or VR-2A)
        20.90% NoVoteReason(VR-1A or VR-2B)
         9.60% VoteReason(VR-2A and VR-2B)
         4.93% VoteReason(VR-1A and VR-1B)
         2.67% NoVoteReason(VR-1B or VR-2A)
         1.61% NoVoteReason(VR-1B or VR-2B)
        Should vote according to model (10000 in total):
        85.47% False
        14.53% True
        VR-(1A|1B|2A|2B) (10000 in total):
        21.30% (False,True,False,False)
        21.24% (False,False,False,False)
        10.63% (False,False,True,False)
        10.27% (False,True,True,False)
         8.99% (False,False,False,True)
         8.76% (False,True,False,True)
         4.67% (False,True,True,True)
         4.26% (False,False,True,True)
         1.93% (True,False,False,False)
         1.77% (True,True,False,False)
         1.71% (True,True,True,False)
         1.61% (True,False,True,False)
         0.75% (True,True,True,True)
         0.74% (True,False,False,True)
         0.70% (True,True,False,True)
         0.67% (True,False,True,True)
        VR-1A (10000 in total):
        90.12% False
         9.88% True
        VR-1B (10000 in total):
        50.07% False
        49.93% True
        VR-2A (10000 in total):
        65.43% False
        34.57% True
        VR-2B (10000 in total):
        70.46% False
        29.54% True
      
    
      Add onPerasRoundNo helper and Num instance
      
    
    
  
      Introduce O.C.Peras.Params
      
    
    
  
      Move geometric into Test.Util.QuickCheck
      
    
    
  
      Add explainable boolean predicate evaluator
      
    
    
  
      Simplify HasPerasCertX field accessors
      
    
    
  
      Rename `runReadLocked` to `unsafeRunReadLocked` now that it is exposed
      
    
    
  
      Ensure forkers are tracked in the resource registry and don't double free
      
    
    
  
      Wrap certs with WithOrigin in PerasVotingView
      
    
    
  
      Fix double read-lock acquisition in V1
      
    
    
  
      Disable EBB generation in ChainDB q-s-m tests when k>2
      
    
    
  
      Store previous epoch nonce in PraosState
      
    
    
  
      Wrap certs with WithOrigin in PerasVotingView
      
    
    
  
      Ensure mempool always closes stale forkers (#1738)
      
        
    
  A partial backport of #1714. The forker was being opened always, and in the following situation it will be leaked and block the V1 LedgerDB lock forever: - 2 blocks - which are adopted in (increasing select view order) sequence (possibly by them being part of a slot battle and getting the losing one first) - very fast so that the mempool tries to revalidate exactly in between the blocks - it opens and holds forever a forker, it loses all reference to the forker (leaked resource) - then a flush happens and blocks forever as the (reading) forker in the previous step is open forever, and flushing requests a write lock
      Ensure mempool always closes stale forkers (#1738)
      
        
    
  A partial backport of #1714. The forker was being opened always, and in the following situation it will be leaked and block the V1 LedgerDB lock forever: - 2 blocks - which are adopted in (increasing select view order) sequence (possibly by them being part of a slot battle and getting the losing one first) - very fast so that the mempool tries to revalidate exactly in between the blocks - it opens and holds forever a forker, it loses all reference to the forker (leaked resource) - then a flush happens and blocks forever as the (reading) forker in the previous step is open forever, and flushing requests a write lock