chore: update Hermes packet validation
Apr 28, 3-4 PM (31)
Apr 28, 4-5 PM (14)
Apr 28, 5-6 PM (47)
Apr 28, 6-7 PM (9)
Apr 28, 7-8 PM (9)
Apr 28, 8-9 PM (14)
Apr 28, 9-10 PM (20)
Apr 28, 10-11 PM (34)
Apr 28, 11-12 AM (29)
Apr 29, 12-1 AM (13)
Apr 29, 1-2 AM (1)
Apr 29, 2-3 AM (1)
Apr 29, 3-4 AM (6)
Apr 29, 4-5 AM (1)
Apr 29, 5-6 AM (4)
Apr 29, 6-7 AM (12)
Apr 29, 7-8 AM (45)
Apr 29, 8-9 AM (75)
Apr 29, 9-10 AM (49)
Apr 29, 10-11 AM (28)
Apr 29, 11-12 PM (51)
Apr 29, 12-1 PM (39)
Apr 29, 1-2 PM (21)
Apr 29, 2-3 PM (67)
Apr 29, 3-4 PM (25)
Apr 29, 4-5 PM (36)
Apr 29, 5-6 PM (16)
Apr 29, 6-7 PM (10)
Apr 29, 7-8 PM (14)
Apr 29, 8-9 PM (13)
Apr 29, 9-10 PM (17)
Apr 29, 10-11 PM (25)
Apr 29, 11-12 AM (29)
Apr 30, 12-1 AM (6)
Apr 30, 1-2 AM (8)
Apr 30, 2-3 AM (1)
Apr 30, 3-4 AM (6)
Apr 30, 4-5 AM (2)
Apr 30, 5-6 AM (8)
Apr 30, 6-7 AM (15)
Apr 30, 7-8 AM (17)
Apr 30, 8-9 AM (100)
Apr 30, 9-10 AM (19)
Apr 30, 10-11 AM (50)
Apr 30, 11-12 PM (120)
Apr 30, 12-1 PM (69)
Apr 30, 1-2 PM (45)
Apr 30, 2-3 PM (117)
Apr 30, 3-4 PM (29)
Apr 30, 4-5 PM (34)
Apr 30, 5-6 PM (9)
Apr 30, 6-7 PM (20)
Apr 30, 7-8 PM (23)
Apr 30, 8-9 PM (28)
Apr 30, 9-10 PM (13)
Apr 30, 10-11 PM (25)
Apr 30, 11-12 AM (15)
May 01, 12-1 AM (18)
May 01, 1-2 AM (15)
May 01, 2-3 AM (6)
May 01, 3-4 AM (7)
May 01, 4-5 AM (3)
May 01, 5-6 AM (5)
May 01, 6-7 AM (8)
May 01, 7-8 AM (15)
May 01, 8-9 AM (24)
May 01, 9-10 AM (17)
May 01, 10-11 AM (16)
May 01, 11-12 PM (17)
May 01, 12-1 PM (39)
May 01, 1-2 PM (32)
May 01, 2-3 PM (19)
May 01, 3-4 PM (16)
May 01, 4-5 PM (25)
May 01, 5-6 PM (11)
May 01, 6-7 PM (20)
May 01, 7-8 PM (22)
May 01, 8-9 PM (65)
May 01, 9-10 PM (15)
May 01, 10-11 PM (40)
May 01, 11-12 AM (61)
May 02, 12-1 AM (6)
May 02, 1-2 AM (11)
May 02, 2-3 AM (5)
May 02, 3-4 AM (8)
May 02, 4-5 AM (6)
May 02, 5-6 AM (2)
May 02, 6-7 AM (2)
May 02, 7-8 AM (14)
May 02, 8-9 AM (7)
May 02, 9-10 AM (8)
May 02, 10-11 AM (11)
May 02, 11-12 PM (7)
May 02, 12-1 PM (7)
May 02, 1-2 PM (3)
May 02, 2-3 PM (14)
May 02, 3-4 PM (9)
May 02, 4-5 PM (27)
May 02, 5-6 PM (9)
May 02, 6-7 PM (29)
May 02, 7-8 PM (11)
May 02, 8-9 PM (15)
May 02, 9-10 PM (1)
May 02, 10-11 PM (20)
May 02, 11-12 AM (18)
May 03, 12-1 AM (8)
May 03, 1-2 AM (1)
May 03, 2-3 AM (4)
May 03, 3-4 AM (7)
May 03, 4-5 AM (1)
May 03, 5-6 AM (4)
May 03, 6-7 AM (32)
May 03, 7-8 AM (5)
May 03, 8-9 AM (1)
May 03, 9-10 AM (3)
May 03, 10-11 AM (10)
May 03, 11-12 PM (11)
May 03, 12-1 PM (16)
May 03, 1-2 PM (11)
May 03, 2-3 PM (2)
May 03, 3-4 PM (2)
May 03, 4-5 PM (5)
May 03, 5-6 PM (0)
May 03, 6-7 PM (5)
May 03, 7-8 PM (6)
May 03, 8-9 PM (8)
May 03, 9-10 PM (15)
May 03, 10-11 PM (23)
May 03, 11-12 AM (17)
May 04, 12-1 AM (4)
May 04, 1-2 AM (4)
May 04, 2-3 AM (10)
May 04, 3-4 AM (9)
May 04, 4-5 AM (5)
May 04, 5-6 AM (6)
May 04, 6-7 AM (6)
May 04, 7-8 AM (28)
May 04, 8-9 AM (24)
May 04, 9-10 AM (43)
May 04, 10-11 AM (36)
May 04, 11-12 PM (61)
May 04, 12-1 PM (34)
May 04, 1-2 PM (47)
May 04, 2-3 PM (64)
May 04, 3-4 PM (33)
May 04, 4-5 PM (64)
May 04, 5-6 PM (49)
May 04, 6-7 PM (13)
May 04, 7-8 PM (31)
May 04, 8-9 PM (45)
May 04, 9-10 PM (9)
May 04, 10-11 PM (54)
May 04, 11-12 AM (24)
May 05, 12-1 AM (4)
May 05, 1-2 AM (5)
May 05, 2-3 AM (5)
May 05, 3-4 AM (11)
May 05, 4-5 AM (11)
May 05, 5-6 AM (50)
May 05, 6-7 AM (16)
May 05, 7-8 AM (36)
May 05, 8-9 AM (81)
May 05, 9-10 AM (68)
May 05, 10-11 AM (34)
May 05, 11-12 PM (71)
May 05, 12-1 PM (115)
May 05, 1-2 PM (118)
May 05, 2-3 PM (57)
May 05, 3-4 PM (3)
3,918 commits this week
Apr 28, 2026
-
May 05, 2026
docs: document index-applier 72h deadline and recovery procedure
- deployment.md (Troubleshooting): add row for API stuck at APPLYING_INDEXES caused by activeDeadlineSeconds: 259200 exceeded - index-management.md: add note about Kubernetes 72h deadline linking to the Deployment Runbook
chore: update Hermes accepted-height wait
WIP allowing the code to compile without a degenerate instance
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 changelog
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]>
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]>
Add changelog
Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[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]>
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 property tests for Bitmap library
This commit adds property tests for the newly added bitmap library asserting that both conversion from and/to indices as well as serialization roundtrip correctly. 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]>
Implement wFA^LS voting committee instance
This commit defined the weighted Fait-Accompli with local soritition voting scheme (WFALS) using the separate WFA and LS components. This includes the definition of both persistent and non-pesistent abstract votes and abstract certificates. NOTE: it is the job of the low-level vote and certificate implementation to provide the plumbing needed to convert between abstract and concrete values, possibly allowing the same concrete definitions to work with multiple voting commitee implementations. 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]>
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 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]>
Implement BLS-based crypto helpers to instantiate voting committes
This commit implements BLS-based crypto helpers to simplify the implementation of crypto schemes used for voting committees. It includes both single and aggregate signature and VRF signing and verification, as well as swap-attack-resistant aggregate VRF verification via linearization. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Implement local sortition for non-persistent seats
This commit implements the local sortition fallback scheme needed by wFA^LS to allocate non-persistent voters. Each non-persistent voter provides a VRF output that gets normalized and compared against the output of a numerically-stable stake-weighted Poisson distribution. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[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 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]>
Implement EveryoneVotes voting committee instance
This commit implements EveryoneVotes a simpler alternative to WFALS where every voter with non-negative stake is entitled to vote. This exists as a baseline to run benchmarks against later on. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Implement pure weighted Fait-Accompli logic
This commit implements the deterministic core of the weighted Fait-Accompli algorithm using a precomputed extended stake distribution, shareable across multiple voting committees running on the same epoch. The implementation includes a tiebreaker mechanism to allow altering the order of pools with the same stake when the threshold index between persistent and non-persistent voters would land between them. This can later be instantiated to allow for a fair split across epochs. Co-authored-by: Nicolas BACQUEY <[email protected]> Co-authored-by: Thomas BAGREL <[email protected]> Co-authored-by: Agustin Mista <[email protected]>
Remove PerasCfg type family
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]>