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
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 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 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
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