Home / Input Output / ouroboros-leios
May 20, 10-11 AM (2)
May 20, 11-12 PM (0)
May 20, 12-1 PM (0)
May 20, 1-2 PM (4)
May 20, 2-3 PM (0)
May 20, 3-4 PM (88)
May 20, 4-5 PM (6)
May 20, 5-6 PM (0)
May 20, 6-7 PM (0)
May 20, 7-8 PM (0)
May 20, 8-9 PM (0)
May 20, 9-10 PM (1)
May 20, 10-11 PM (0)
May 20, 11-12 AM (0)
May 21, 12-1 AM (0)
May 21, 1-2 AM (0)
May 21, 2-3 AM (0)
May 21, 3-4 AM (0)
May 21, 4-5 AM (0)
May 21, 5-6 AM (0)
May 21, 6-7 AM (0)
May 21, 7-8 AM (0)
May 21, 8-9 AM (0)
May 21, 9-10 AM (0)
May 21, 10-11 AM (4)
May 21, 11-12 PM (1)
May 21, 12-1 PM (5)
May 21, 1-2 PM (0)
May 21, 2-3 PM (0)
May 21, 3-4 PM (0)
May 21, 4-5 PM (4)
May 21, 5-6 PM (0)
May 21, 6-7 PM (0)
May 21, 7-8 PM (0)
May 21, 8-9 PM (0)
May 21, 9-10 PM (1)
May 21, 10-11 PM (0)
May 21, 11-12 AM (0)
May 22, 12-1 AM (0)
May 22, 1-2 AM (0)
May 22, 2-3 AM (0)
May 22, 3-4 AM (0)
May 22, 4-5 AM (1)
May 22, 5-6 AM (1)
May 22, 6-7 AM (1)
May 22, 7-8 AM (0)
May 22, 8-9 AM (1)
May 22, 9-10 AM (1)
May 22, 10-11 AM (0)
May 22, 11-12 PM (0)
May 22, 12-1 PM (0)
May 22, 1-2 PM (0)
May 22, 2-3 PM (2)
May 22, 3-4 PM (0)
May 22, 4-5 PM (0)
May 22, 5-6 PM (0)
May 22, 6-7 PM (0)
May 22, 7-8 PM (1)
May 22, 8-9 PM (3)
May 22, 9-10 PM (4)
May 22, 10-11 PM (4)
May 22, 11-12 AM (0)
May 23, 12-1 AM (0)
May 23, 1-2 AM (0)
May 23, 2-3 AM (0)
May 23, 3-4 AM (0)
May 23, 4-5 AM (0)
May 23, 5-6 AM (0)
May 23, 6-7 AM (1)
May 23, 7-8 AM (0)
May 23, 8-9 AM (0)
May 23, 9-10 AM (0)
May 23, 10-11 AM (0)
May 23, 11-12 PM (0)
May 23, 12-1 PM (0)
May 23, 1-2 PM (0)
May 23, 2-3 PM (0)
May 23, 3-4 PM (0)
May 23, 4-5 PM (0)
May 23, 5-6 PM (0)
May 23, 6-7 PM (0)
May 23, 7-8 PM (0)
May 23, 8-9 PM (0)
May 23, 9-10 PM (0)
May 23, 10-11 PM (0)
May 23, 11-12 AM (0)
May 24, 12-1 AM (0)
May 24, 1-2 AM (0)
May 24, 2-3 AM (0)
May 24, 3-4 AM (0)
May 24, 4-5 AM (0)
May 24, 5-6 AM (0)
May 24, 6-7 AM (0)
May 24, 7-8 AM (0)
May 24, 8-9 AM (0)
May 24, 9-10 AM (0)
May 24, 10-11 AM (0)
May 24, 11-12 PM (0)
May 24, 12-1 PM (0)
May 24, 1-2 PM (0)
May 24, 2-3 PM (0)
May 24, 3-4 PM (0)
May 24, 4-5 PM (0)
May 24, 5-6 PM (0)
May 24, 6-7 PM (0)
May 24, 7-8 PM (2)
May 24, 8-9 PM (0)
May 24, 9-10 PM (0)
May 24, 10-11 PM (0)
May 24, 11-12 AM (1)
May 25, 12-1 AM (0)
May 25, 1-2 AM (0)
May 25, 2-3 AM (0)
May 25, 3-4 AM (0)
May 25, 4-5 AM (0)
May 25, 5-6 AM (12)
May 25, 6-7 AM (0)
May 25, 7-8 AM (0)
May 25, 8-9 AM (0)
May 25, 9-10 AM (0)
May 25, 10-11 AM (0)
May 25, 11-12 PM (1)
May 25, 12-1 PM (0)
May 25, 1-2 PM (2)
May 25, 2-3 PM (2)
May 25, 3-4 PM (1)
May 25, 4-5 PM (0)
May 25, 5-6 PM (1)
May 25, 6-7 PM (1)
May 25, 7-8 PM (0)
May 25, 8-9 PM (1)
May 25, 9-10 PM (0)
May 25, 10-11 PM (0)
May 25, 11-12 AM (0)
May 26, 12-1 AM (0)
May 26, 1-2 AM (0)
May 26, 2-3 AM (1)
May 26, 3-4 AM (0)
May 26, 4-5 AM (1)
May 26, 5-6 AM (0)
May 26, 6-7 AM (0)
May 26, 7-8 AM (0)
May 26, 8-9 AM (0)
May 26, 9-10 AM (0)
May 26, 10-11 AM (10)
May 26, 11-12 PM (19)
May 26, 12-1 PM (2)
May 26, 1-2 PM (0)
May 26, 2-3 PM (0)
May 26, 3-4 PM (0)
May 26, 4-5 PM (0)
May 26, 5-6 PM (0)
May 26, 6-7 PM (0)
May 26, 7-8 PM (0)
May 26, 8-9 PM (0)
May 26, 9-10 PM (0)
May 26, 10-11 PM (0)
May 26, 11-12 AM (0)
May 27, 12-1 AM (0)
May 27, 1-2 AM (0)
May 27, 2-3 AM (1)
May 27, 3-4 AM (1)
May 27, 4-5 AM (2)
May 27, 5-6 AM (0)
May 27, 6-7 AM (27)
May 27, 7-8 AM (0)
May 27, 8-9 AM (2)
May 27, 9-10 AM (0)
May 27, 10-11 AM (0)
226 commits this week May 20, 2026 - May 27, 2026
net-core: enforce per-message size limits at codec decode time
Two distinct size guards on the receive path are now correctly
layered:

1. **Demuxer buffer cap** (DoS protection): fixed at protocol
   registration via `ProtocolConfig::ingress_limit`, never narrowed
   at runtime.  Sized to bound runaway accumulation when a protocol
   consumer falls behind.

2. **Codec per-message cap** (protocol conformance): `Runner::recv`
   passes `P::size_limit(state)` to `CodecRecv::recv`; after a
   CBOR value decodes, the consumed-bytes count is checked against
   the per-state spec limit and `MuxError::MessageTooLarge` is
   returned (and the connection torn down) for spec-violating peers.

The previous design conflated these — `Runner` overrode the demuxer's
buffer cap with the current state's per-message cap on every
transition, so a fast peer pipelining `MsgStartBatch` + `MsgBlock`
into one TCP read could legitimately overflow before the local
runner advanced the state.  Reverts `BlockFetch::size_limit` to spec
(`SIZE_LIMIT_SMALL` for StIdle/StBusy, `SIZE_LIMIT_STREAMING` for
StStreaming); the values are now actually enforced at decode time
rather than misused as buffer caps.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Update Loki RBGenerated parser for cardano-node tracing v2
The legacy tracer emitted TraceForgedBlock with a nested `forgedBlock`
wrapper at the top of the log line. After the prototype rebase against
the current cardano-node the tracer is exposed under tracing v2 as
`ns=Forge.Loop.ForgedBlock`, with the inner data flattened. Verified
against the proto-devnet Loki stream:

  {"block":"8ee35205...","blockNo":25,"blockPrev":"625d1f62...",
   "kind":"TraceForgedBlock","slot":753}

Switch the discriminator to the `ns` stream label and read the flat
`block` / `slot` fields. The Loki query (which matches on
"TraceForgedBlock") still matches the inner data, so the existing
subscription is unchanged.

size_bytes is no longer in this event — left as 0 with a TODO to
correlate against Forge.Loop.AdoptedBlock (which carries `blockSize`).