Apr 20, 2-3 PM (68)
Apr 20, 3-4 PM (47)
Apr 20, 4-5 PM (41)
Apr 20, 5-6 PM (31)
Apr 20, 6-7 PM (24)
Apr 20, 7-8 PM (10)
Apr 20, 8-9 PM (7)
Apr 20, 9-10 PM (16)
Apr 20, 10-11 PM (28)
Apr 20, 11-12 AM (18)
Apr 21, 12-1 AM (24)
Apr 21, 1-2 AM (5)
Apr 21, 2-3 AM (13)
Apr 21, 3-4 AM (4)
Apr 21, 4-5 AM (3)
Apr 21, 5-6 AM (8)
Apr 21, 6-7 AM (15)
Apr 21, 7-8 AM (44)
Apr 21, 8-9 AM (119)
Apr 21, 9-10 AM (36)
Apr 21, 10-11 AM (35)
Apr 21, 11-12 PM (98)
Apr 21, 12-1 PM (57)
Apr 21, 1-2 PM (71)
Apr 21, 2-3 PM (60)
Apr 21, 3-4 PM (33)
Apr 21, 4-5 PM (31)
Apr 21, 5-6 PM (27)
Apr 21, 6-7 PM (38)
Apr 21, 7-8 PM (35)
Apr 21, 8-9 PM (37)
Apr 21, 9-10 PM (14)
Apr 21, 10-11 PM (34)
Apr 21, 11-12 AM (12)
Apr 22, 12-1 AM (2)
Apr 22, 1-2 AM (3)
Apr 22, 2-3 AM (3)
Apr 22, 3-4 AM (4)
Apr 22, 4-5 AM (3)
Apr 22, 5-6 AM (17)
Apr 22, 6-7 AM (34)
Apr 22, 7-8 AM (21)
Apr 22, 8-9 AM (37)
Apr 22, 9-10 AM (18)
Apr 22, 10-11 AM (47)
Apr 22, 11-12 PM (45)
Apr 22, 12-1 PM (56)
Apr 22, 1-2 PM (64)
Apr 22, 2-3 PM (44)
Apr 22, 3-4 PM (86)
Apr 22, 4-5 PM (46)
Apr 22, 5-6 PM (17)
Apr 22, 6-7 PM (10)
Apr 22, 7-8 PM (18)
Apr 22, 8-9 PM (15)
Apr 22, 9-10 PM (23)
Apr 22, 10-11 PM (31)
Apr 22, 11-12 AM (17)
Apr 23, 12-1 AM (7)
Apr 23, 1-2 AM (4)
Apr 23, 2-3 AM (4)
Apr 23, 3-4 AM (6)
Apr 23, 4-5 AM (3)
Apr 23, 5-6 AM (8)
Apr 23, 6-7 AM (17)
Apr 23, 7-8 AM (26)
Apr 23, 8-9 AM (33)
Apr 23, 9-10 AM (33)
Apr 23, 10-11 AM (29)
Apr 23, 11-12 PM (30)
Apr 23, 12-1 PM (51)
Apr 23, 1-2 PM (69)
Apr 23, 2-3 PM (65)
Apr 23, 3-4 PM (26)
Apr 23, 4-5 PM (22)
Apr 23, 5-6 PM (7)
Apr 23, 6-7 PM (7)
Apr 23, 7-8 PM (11)
Apr 23, 8-9 PM (14)
Apr 23, 9-10 PM (6)
Apr 23, 10-11 PM (28)
Apr 23, 11-12 AM (18)
Apr 24, 12-1 AM (7)
Apr 24, 1-2 AM (4)
Apr 24, 2-3 AM (7)
Apr 24, 3-4 AM (5)
Apr 24, 4-5 AM (8)
Apr 24, 5-6 AM (13)
Apr 24, 6-7 AM (12)
Apr 24, 7-8 AM (33)
Apr 24, 8-9 AM (40)
Apr 24, 9-10 AM (41)
Apr 24, 10-11 AM (72)
Apr 24, 11-12 PM (57)
Apr 24, 12-1 PM (100)
Apr 24, 1-2 PM (57)
Apr 24, 2-3 PM (35)
Apr 24, 3-4 PM (19)
Apr 24, 4-5 PM (16)
Apr 24, 5-6 PM (38)
Apr 24, 6-7 PM (27)
Apr 24, 7-8 PM (12)
Apr 24, 8-9 PM (42)
Apr 24, 9-10 PM (17)
Apr 24, 10-11 PM (30)
Apr 24, 11-12 AM (16)
Apr 25, 12-1 AM (8)
Apr 25, 1-2 AM (1)
Apr 25, 2-3 AM (10)
Apr 25, 3-4 AM (5)
Apr 25, 4-5 AM (3)
Apr 25, 5-6 AM (13)
Apr 25, 6-7 AM (1)
Apr 25, 7-8 AM (4)
Apr 25, 8-9 AM (24)
Apr 25, 9-10 AM (17)
Apr 25, 10-11 AM (4)
Apr 25, 11-12 PM (4)
Apr 25, 12-1 PM (13)
Apr 25, 1-2 PM (3)
Apr 25, 2-3 PM (10)
Apr 25, 3-4 PM (6)
Apr 25, 4-5 PM (10)
Apr 25, 5-6 PM (16)
Apr 25, 6-7 PM (12)
Apr 25, 7-8 PM (30)
Apr 25, 8-9 PM (55)
Apr 25, 9-10 PM (13)
Apr 25, 10-11 PM (21)
Apr 25, 11-12 AM (22)
Apr 26, 12-1 AM (5)
Apr 26, 1-2 AM (0)
Apr 26, 2-3 AM (2)
Apr 26, 3-4 AM (5)
Apr 26, 4-5 AM (2)
Apr 26, 5-6 AM (2)
Apr 26, 6-7 AM (3)
Apr 26, 7-8 AM (8)
Apr 26, 8-9 AM (3)
Apr 26, 9-10 AM (0)
Apr 26, 10-11 AM (2)
Apr 26, 11-12 PM (1)
Apr 26, 12-1 PM (6)
Apr 26, 1-2 PM (4)
Apr 26, 2-3 PM (14)
Apr 26, 3-4 PM (14)
Apr 26, 4-5 PM (0)
Apr 26, 5-6 PM (13)
Apr 26, 6-7 PM (13)
Apr 26, 7-8 PM (7)
Apr 26, 8-9 PM (7)
Apr 26, 9-10 PM (4)
Apr 26, 10-11 PM (26)
Apr 26, 11-12 AM (21)
Apr 27, 12-1 AM (6)
Apr 27, 1-2 AM (7)
Apr 27, 2-3 AM (9)
Apr 27, 3-4 AM (9)
Apr 27, 4-5 AM (5)
Apr 27, 5-6 AM (13)
Apr 27, 6-7 AM (7)
Apr 27, 7-8 AM (82)
Apr 27, 8-9 AM (46)
Apr 27, 9-10 AM (29)
Apr 27, 10-11 AM (61)
Apr 27, 11-12 PM (78)
Apr 27, 12-1 PM (57)
Apr 27, 1-2 PM (39)
Apr 27, 2-3 PM (8)
3,902 commits this week Apr 20, 2026 - Apr 27, 2026
net-rs: spec-faithful WFA+LS voting integration
Splits CommitteeSelection::WfaLs into per-epoch persistent voters and
per-EB non-persistent voters, each backed by stake-weighted lotteries.
Vote bodies carry no explicit weight; aggregators derive weight from
external state, mirroring CIP-0164.

WfaLs now has { persistent_voters, non_persistent_voters } (defaults
480 + 120, matching sim-rs e30087cdf). Per-startup wFA committee is
allocated identically by every node from the stake registry + a
shared seed (genesis_time_unix), so each node knows its own seat
count and every other pool's without communication.

Per-EB NPV: each pool computes a deterministic eligibility signature
from (voter_id, eb_hash, eb_slot) — modeling a CIP-0164 VRF output —
and seeds a per-stake-unit Bernoulli lottery from it. The signature
is what travels on the wire; the count of wins is reconstructed
independently by every aggregator from the signature plus the
voter's ledger-resolved stake.

A pool may emit up to two bodies per EB: one PV (if it holds ≥1 seat
in the persistent committee) and one NPV (if it won ≥1 lottery trial).

Quorum threshold is now weight-based:
  Σ weight ≥ quorum_weight_fraction × expected_committee_size
where weight is committee[voter_id] for PV and count_npv_wins(...) for
NPV. expected_committee_size = Σ committee_seats + n_npv (e.g. 600
under defaults). EveryoneVotes / StakeCentile keep simpler unit-weight
semantics with no NPV path.

VoteDecision enum and decide_vote method removed; replaced by per-mode
committee construction at startup plus signature-driven NPV at vote
time. Telemetry: voted_stake → voted_weight on LeiosQuorumReached and
LeiosElectionExpired.

Cluster-verified: WfaLs at 25-node uniform stake produces 19 PV seats
per node (480/25), expected committee 600, quorum at 450 reached
reliably; RbCertifiedEb fires.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
feat(cage): per-token parameterization with owner sweep
Replaces the unused `_version: Int` validator parameter with
`seed: OutputReference`. Each cage instance is now a unique script
hash → one address → one minted token. CSMT subtree completeness at
the cage address proves "all pending requests for this exact token,"
with no cross-token bandwidth coupling.

Validator changes:
- mpfCage parameter: `seed: OutputReference` (was `_version: Int`).
- `MintRedeemer.Minting` collapsed to unit; `Mint { asset }` removed.
- `validateMint` derives `tokenId = assetName(seed)` from the param;
  enforces seed UTxO consumption.
- `validateMigration` pins `tokenId.assetName == assetName(seed)`
  so migrations cannot relabel the token across the boundary.
- `UpdateRedeemer.Sweep(OutputReference)` added — owner reclaims
  non-legitimate UTxOs at the cage. Direct O(1) state lookup via the
  redeemer's pointer (in inputs or reference_inputs); confirms the
  pointed-to UTxO carries cageToken before reading the state datum.
- Spend Modify/End paths add defense-in-depth
  `expect extractedToken == cageToken`.
- `validModify` short-circuits the per-request refund-conservation
  equation when `n == 0` (zero-request tick: root unchanged, no
  refunds, oracle pays tx_fee from sweep dust).

Tests cover Sweep happy paths (no-datum garbage, wrong-token request,
fake-state-no-NFT, alongside Modify), Sweep negative paths (non-owner,
fake-state-ref, legitimate state, legitimate request), zero-request
Modify (positive + negative root mutation), and per-token isolation
across two distinct seeds. 1286 checks, 0 errors.

Implements: specs/003-per-token-cage-with-sweep/spec.md FR-001..FR-011.
Closes: cardano-foundation/cardano-mpfs-onchain#47
Update 2026-04-27T14:57:05Z
added:
* github:input-output-hk/mithril/44502bd624e24899d84d39abfb16515707890f88#mithril-client-cli
* github:input-output-hk/mithril/44502bd624e24899d84d39abfb16515707890f88#mithril-signer
removed:
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#bech32
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#cardano-cli
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#cardano-node
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#cardano-submit-api
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#cardano-testnet
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#cardano-tracer
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#db-analyser
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#db-synthesizer
* github:IntersectMBO/cardano-node/01bda2e2cb0a70cd95067d696dbb44665f1d680a#db-truncater
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#bech32
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#cardano-cli
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#cardano-node
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#cardano-submit-api
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#cardano-testnet
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#cardano-tracer
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#db-analyser
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#db-synthesizer
* github:IntersectMBO/cardano-node/06943b66e634fc9eb83ddb376ed3508003dbb607#db-truncater
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#bech32
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#cardano-cli
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#cardano-node
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#cardano-submit-api
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#cardano-testnet
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#cardano-tracer
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#db-analyser
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#db-synthesizer
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#db-truncater
* github:IntersectMBO/cardano-node/0c220b27a9b612bb94b557017452be4a97b640d4#snapshot-converter
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#bech32
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#cardano-cli
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#cardano-node
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#cardano-submit-api
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#cardano-testnet
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#cardano-tracer
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#db-analyser
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#db-synthesizer
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#db-truncater
* github:IntersectMBO/cardano-node/0d697f14ee10a775f08c60e3839becc9131dca75#snapshot-converter
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#bech32
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#cardano-cli
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#cardano-node
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#cardano-submit-api
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#cardano-testnet
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#cardano-tracer
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#db-analyser
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#db-synthesizer
* github:IntersectMBO/cardano-node/176f99e51155cb3eaa0711db1c3c969d67438958#db-truncater
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#bech32
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#cardano-cli
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#cardano-node
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#cardano-submit-api
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#cardano-testnet
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#cardano-tracer
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#db-analyser
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#db-synthesizer
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#db-truncater
* github:IntersectMBO/cardano-node/1e6d8228693ab2aa4e1d7305e7bdcc57cdd278e4#snapshot-converter
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#bech32
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#cardano-cli
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#cardano-node
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#cardano-submit-api
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#cardano-testnet
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#cardano-tracer
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#db-analyser
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#db-synthesizer
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#db-truncater
* github:IntersectMBO/cardano-node/1ec98e952863fd836df8e7c3476fcce6cc019fce#snapshot-converter
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#bech32
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#cardano-cli
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#cardano-node
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#cardano-submit-api
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#cardano-testnet
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#cardano-tracer
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#db-analyser
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#db-synthesizer
* github:IntersectMBO/cardano-node/1f63dbf2ab39e0b32bf6901dc203866d3e37de08#db-truncater
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#bech32
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#cardano-cli
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#cardano-node
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#cardano-submit-api
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#cardano-testnet
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#cardano-tracer
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#db-analyser
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#db-synthesizer
* github:IntersectMBO/cardano-node/2820a63dc934c6d5b5f450b6c2543b81c6476696#db-truncater
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#bech32
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#cardano-cli
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#cardano-node
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#cardano-submit-api
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#cardano-testnet
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#cardano-tracer
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#db-analyser
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#db-synthesizer
* github:IntersectMBO/cardano-node/341ea87ba3b4936188f8c2d4f09bbf1976a7926e#db-truncater
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#bech32
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#cardano-cli
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#cardano-node
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#cardano-submit-api
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#cardano-testnet
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#cardano-tracer
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#db-analyser
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#db-synthesizer
* github:IntersectMBO/cardano-node/36871ba0cd3e86a5dbcfd6878cdb7168bb4e56a1#db-truncater
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#bech32
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#cardano-cli
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#cardano-node
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#cardano-submit-api
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#cardano-testnet
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#cardano-tracer
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#db-analyser
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#db-synthesizer
* github:IntersectMBO/cardano-node/4184f9297bf7306713bfbb8f39eef61c056198cc#db-truncater
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#bech32
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#cardano-cli
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#cardano-node
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#cardano-submit-api
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#cardano-testnet
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#cardano-tracer
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#db-analyser
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#db-synthesizer
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#db-truncater
* github:IntersectMBO/cardano-node/420c94fbb075146c6ec7fba78c5b0482fafe72dd#snapshot-converter
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#bech32
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#cardano-cli
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#cardano-node
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#cardano-submit-api
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#cardano-testnet
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#cardano-tracer
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#db-analyser
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#db-synthesizer
* github:IntersectMBO/cardano-node/52b708f37cd3dc92a188717deae2a6a60117f696#db-truncater
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#bech32
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#cardano-cli
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#cardano-node
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#cardano-submit-api
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#cardano-testnet
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#cardano-tracer
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#db-analyser
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#db-synthesizer
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#db-truncater
* github:IntersectMBO/cardano-node/5a4dcd1b410ba78f9faab7acd48f606496909935#snapshot-converter
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#bech32
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#cardano-cli
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#cardano-node
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#cardano-submit-api
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#cardano-testnet
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#cardano-tracer
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#db-analyser
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#db-synthesizer
* github:IntersectMBO/cardano-node/5d3da8ac771ee5ed424d6c78473c11deabb7a1f3#db-truncater
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#bech32
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#cardano-cli
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#cardano-node
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#cardano-submit-api
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#cardano-testnet
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#cardano-tracer
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#db-analyser
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#db-synthesizer
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#db-truncater
* github:IntersectMBO/cardano-node/6c034ec038d8d276a3595e10e2d38643f09bd1f2#snapshot-converter
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#bech32
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#cardano-cli
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#cardano-node
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#cardano-submit-api
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#cardano-testnet
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#cardano-tracer
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#db-analyser
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#db-synthesizer
* github:IntersectMBO/cardano-node/71f8c71fada068097dc4e62e2f94756576df8135#db-truncater
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#bech32
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#cardano-cli
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#cardano-node
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#cardano-submit-api
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#cardano-testnet
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#cardano-tracer
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#db-analyser
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#db-synthesizer
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#db-truncater
* github:IntersectMBO/cardano-node/7e045ab501e99130a57f363f0964bb4f241c6550#snapshot-converter
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#bech32
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#cardano-cli
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#cardano-node
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#cardano-submit-api
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#cardano-testnet
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#cardano-tracer
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#db-analyser
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#db-synthesizer
* github:IntersectMBO/cardano-node/8ac5f75342fe3fec14ee410c4c73fd5e2381bb18#db-truncater
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#bech32
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#cardano-cli
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#cardano-node
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#cardano-submit-api
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#cardano-testnet
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#cardano-tracer
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#db-analyser
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#db-synthesizer
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#db-truncater
* github:IntersectMBO/cardano-node/b0a12592c4e996b57edf5bc5b9109ecc88c2273f#snapshot-converter
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#bech32
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#cardano-cli
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#cardano-node
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#cardano-submit-api
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#cardano-testnet
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#cardano-tracer
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#db-analyser
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#db-synthesizer
* github:IntersectMBO/cardano-node/b3f237b75e64f4d8142af95b053e2828221d707f#db-truncater
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#bech32
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#cardano-cli
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#cardano-node
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#cardano-submit-api
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#cardano-testnet
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#cardano-tracer
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#db-analyser
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#db-synthesizer
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#db-truncater
* github:IntersectMBO/cardano-node/ca1ec278070baf4481564a6ba7b4a5b9e3d9f366#snapshot-converter
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#bech32
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#cardano-cli
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#cardano-node
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#cardano-submit-api
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#cardano-testnet
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#cardano-tracer
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#db-analyser
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#db-synthesizer
* github:IntersectMBO/cardano-node/cdb45dd5aa9b4cf43ef6a6c8ecd5b6afbef953e4#db-truncater
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#bech32
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#cardano-cli
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#cardano-node
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#cardano-submit-api
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#cardano-testnet
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#cardano-tracer
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#db-analyser
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#db-synthesizer
* github:IntersectMBO/cardano-node/cf78673a13e736e1f70be6087a58daef9fb15f16#db-truncater
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#bech32
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#cardano-cli
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#cardano-node
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#cardano-submit-api
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#cardano-testnet
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#cardano-tracer
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#db-analyser
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#db-synthesizer
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#db-truncater
* github:IntersectMBO/cardano-node/e252edef4dfcd28ba8987e0c1368c6db0404beac#snapshot-converter
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#bech32
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#cardano-cli
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#cardano-node
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#cardano-submit-api
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#cardano-testnet
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#cardano-tracer
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#db-analyser
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#db-synthesizer
* github:IntersectMBO/cardano-node/efd560070aaf042d1eb4680ae37fc607c7742319#db-truncater
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#bech32
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#cardano-cli
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#cardano-node
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#cardano-submit-api
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#cardano-testnet
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#cardano-tracer
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#db-analyser
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#db-synthesizer
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#db-truncater
* github:IntersectMBO/cardano-node/f5ac0eb01b56af80e8d430828ff6000b6abb92e9#snapshot-converter
* github:input-output-hk/mithril/00776eea3c04a980f7db60da88ac40a876ea4273#mithril-client-cli
* github:input-output-hk/mithril/00776eea3c04a980f7db60da88ac40a876ea4273#mithril-signer
* github:input-output-hk/mithril/0d4d6bc2ac1b2f5e7fe6e57d905bd8542e6b87b1#mithril-client-cli
* github:input-output-hk/mithril/0d4d6bc2ac1b2f5e7fe6e57d905bd8542e6b87b1#mithril-signer
* github:input-output-hk/mithril/1fb85a7f9e7706303eb656daccd881bcd309429a#mithril-client-cli
* github:input-output-hk/mithril/1fb85a7f9e7706303eb656daccd881bcd309429a#mithril-signer
* github:input-output-hk/mithril/2478748ea9771baed8181ef0938c78f79ed60760#mithril-client-cli
* github:input-output-hk/mithril/2478748ea9771baed8181ef0938c78f79ed60760#mithril-signer
* github:input-output-hk/mithril/2627f17b83be844151b254ac21b8cff6c6a97364#mithril-client-cli
* github:input-output-hk/mithril/3063c3e2ba1354a06132c859f332d3f6b77eed4d#mithril-client-cli
* github:input-output-hk/mithril/3063c3e2ba1354a06132c859f332d3f6b77eed4d#mithril-signer
* github:input-output-hk/mithril/4153c470588a701f869fc7f341e6bc36572996aa#mithril-client-cli
* github:input-output-hk/mithril/4153c470588a701f869fc7f341e6bc36572996aa#mithril-signer
* github:input-output-hk/mithril/47178ad2594a86661f33df6f59aa413bb9419c79#mithril-client-cli
* github:input-output-hk/mithril/47178ad2594a86661f33df6f59aa413bb9419c79#mithril-signer
* github:input-output-hk/mithril/52a7beb77c537b54fcb1ca171bf1b1c0c059bad8#mithril-client-cli
* github:input-output-hk/mithril/52a7beb77c537b54fcb1ca171bf1b1c0c059bad8#mithril-signer
* github:input-output-hk/mithril/567a8e8e63a449c9da70c8c3ddb09f8fab174e18#mithril-client-cli
* github:input-output-hk/mithril/567a8e8e63a449c9da70c8c3ddb09f8fab174e18#mithril-signer
* github:input-output-hk/mithril/5d5571ef3421ae3d4af567a7a06a1fc553c592b7#mithril-client-cli
* github:input-output-hk/mithril/5d5571ef3421ae3d4af567a7a06a1fc553c592b7#mithril-signer
* github:input-output-hk/mithril/67dc6e467778ceeeb0604a58bd9e76b1d9eea236#mithril-client-cli
* github:input-output-hk/mithril/67dc6e467778ceeeb0604a58bd9e76b1d9eea236#mithril-signer
* github:input-output-hk/mithril/6a7107e2e03176b8a14ff9a9e85998bfc54f0ac7#mithril-client-cli
* github:input-output-hk/mithril/6a7107e2e03176b8a14ff9a9e85998bfc54f0ac7#mithril-signer
* github:input-output-hk/mithril/7bf703389b0ba5ebade0e88449c79c75706cfbbc#mithril-client-cli
* github:input-output-hk/mithril/7bf703389b0ba5ebade0e88449c79c75706cfbbc#mithril-signer
* github:input-output-hk/mithril/9fd9ae8ff3e9c37168489fddb67c132ae67387f3#mithril-client-cli
* github:input-output-hk/mithril/9fd9ae8ff3e9c37168489fddb67c132ae67387f3#mithril-signer
* github:input-output-hk/mithril/a248dd9991729475cd73a1f531703a2283e849cd#mithril-client-cli
* github:input-output-hk/mithril/a248dd9991729475cd73a1f531703a2283e849cd#mithril-signer
* github:input-output-hk/mithril/b1a2faa1ed11a0b7d47e4d9f7813972ad91f9bff#mithril-client-cli
* github:input-output-hk/mithril/b1a2faa1ed11a0b7d47e4d9f7813972ad91f9bff#mithril-signer
* github:input-output-hk/mithril/c6c7ebafae0158b2c1672eb96f6ef832fd542f93#mithril-client-cli
* github:input-output-hk/mithril/c6c7ebafae0158b2c1672eb96f6ef832fd542f93#mithril-signer
* github:input-output-hk/mithril/f3ea8fb6e2c6ea82b1f5c4a0f8be82aa8152a255#mithril-client-cli
* github:input-output-hk/mithril/f3ea8fb6e2c6ea82b1f5c4a0f8be82aa8152a255#mithril-signer
* github:isd-project/isd/01ffd8464018d08c4e1d44dc06b4dc2edec1742b#packages.x86_64-linux.isd
* github:isd-project/isd/0e997edb593d696db7498629fdc405f20a40c64a#packages.x86_64-linux.isd
* github:isd-project/isd/2480a1b8ce7f34de44d6fd56e5a9709991ffdeec#packages.x86_64-linux.isd
* github:isd-project/isd/44bfbe79cf6fe7fda7c44d986105846540ff62c8#packages.x86_64-linux.isd
* github:isd-project/isd/4e38a373f8f07895c529ab8a768c96bc61b23108#packages.x86_64-linux.isd
* github:isd-project/isd/5191c609cb1ef7f4c858f73809c8026739aed1dc#packages.x86_64-linux.isd
* github:isd-project/isd/51d52a24ecb4fdfdee88e660c4d725667bc8fdb6#packages.x86_64-linux.isd
* github:isd-project/isd/8021a51ddb46f068dbbeb341734892242300dc50#packages.x86_64-linux.isd
* github:isd-project/isd/a4a50994d06a91a77e5331c388e61ffe34e54c66#packages.x86_64-linux.isd
* github:isd-project/isd/f9e442671299fef723c78ad45ff17e170fc0691c#packages.x86_64-linux.isd
net-rs: deterministic wFA persistent committee allocation
Pure function `allocate_persistent_seats(registry, n_pv, seed)` returning
a per-pool seat count. Stake-weighted multinomial: each of `n_pv` seats
is an independent draw from the cumulative stake distribution.

Given identical inputs (registry + seed), every node arrives at the same
committee without communication — mirroring how a real Cardano node
derives the wFA persistent committee from the ledger at epoch boundaries.

Function is currently unused; integration with the WfaLs vote path lands
in the next commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Add sanity checks for weird SnapshotPolicyArgs configurations (#1903)
As discussed in #1853, we want node operators to be warned if they
configure their node in a way that is likely to be broken i.e. if they
disable the snapshot rate limiting, or set the number of on-disk
snapshots to 0, or set a snapshot interval that isn't a clean divisor of
the epoch length (which is required for Mithril). This PR implements
sanity checks similar to the existing ones for the `SnapshotPolicyArgs`
and traces warnings to the user if these guidelines are ignored.
Track haddock dead-link CI failures in a rolling issue
When the haddock-links check fails on master, open (or comment on)
a single tracking issue identified by the marker label
'haddock-ci-failure', @-mentioning the breaker — sourced from the
master commit's associated PR via
listPullRequestsAssociatedWithCommit, which handles squash merges.

The issue body documents the fix recipe (add the package's doc base
URL to IOG_DOC_BASES, or add the package to KNOWN_UNDOCUMENTED).
Each failure appends a comment with the run URL so the audit trail
of consecutive breakages is visible in one place.

Add an id to the haddock-links step so the new tag-breaker step can
gate on its specific outcome (failure() && steps.<id>.outcome ==
'failure'), avoiding spurious issue creation on unrelated failures
(cabal build, nix shell, network glitch in haddock-project, etc.).