Mar 03, 11-12 PM (17)
Mar 03, 12-1 PM (53)
Mar 03, 1-2 PM (57)
Mar 03, 2-3 PM (62)
Mar 03, 3-4 PM (39)
Mar 03, 4-5 PM (40)
Mar 03, 5-6 PM (12)
Mar 03, 6-7 PM (16)
Mar 03, 7-8 PM (20)
Mar 03, 8-9 PM (4)
Mar 03, 9-10 PM (31)
Mar 03, 10-11 PM (44)
Mar 03, 11-12 AM (20)
Mar 04, 12-1 AM (8)
Mar 04, 1-2 AM (19)
Mar 04, 2-3 AM (12)
Mar 04, 3-4 AM (7)
Mar 04, 4-5 AM (7)
Mar 04, 5-6 AM (6)
Mar 04, 6-7 AM (7)
Mar 04, 7-8 AM (48)
Mar 04, 8-9 AM (54)
Mar 04, 9-10 AM (33)
Mar 04, 10-11 AM (97)
Mar 04, 11-12 PM (40)
Mar 04, 12-1 PM (47)
Mar 04, 1-2 PM (66)
Mar 04, 2-3 PM (81)
Mar 04, 3-4 PM (102)
Mar 04, 4-5 PM (18)
Mar 04, 5-6 PM (62)
Mar 04, 6-7 PM (60)
Mar 04, 7-8 PM (39)
Mar 04, 8-9 PM (56)
Mar 04, 9-10 PM (15)
Mar 04, 10-11 PM (26)
Mar 04, 11-12 AM (26)
Mar 05, 12-1 AM (15)
Mar 05, 1-2 AM (18)
Mar 05, 2-3 AM (17)
Mar 05, 3-4 AM (16)
Mar 05, 4-5 AM (3)
Mar 05, 5-6 AM (9)
Mar 05, 6-7 AM (27)
Mar 05, 7-8 AM (20)
Mar 05, 8-9 AM (31)
Mar 05, 9-10 AM (72)
Mar 05, 10-11 AM (43)
Mar 05, 11-12 PM (53)
Mar 05, 12-1 PM (65)
Mar 05, 1-2 PM (51)
Mar 05, 2-3 PM (68)
Mar 05, 3-4 PM (64)
Mar 05, 4-5 PM (55)
Mar 05, 5-6 PM (57)
Mar 05, 6-7 PM (66)
Mar 05, 7-8 PM (20)
Mar 05, 8-9 PM (21)
Mar 05, 9-10 PM (8)
Mar 05, 10-11 PM (22)
Mar 05, 11-12 AM (21)
Mar 06, 12-1 AM (11)
Mar 06, 1-2 AM (18)
Mar 06, 2-3 AM (8)
Mar 06, 3-4 AM (0)
Mar 06, 4-5 AM (11)
Mar 06, 5-6 AM (5)
Mar 06, 6-7 AM (16)
Mar 06, 7-8 AM (65)
Mar 06, 8-9 AM (35)
Mar 06, 9-10 AM (46)
Mar 06, 10-11 AM (48)
Mar 06, 11-12 PM (45)
Mar 06, 12-1 PM (48)
Mar 06, 1-2 PM (89)
Mar 06, 2-3 PM (93)
Mar 06, 3-4 PM (37)
Mar 06, 4-5 PM (40)
Mar 06, 5-6 PM (20)
Mar 06, 6-7 PM (16)
Mar 06, 7-8 PM (22)
Mar 06, 8-9 PM (15)
Mar 06, 9-10 PM (13)
Mar 06, 10-11 PM (28)
Mar 06, 11-12 AM (22)
Mar 07, 12-1 AM (16)
Mar 07, 1-2 AM (1)
Mar 07, 2-3 AM (6)
Mar 07, 3-4 AM (0)
Mar 07, 4-5 AM (1)
Mar 07, 5-6 AM (5)
Mar 07, 6-7 AM (7)
Mar 07, 7-8 AM (7)
Mar 07, 8-9 AM (4)
Mar 07, 9-10 AM (3)
Mar 07, 10-11 AM (0)
Mar 07, 11-12 PM (4)
Mar 07, 12-1 PM (6)
Mar 07, 1-2 PM (2)
Mar 07, 2-3 PM (6)
Mar 07, 3-4 PM (22)
Mar 07, 4-5 PM (21)
Mar 07, 5-6 PM (5)
Mar 07, 6-7 PM (0)
Mar 07, 7-8 PM (7)
Mar 07, 8-9 PM (10)
Mar 07, 9-10 PM (7)
Mar 07, 10-11 PM (37)
Mar 07, 11-12 AM (28)
Mar 08, 12-1 AM (3)
Mar 08, 1-2 AM (5)
Mar 08, 2-3 AM (5)
Mar 08, 3-4 AM (1)
Mar 08, 4-5 AM (1)
Mar 08, 5-6 AM (1)
Mar 08, 6-7 AM (0)
Mar 08, 7-8 AM (3)
Mar 08, 8-9 AM (8)
Mar 08, 9-10 AM (2)
Mar 08, 10-11 AM (0)
Mar 08, 11-12 PM (1)
Mar 08, 12-1 PM (3)
Mar 08, 1-2 PM (6)
Mar 08, 2-3 PM (6)
Mar 08, 3-4 PM (15)
Mar 08, 4-5 PM (0)
Mar 08, 5-6 PM (31)
Mar 08, 6-7 PM (7)
Mar 08, 7-8 PM (8)
Mar 08, 8-9 PM (12)
Mar 08, 9-10 PM (1)
Mar 08, 10-11 PM (25)
Mar 08, 11-12 AM (25)
Mar 09, 12-1 AM (6)
Mar 09, 1-2 AM (5)
Mar 09, 2-3 AM (21)
Mar 09, 3-4 AM (20)
Mar 09, 4-5 AM (2)
Mar 09, 5-6 AM (4)
Mar 09, 6-7 AM (3)
Mar 09, 7-8 AM (21)
Mar 09, 8-9 AM (36)
Mar 09, 9-10 AM (29)
Mar 09, 10-11 AM (44)
Mar 09, 11-12 PM (31)
Mar 09, 12-1 PM (60)
Mar 09, 1-2 PM (24)
Mar 09, 2-3 PM (74)
Mar 09, 3-4 PM (60)
Mar 09, 4-5 PM (127)
Mar 09, 5-6 PM (49)
Mar 09, 6-7 PM (54)
Mar 09, 7-8 PM (23)
Mar 09, 8-9 PM (25)
Mar 09, 9-10 PM (13)
Mar 09, 10-11 PM (60)
Mar 09, 11-12 AM (24)
Mar 10, 12-1 AM (5)
Mar 10, 1-2 AM (35)
Mar 10, 2-3 AM (34)
Mar 10, 3-4 AM (6)
Mar 10, 4-5 AM (3)
Mar 10, 5-6 AM (5)
Mar 10, 6-7 AM (20)
Mar 10, 7-8 AM (69)
Mar 10, 8-9 AM (110)
Mar 10, 9-10 AM (29)
Mar 10, 10-11 AM (17)
Mar 10, 11-12 PM (0)
4,453 commits this week Mar 03, 2026 - Mar 10, 2026
chore(deps): Bump docker/build-push-action from 6 to 7
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
chore(deps): Bump docker/metadata-action from 5 to 6
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
chore(deps): Bump docker/setup-buildx-action from 3 to 4
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
chore(deps): Bump docker/login-action from 3 to 4
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Restore immediate ReqSn on ReqTx receipt for snapshot leader
  Re-add maybeRequestSnapshot in onOpenNetworkReqTx so the leader sends
  ReqSn immediately when a transaction arrives and no snapshot is in
  flight. The timer-only approach introduced up to 5 ms latency per
  snapshot in single-tx-at-a-time workloads (the bench-e2e pattern:
  submit → waitConfirmed → submit).

  The timer remains as a complementary path for deposits, decommits, and
  idle recovery. Batching for burst workloads is unaffected: the first tx
  triggers an immediate ReqSn; subsequent txs accumulate while the round
  is in-flight and are confirmed in the next round via maybeRequestNextSnapshot.

  Uses skipPostedDecommit/skipPostedDeposit (new to this branch) in the
  restored path for consistency with the timer and AckSn paths.

Signed-off-by: Sasha Bogicevic <[email protected]>
Fix snapshot flooding by removing SeenSnapshot retry from onOpenTimer
  The SeenSnapshot case in onOpenTimer re-broadcast ReqSn+AckSn on every
  timer tick while waiting for AckSns. With a 5ms timer interval and etcd
  delivering each message back as a NetworkInput, this created a feedback
  loop: each broadcast → etcd echo → resets lastWasTimer → timer fires
  again → more broadcasts → floods the etcd PersistentQueue (capacity 100)
  → blocks processEffects → delays incoming AckSns → exponential slowdown
  (200+ ReqSn per snapshot, 5s+ gaps at snapshot 7+).

  Since etcd guarantees reliable delivery, the retry is unnecessary for
  normal L2 operation. Edge cases (deposit activation, version bumps) are
  handled by CommitFinalized/DecommitFinalized resetting seenSnapshot to
  LastSeenSnapshot, which lets the timer's fresh-send path handle them.

  Restore maybeRequestNextSnapshot in onAckSn so the leader for sn+1
  immediately chains the next snapshot after SnapshotConfirmed, avoiding
  an idle timer interval between snapshots.

Signed-off-by: Sasha Bogicevic <[email protected]>
Implement test model for wFA^LS committee selection
This commits provides a model implementation for the weighted Fait
Accompli committee selection scheme that will be used for Peras. This
comes with a pure model of the local sortition scheme that will be used
as a fallback for non-deterministic non-persistent voters.

In addition, it provides some general QuickCheck properties to verify
the validity of the deterministic parts of the algorithm.

Co-authored-by: Nicolas BACQUEY <[email protected]>
Co-authored-by: Thomas BAGREL <[email protected]>
Co-authored-by: Agustin Mista <[email protected]>
Refactor DijkstraBBODY, use DijkstraEraBlockHeader.
Introduce DijkstraEraBlockHeader to have a lens to the previous nonce,
and the DijkstraBbodySignal type to constrain the header existantially,
same as for BbodySignal.

Move PerasCert, PerasKey and validatePerasCert to dijkstra's BlockBody.

Remove PrevEpochNonceNotPresent because the field is implicitly present
in the signal to the BBODY rule now.

Refactor the dijkstra BBODY rule to reuse validations from shelley,
alonzo, conway, inlined, because the change in the type of Signal makes
calling earlier BBODY transitions impossible.
Fix snapshot flooding by removing SeenSnapshot retry from onOpenTimer
  The SeenSnapshot case in onOpenTimer re-broadcast ReqSn+AckSn on every
  timer tick while waiting for AckSns. With a 5ms timer interval and etcd
  delivering each message back as a NetworkInput, this created a feedback
  loop: each broadcast → etcd echo → resets lastWasTimer → timer fires
  again → more broadcasts → floods the etcd PersistentQueue (capacity 100)
  → blocks processEffects → delays incoming AckSns → exponential slowdown
  (200+ ReqSn per snapshot, 5s+ gaps at snapshot 7+).

  Since etcd guarantees reliable delivery, the retry is unnecessary for
  normal L2 operation. Edge cases (deposit activation, version bumps) are
  handled by CommitFinalized/DecommitFinalized resetting seenSnapshot to
  LastSeenSnapshot, which lets the timer's fresh-send path handle them.

  Restore maybeRequestNextSnapshot in onAckSn so the leader for sn+1
  immediately chains the next snapshot after SnapshotConfirmed, avoiding
  an idle timer interval between snapshots.

Signed-off-by: Sasha Bogicevic <[email protected]>
Refactor DijkstraBBODY, use DijkstraEraBlockHeader.
Introduce DijkstraEraBlockHeader to have a lens to the previous nonce,
and the DijkstraBbodySignal type to constrain the header existantially,
same as for BbodySignal.

Move PerasCert, PerasKey and validatePerasCert to dijkstra's BlockBody.

Remove PrevEpochNonceNotPresent because the field is implicitly present
in the signal to the BBODY rule now.

Refactor the dijkstra BBODY rule to reuse validations from shelley,
alonzo, conway, inlined, because the change in the type of Signal makes
calling earlier BBODY transitions impossible.
Fix snapshot flooding by removing SeenSnapshot retry from onOpenTimer
  The SeenSnapshot case in onOpenTimer re-broadcast ReqSn+AckSn on every
  timer tick while waiting for AckSns. With a 5ms timer interval and etcd
  delivering each message back as a NetworkInput, this created a feedback
  loop: each broadcast → etcd echo → resets lastWasTimer → timer fires
  again → more broadcasts → floods the etcd PersistentQueue (capacity 100)
  → blocks processEffects → delays incoming AckSns → exponential slowdown
  (200+ ReqSn per snapshot, 5s+ gaps at snapshot 7+).

  Since etcd guarantees reliable delivery, the retry is unnecessary for
  normal L2 operation. Edge cases (deposit activation, version bumps) are
  handled by CommitFinalized/DecommitFinalized resetting seenSnapshot to
  LastSeenSnapshot, which lets the timer's fresh-send path handle them.

  Restore maybeRequestNextSnapshot in onAckSn so the leader for sn+1
  immediately chains the next snapshot after SnapshotConfirmed, avoiding
  an idle timer interval between snapshots.

Signed-off-by: Sasha Bogicevic <[email protected]>