WIP implementing PerasVotingCommittee opaque adapter
May 14, 1-2 PM (151)
May 14, 2-3 PM (32)
May 14, 3-4 PM (17)
May 14, 4-5 PM (14)
May 14, 5-6 PM (38)
May 14, 6-7 PM (12)
May 14, 7-8 PM (22)
May 14, 8-9 PM (37)
May 14, 9-10 PM (35)
May 14, 10-11 PM (27)
May 14, 11-12 AM (14)
May 15, 12-1 AM (18)
May 15, 1-2 AM (15)
May 15, 2-3 AM (5)
May 15, 3-4 AM (3)
May 15, 4-5 AM (13)
May 15, 5-6 AM (14)
May 15, 6-7 AM (10)
May 15, 7-8 AM (31)
May 15, 8-9 AM (23)
May 15, 9-10 AM (52)
May 15, 10-11 AM (71)
May 15, 11-12 PM (70)
May 15, 12-1 PM (73)
May 15, 1-2 PM (73)
May 15, 2-3 PM (66)
May 15, 3-4 PM (26)
May 15, 4-5 PM (13)
May 15, 5-6 PM (30)
May 15, 6-7 PM (29)
May 15, 7-8 PM (25)
May 15, 8-9 PM (8)
May 15, 9-10 PM (34)
May 15, 10-11 PM (34)
May 15, 11-12 AM (25)
May 16, 12-1 AM (2)
May 16, 1-2 AM (2)
May 16, 2-3 AM (3)
May 16, 3-4 AM (3)
May 16, 4-5 AM (0)
May 16, 5-6 AM (6)
May 16, 6-7 AM (2)
May 16, 7-8 AM (10)
May 16, 8-9 AM (1)
May 16, 9-10 AM (2)
May 16, 10-11 AM (1)
May 16, 11-12 PM (13)
May 16, 12-1 PM (11)
May 16, 1-2 PM (8)
May 16, 2-3 PM (15)
May 16, 3-4 PM (10)
May 16, 4-5 PM (2)
May 16, 5-6 PM (2)
May 16, 6-7 PM (2)
May 16, 7-8 PM (10)
May 16, 8-9 PM (6)
May 16, 9-10 PM (9)
May 16, 10-11 PM (29)
May 16, 11-12 AM (42)
May 17, 12-1 AM (9)
May 17, 1-2 AM (1)
May 17, 2-3 AM (0)
May 17, 3-4 AM (1)
May 17, 4-5 AM (0)
May 17, 5-6 AM (3)
May 17, 6-7 AM (2)
May 17, 7-8 AM (1)
May 17, 8-9 AM (1)
May 17, 9-10 AM (1)
May 17, 10-11 AM (6)
May 17, 11-12 PM (6)
May 17, 12-1 PM (4)
May 17, 1-2 PM (5)
May 17, 2-3 PM (9)
May 17, 3-4 PM (4)
May 17, 4-5 PM (8)
May 17, 5-6 PM (14)
May 17, 6-7 PM (10)
May 17, 7-8 PM (2)
May 17, 8-9 PM (4)
May 17, 9-10 PM (2)
May 17, 10-11 PM (20)
May 17, 11-12 AM (13)
May 18, 12-1 AM (10)
May 18, 1-2 AM (4)
May 18, 2-3 AM (5)
May 18, 3-4 AM (9)
May 18, 4-5 AM (14)
May 18, 5-6 AM (2)
May 18, 6-7 AM (37)
May 18, 7-8 AM (28)
May 18, 8-9 AM (35)
May 18, 9-10 AM (41)
May 18, 10-11 AM (43)
May 18, 11-12 PM (29)
May 18, 12-1 PM (136)
May 18, 1-2 PM (34)
May 18, 2-3 PM (89)
May 18, 3-4 PM (33)
May 18, 4-5 PM (45)
May 18, 5-6 PM (21)
May 18, 6-7 PM (16)
May 18, 7-8 PM (13)
May 18, 8-9 PM (23)
May 18, 9-10 PM (4)
May 18, 10-11 PM (25)
May 18, 11-12 AM (12)
May 19, 12-1 AM (7)
May 19, 1-2 AM (2)
May 19, 2-3 AM (9)
May 19, 3-4 AM (5)
May 19, 4-5 AM (10)
May 19, 5-6 AM (3)
May 19, 6-7 AM (53)
May 19, 7-8 AM (23)
May 19, 8-9 AM (46)
May 19, 9-10 AM (66)
May 19, 10-11 AM (30)
May 19, 11-12 PM (48)
May 19, 12-1 PM (81)
May 19, 1-2 PM (71)
May 19, 2-3 PM (41)
May 19, 3-4 PM (51)
May 19, 4-5 PM (15)
May 19, 5-6 PM (20)
May 19, 6-7 PM (18)
May 19, 7-8 PM (9)
May 19, 8-9 PM (21)
May 19, 9-10 PM (10)
May 19, 10-11 PM (28)
May 19, 11-12 AM (13)
May 20, 12-1 AM (21)
May 20, 1-2 AM (9)
May 20, 2-3 AM (4)
May 20, 3-4 AM (5)
May 20, 4-5 AM (9)
May 20, 5-6 AM (37)
May 20, 6-7 AM (47)
May 20, 7-8 AM (53)
May 20, 8-9 AM (50)
May 20, 9-10 AM (16)
May 20, 10-11 AM (41)
May 20, 11-12 PM (28)
May 20, 12-1 PM (50)
May 20, 1-2 PM (92)
May 20, 2-3 PM (20)
May 20, 3-4 PM (326)
May 20, 4-5 PM (23)
May 20, 5-6 PM (23)
May 20, 6-7 PM (17)
May 20, 7-8 PM (23)
May 20, 8-9 PM (15)
May 20, 9-10 PM (5)
May 20, 10-11 PM (34)
May 20, 11-12 AM (16)
May 21, 12-1 AM (14)
May 21, 1-2 AM (8)
May 21, 2-3 AM (10)
May 21, 3-4 AM (7)
May 21, 4-5 AM (4)
May 21, 5-6 AM (26)
May 21, 6-7 AM (14)
May 21, 7-8 AM (22)
May 21, 8-9 AM (31)
May 21, 9-10 AM (42)
May 21, 10-11 AM (33)
May 21, 11-12 PM (23)
May 21, 12-1 PM (53)
May 21, 1-2 PM (7)
4,055 commits this week
May 14, 2026
-
May 21, 2026
Added changelog fragments
mux-test: mux close (IO)
network-mux: delta-q code formatting
framework-test-lib: added a label, formatting
network-mux: fail on mini-protocol startup if the state is `Failed`
Replace UTxO hash verification with BLS accumulator commitment
Remove utxoHash/alphaUTxOHash/omegaUTxOHash from ClosedDatum, all Close/Contest redeemers, and the snapshot signing tuple. The BLS accumulator already commits to the full UTxO set (utxo ∪ alpha ∪ omega), making the three separate SHA256 hashes redundant. Full fanout now verifies outputs via a KZG membership proof (same as partial fanout) rather than hash comparison. The Fanout redeemer gains proof and crsRef fields; the three output-count fields are dropped. Snapshot signing shrinks from a 7-tuple to a 4-tuple (headId, version, snapshotNumber, accumulatorHash). Signed-off-by: Sasha Bogicevic <[email protected]>
Make the haskell simulation buildable
net-rs: wire tcp-congestion-control param to TcpConnection
Previously use_tcp was hardcoded to false on every LinkConfiguration. Now RawParameters::tcp_congestion_control (default true) is propagated to all links during SimConfiguration::build, so users can disable the TCP congestion-window model via yaml with `tcp-congestion-control: false`. Update config.schema.json to reflect Rust support and add default: true. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
net-rs: implement TcpConnection (Chan.TCP port)
Port the Haskell `Chan/TCP.hs` channel abstraction to Rust. `TcpConnection<TMessage>` models one direction of a full-duplex TCP link using `forecast_tcp_msg_send` for timing. Key design decisions: - Backpressure via `send_cursor`: the effective send time is `max(now, send_cursor)`, so overlapping sends queue behind their predecessor — the same role the one-slot `TMVar` plays in Haskell. - Idle reset (RFC 6298 RTO): when the link has been quiet for longer than `max(1 s, RTT)` and all in-flight ACKs have returned, the congestion window is reset to the initial value. - Messages are queued with arrival time = `recv_trailing_edge` (the receiver needs the complete message, not just the leading edge). Integration: - `ConnectionKind<TP, TM>` enum wraps both `Connection` (bandwidth- sharing) and `TcpConnection` with a uniform interface so the rest of the network layer is unchanged. - `LinkConfiguration` and `EdgeConfig` gain a `use_tcp: bool` flag (default `false`); both the actor and sequential engines route through `ConnectionKind::from_config`. - `TcpState::all_acks_arrived` added to support the idle-reset check. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
net-rs: add TCP congestion-window model
Port the Haskell `ModelTCP` module to Rust as `sim-core/src/tcp.rs`.
The model forecasts send timing for a stream of messages over a single
TCP connection, accounting for serialisation delay, one-way propagation
latency, and the congestion window (slow-start through to steady state).
Key design points:
- `forecast_tcp_msg_send` is a pure function: takes props + state + now
+ message size, returns the overall forecast, per-fragment forecasts,
and the updated state. No IO, easy to test.
- ACKs are anchored to the *receive leading edge* ("strategic cheat"):
approximates per-segment ACK pipelining without modelling individual
segments, preventing the model from understating throughput.
- `merge_adjacent_fragments` collapses contiguous window-fill chunks so
the fragment count stays bounded across long sends.
- Six unit tests cover: small message timing, per-fragment invariants,
large-message fragmentation, fragment merging, and the trace helper.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
chore: upgrade crate versions
* mithril-aggregator from `0.8.52` to `0.8.53` * mithril-client-cli from `0.13.11` to `0.13.12` * mithril-client-wasm from `0.10.4` to `0.10.5` * mithril-client from `0.14.9` to `0.14.10` * mithril-signer from `1.0.2` to `1.0.3` * mithril-stm from `0.10.22` to `0.10.23` * mithril-end-to-end from `0.4.134` to `0.4.135` * [js] mithril-client-wasm from `0.10.4` to `0.10.5` * mithril-test-lab/mithril-devnet/VERSION from `0.4.33` to `0.4.34`
fix(client-cli): build fails with 'future_snark'
feat(client-wasm): support for SNARK
fix(e2e): apply review comments
feat(devnet): support custom signed entity types
feat(devnet): support SNARK proofs
feat(devnet): support custom build feature flags for Mithril nodes
feat(e2e): use different sets of parameters for Concatenation and SNARK
Merge pull request #3281 from input-output-hk/jpraynaud/snark-verifier-setup
feat(stm): implement `SnarkVerifierSetup` in helpers
fix(sqlite): Run SQLite planner stats before API-mode backfill (#2367)
* feat(sqlite): Made changes to run planner stats before API backfill and added ANALYZE maintenance after Mithril import and on backfill resume. Signed-off-by: Akhil Repala <[email protected]> * feat(sqlite): Removed the stop and re-enable of PRAGMA change. I kept it simple for running of sqlite planner stats before api backfill after utxo import Signed-off-by: Akhil Repala <[email protected]> --------- Signed-off-by: Akhil Repala <[email protected]>
feat(prometheus): Add Diagnostics view (default secondary view; gates peer scans) (#453)
* feat(prometheus): Made changes to add diagnostics secondary view Signed-off-by: Akhil Repala <[email protected]> * feat(prometheus): Fixed the lint errors Signed-off-by: Akhil Repala <[email protected]> * feat(prometheus): Fixed the bottom line info log printing as stderr while TUI was running Signed-off-by: Akhil Repala <[email protected]> * feat(prometheus): Addressed most of the bot comments in peers and newly added metrics as well Signed-off-by: Akhil Repala <[email protected]> * feat(prometheus): Fixed the lint error Signed-off-by: Akhil Repala <[email protected]> --------- Signed-off-by: Akhil Repala <[email protected]>
Update to contra-tracer 0.2.1
fix(mithril): idle-stall detection and retry/resume support
Signed-off-by: Chris Gianelloni <[email protected]>
Add ToJSON/FromJSON instances for EraTxOut
* Add FromJSON (TxOut era) as EraTxOut superclass constraint * Add FromJSON t as Val t superclass constraint * Add ToJSON/FromJSON for Datum era * Add FromJSON for ShelleyTxOut, AlonzoTxOut, BabbageTxOut * Add FromJSON for MaryValue; fix FromJSON/FromJSONKey for AssetName to hex-decode * Add round-trip JSON property test for TxOut era