WIP 2: Electric Boogalooo
Home /
Input Output /
ouroboros-consensus
May 04, 9-10 AM (22)
May 04, 10-11 AM (5)
May 04, 11-12 PM (30)
May 04, 12-1 PM (0)
May 04, 1-2 PM (2)
May 04, 2-3 PM (0)
May 04, 3-4 PM (0)
May 04, 4-5 PM (25)
May 04, 5-6 PM (0)
May 04, 6-7 PM (0)
May 04, 7-8 PM (0)
May 04, 8-9 PM (0)
May 04, 9-10 PM (0)
May 04, 10-11 PM (0)
May 04, 11-12 AM (0)
May 05, 12-1 AM (0)
May 05, 1-2 AM (0)
May 05, 2-3 AM (0)
May 05, 3-4 AM (0)
May 05, 4-5 AM (1)
May 05, 5-6 AM (39)
May 05, 6-7 AM (1)
May 05, 7-8 AM (7)
May 05, 8-9 AM (35)
May 05, 9-10 AM (10)
May 05, 10-11 AM (1)
May 05, 11-12 PM (4)
May 05, 12-1 PM (30)
May 05, 1-2 PM (30)
May 05, 2-3 PM (28)
May 05, 3-4 PM (3)
May 05, 4-5 PM (4)
May 05, 5-6 PM (1)
May 05, 6-7 PM (1)
May 05, 7-8 PM (2)
May 05, 8-9 PM (0)
May 05, 9-10 PM (6)
May 05, 10-11 PM (0)
May 05, 11-12 AM (0)
May 06, 12-1 AM (0)
May 06, 1-2 AM (0)
May 06, 2-3 AM (0)
May 06, 3-4 AM (0)
May 06, 4-5 AM (0)
May 06, 5-6 AM (0)
May 06, 6-7 AM (0)
May 06, 7-8 AM (0)
May 06, 8-9 AM (0)
May 06, 9-10 AM (2)
May 06, 10-11 AM (1)
May 06, 11-12 PM (0)
May 06, 12-1 PM (3)
May 06, 1-2 PM (1)
May 06, 2-3 PM (1)
May 06, 3-4 PM (0)
May 06, 4-5 PM (0)
May 06, 5-6 PM (0)
May 06, 6-7 PM (0)
May 06, 7-8 PM (0)
May 06, 8-9 PM (1)
May 06, 9-10 PM (0)
May 06, 10-11 PM (0)
May 06, 11-12 AM (0)
May 07, 12-1 AM (0)
May 07, 1-2 AM (0)
May 07, 2-3 AM (0)
May 07, 3-4 AM (0)
May 07, 4-5 AM (0)
May 07, 5-6 AM (0)
May 07, 6-7 AM (0)
May 07, 7-8 AM (1)
May 07, 8-9 AM (0)
May 07, 9-10 AM (0)
May 07, 10-11 AM (20)
May 07, 11-12 PM (10)
May 07, 12-1 PM (1)
May 07, 1-2 PM (4)
May 07, 2-3 PM (4)
May 07, 3-4 PM (2)
May 07, 4-5 PM (1)
May 07, 5-6 PM (1)
May 07, 6-7 PM (0)
May 07, 7-8 PM (4)
May 07, 8-9 PM (0)
May 07, 9-10 PM (0)
May 07, 10-11 PM (0)
May 07, 11-12 AM (0)
May 08, 12-1 AM (0)
May 08, 1-2 AM (0)
May 08, 2-3 AM (0)
May 08, 3-4 AM (0)
May 08, 4-5 AM (0)
May 08, 5-6 AM (0)
May 08, 6-7 AM (3)
May 08, 7-8 AM (14)
May 08, 8-9 AM (1)
May 08, 9-10 AM (1)
May 08, 10-11 AM (0)
May 08, 11-12 PM (0)
May 08, 12-1 PM (2)
May 08, 1-2 PM (1)
May 08, 2-3 PM (0)
May 08, 3-4 PM (0)
May 08, 4-5 PM (3)
May 08, 5-6 PM (0)
May 08, 6-7 PM (0)
May 08, 7-8 PM (0)
May 08, 8-9 PM (0)
May 08, 9-10 PM (2)
May 08, 10-11 PM (0)
May 08, 11-12 AM (0)
May 09, 12-1 AM (0)
May 09, 1-2 AM (0)
May 09, 2-3 AM (0)
May 09, 3-4 AM (0)
May 09, 4-5 AM (0)
May 09, 5-6 AM (0)
May 09, 6-7 AM (0)
May 09, 7-8 AM (0)
May 09, 8-9 AM (0)
May 09, 9-10 AM (0)
May 09, 10-11 AM (0)
May 09, 11-12 PM (0)
May 09, 12-1 PM (0)
May 09, 1-2 PM (0)
May 09, 2-3 PM (0)
May 09, 3-4 PM (0)
May 09, 4-5 PM (0)
May 09, 5-6 PM (0)
May 09, 6-7 PM (0)
May 09, 7-8 PM (0)
May 09, 8-9 PM (0)
May 09, 9-10 PM (0)
May 09, 10-11 PM (1)
May 09, 11-12 AM (0)
May 10, 12-1 AM (0)
May 10, 1-2 AM (0)
May 10, 2-3 AM (0)
May 10, 3-4 AM (0)
May 10, 4-5 AM (0)
May 10, 5-6 AM (0)
May 10, 6-7 AM (0)
May 10, 7-8 AM (0)
May 10, 8-9 AM (0)
May 10, 9-10 AM (0)
May 10, 10-11 AM (0)
May 10, 11-12 PM (0)
May 10, 12-1 PM (0)
May 10, 1-2 PM (0)
May 10, 2-3 PM (0)
May 10, 3-4 PM (0)
May 10, 4-5 PM (0)
May 10, 5-6 PM (0)
May 10, 6-7 PM (0)
May 10, 7-8 PM (0)
May 10, 8-9 PM (0)
May 10, 9-10 PM (0)
May 10, 10-11 PM (0)
May 10, 11-12 AM (0)
May 11, 12-1 AM (0)
May 11, 1-2 AM (0)
May 11, 2-3 AM (0)
May 11, 3-4 AM (0)
May 11, 4-5 AM (0)
May 11, 5-6 AM (0)
May 11, 6-7 AM (3)
May 11, 7-8 AM (33)
May 11, 8-9 AM (5)
May 11, 9-10 AM (0)
411 commits this week
May 04, 2026
-
May 11, 2026
WIP removing degenerate BlockSupportsPeras instance
Consolidate Peras vote and certificate projection type classes
Remove PerasCfg type family
Split base Peras types into separate module
Abstract over vote in LeiosNotify and add json encoder
This will avoid us needing to change the cardano-node code when we change message formats of the notify protocol. The abstraction over 'vote' is needed to avoid a cyclic dependency. Moving the toObject function would have been the alternative, but I followed the existing pattern.
Switch cardano-blueprint submodule to HTTPS
Abstract over vote in LeiosNotify and add json encoder
This will avoid us needing to change the cardano-node code when we change message formats of the notify protocol. The abstraction over 'vote' is needed to avoid a cyclic dependency. Moving the toObject function would have been the alternative, but I followed the existing pattern.
Add property tests for EveryoneVotes implementation
This commit implements property tests for the EveryoneVotes implementation asserting that: * votes cast by eligible voters are successfully verifiable under the same voting committee, * fake (illegal) votes are successfully rejected, and * certificates forged by multiple votes can be verifiable under the same voting committe Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Introduce O.C.Util.Bitmap
This commit implements a compact bitmaps via ByteStrings, adapted from the Leios voting committee demo package (leios-wfa-ls-demo): https://github.com/cardano-scaling/leios-wfa-ls-demo/blob/main/leios-wfa-ls-demo/lib/Cardano/Leios/BitMapPV.hs Co-authored-by: Agustin Mista <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Nicolas BACQUEY <[email protected]>
Add changelog
Co-authored-by: Agustin Mista <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Nicolas BACQUEY <[email protected]>
Add serialization roundtrip tests for PerasCert and PerasVote
This commit adds serialization roundtrip tests for the concrete Peras votes and certificate types. Co-authored-by: Agustin Mista <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Nicolas BACQUEY <[email protected]>
Introduce Bytes32RealPoint
This commit introduces a specialization of RealPoint for blocks where the header hash is always 32 bytes long.
Tweak existing WFALS model and conformance tests
This commit reorganizes the existing model and conformance test infrastructure for WFALS in anticipation to the the tests for the real implementation implemented in the next commit. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Add conformance tests for WFALS implementation
This commit adds conformance tests for the real WFALS implementation. In particular, we chech that the real implementation matches both the precomputed output of the rust prototype as well as the WFALS model against random stake distributions and target committee sizes. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Add property tests for UniqueVotesWithSameTarget
This commit adds property tests to validate the implementation of checkUniqueVotesWithSameTarget, provided by the generic voting committee API. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Add test helpers for PerasCrypto
This commit adds test helpers to aid with the definition of the upcoming roundtrip properties for concrete Peras votes and certificates. Co-authored-by: Agustin Mista <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Nicolas BACQUEY <[email protected]>
Add property tests for WFALS implementation
This commit implements property tests for the real WFALS implementation asserting that: * votes cast by eligible voters are successfully verifiable under the same voting committee, * fake (illegal) votes are successfully rejected, and * certificates forged by multiple votes can be verifiable under the same voting committe Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Add conversions between Peras votes/certs and voting committee types
This commit implements conversion routines between the brand-new (concrete) Peras votes and certificates and their corresponding (abstract) voting committee counterparts. This is done by introducing a `VotingCommitteeSupportsPeras` type class to allow us to easily change the underlying voting committee implementation via a proxy type. Co-authored-by: Agustin Mista <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Nicolas BACQUEY <[email protected]>
Implement BLS-based TestCrypto scheme for voting committee tests
This commit uses the previously defined BLS-based crypto helpers to implement a TestCrypto scheme to be used by the upcoming property tests for WFALS and EveryoneVotes. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
WIP implementing VoteForging wrapper
Define concrete Peras certs and votes using BLS signatures
This commit defines concrete data structures for Peras votes and certificates using BLS signatures to represent vote/cert signatures as well as non-persistent eligibility proofs. In addition it defines serialization routines for both types, using a compact bitmap representation in the case of certificates. Co-authored-by: Agustin Mista <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Nicolas BACQUEY <[email protected]>
Add helpers for voting committee tests
This commit defines some common test helpers used by the upcoming property and conformance tests for both WFALS and EveryoneVotes. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Add conversion roundtrip tests between Peras votes/certs and voting committee types
This commit adds conversion rountrip tests between concrete Peras votes and certificates and their corresponding (abstract) counterparts in the WFALS and EveryoneVotes voting committee implementations. Notably, the roundtrip properties allow testing both total (WFALS) and partial (EveryoneVotes) conversions, generating both good and bad cases and contrasting them against their expected rountrip outcome. Co-authored-by: Agustin Mista <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Nicolas BACQUEY <[email protected]>
Add changelog
Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>