Add geojson file to the Nix store (nix build .#geojson)
Home /
Input Output /
ouroboros-leios
Mar 24, 8-9 AM (1)
Mar 24, 9-10 AM (4)
Mar 24, 10-11 AM (1)
Mar 24, 11-12 PM (2)
Mar 24, 12-1 PM (2)
Mar 24, 1-2 PM (3)
Mar 24, 2-3 PM (1)
Mar 24, 3-4 PM (1)
Mar 24, 4-5 PM (5)
Mar 24, 5-6 PM (0)
Mar 24, 6-7 PM (0)
Mar 24, 7-8 PM (0)
Mar 24, 8-9 PM (0)
Mar 24, 9-10 PM (0)
Mar 24, 10-11 PM (0)
Mar 24, 11-12 AM (0)
Mar 25, 12-1 AM (0)
Mar 25, 1-2 AM (0)
Mar 25, 2-3 AM (0)
Mar 25, 3-4 AM (0)
Mar 25, 4-5 AM (0)
Mar 25, 5-6 AM (0)
Mar 25, 6-7 AM (0)
Mar 25, 7-8 AM (1)
Mar 25, 8-9 AM (0)
Mar 25, 9-10 AM (1)
Mar 25, 10-11 AM (1)
Mar 25, 11-12 PM (3)
Mar 25, 12-1 PM (16)
Mar 25, 1-2 PM (0)
Mar 25, 2-3 PM (1)
Mar 25, 3-4 PM (0)
Mar 25, 4-5 PM (0)
Mar 25, 5-6 PM (0)
Mar 25, 6-7 PM (0)
Mar 25, 7-8 PM (0)
Mar 25, 8-9 PM (0)
Mar 25, 9-10 PM (0)
Mar 25, 10-11 PM (0)
Mar 25, 11-12 AM (0)
Mar 26, 12-1 AM (0)
Mar 26, 1-2 AM (0)
Mar 26, 2-3 AM (0)
Mar 26, 3-4 AM (0)
Mar 26, 4-5 AM (0)
Mar 26, 5-6 AM (0)
Mar 26, 6-7 AM (0)
Mar 26, 7-8 AM (0)
Mar 26, 8-9 AM (1)
Mar 26, 9-10 AM (0)
Mar 26, 10-11 AM (1)
Mar 26, 11-12 PM (3)
Mar 26, 12-1 PM (0)
Mar 26, 1-2 PM (0)
Mar 26, 2-3 PM (2)
Mar 26, 3-4 PM (0)
Mar 26, 4-5 PM (1)
Mar 26, 5-6 PM (1)
Mar 26, 6-7 PM (0)
Mar 26, 7-8 PM (0)
Mar 26, 8-9 PM (0)
Mar 26, 9-10 PM (0)
Mar 26, 10-11 PM (0)
Mar 26, 11-12 AM (0)
Mar 27, 12-1 AM (0)
Mar 27, 1-2 AM (0)
Mar 27, 2-3 AM (0)
Mar 27, 3-4 AM (0)
Mar 27, 4-5 AM (0)
Mar 27, 5-6 AM (0)
Mar 27, 6-7 AM (0)
Mar 27, 7-8 AM (0)
Mar 27, 8-9 AM (0)
Mar 27, 9-10 AM (1)
Mar 27, 10-11 AM (0)
Mar 27, 11-12 PM (0)
Mar 27, 12-1 PM (0)
Mar 27, 1-2 PM (0)
Mar 27, 2-3 PM (0)
Mar 27, 3-4 PM (1)
Mar 27, 4-5 PM (0)
Mar 27, 5-6 PM (0)
Mar 27, 6-7 PM (0)
Mar 27, 7-8 PM (0)
Mar 27, 8-9 PM (0)
Mar 27, 9-10 PM (0)
Mar 27, 10-11 PM (0)
Mar 27, 11-12 AM (0)
Mar 28, 12-1 AM (0)
Mar 28, 1-2 AM (0)
Mar 28, 2-3 AM (0)
Mar 28, 3-4 AM (0)
Mar 28, 4-5 AM (0)
Mar 28, 5-6 AM (0)
Mar 28, 6-7 AM (0)
Mar 28, 7-8 AM (0)
Mar 28, 8-9 AM (0)
Mar 28, 9-10 AM (0)
Mar 28, 10-11 AM (0)
Mar 28, 11-12 PM (0)
Mar 28, 12-1 PM (0)
Mar 28, 1-2 PM (0)
Mar 28, 2-3 PM (0)
Mar 28, 3-4 PM (0)
Mar 28, 4-5 PM (0)
Mar 28, 5-6 PM (0)
Mar 28, 6-7 PM (0)
Mar 28, 7-8 PM (0)
Mar 28, 8-9 PM (0)
Mar 28, 9-10 PM (0)
Mar 28, 10-11 PM (0)
Mar 28, 11-12 AM (0)
Mar 29, 12-1 AM (0)
Mar 29, 1-2 AM (0)
Mar 29, 2-3 AM (0)
Mar 29, 3-4 AM (0)
Mar 29, 4-5 AM (0)
Mar 29, 5-6 AM (0)
Mar 29, 6-7 AM (0)
Mar 29, 7-8 AM (0)
Mar 29, 8-9 AM (0)
Mar 29, 9-10 AM (0)
Mar 29, 10-11 AM (0)
Mar 29, 11-12 PM (0)
Mar 29, 12-1 PM (0)
Mar 29, 1-2 PM (0)
Mar 29, 2-3 PM (0)
Mar 29, 3-4 PM (0)
Mar 29, 4-5 PM (0)
Mar 29, 5-6 PM (0)
Mar 29, 6-7 PM (0)
Mar 29, 7-8 PM (0)
Mar 29, 8-9 PM (0)
Mar 29, 9-10 PM (0)
Mar 29, 10-11 PM (0)
Mar 29, 11-12 AM (0)
Mar 30, 12-1 AM (0)
Mar 30, 1-2 AM (0)
Mar 30, 2-3 AM (0)
Mar 30, 3-4 AM (0)
Mar 30, 4-5 AM (0)
Mar 30, 5-6 AM (0)
Mar 30, 6-7 AM (0)
Mar 30, 7-8 AM (0)
Mar 30, 8-9 AM (2)
Mar 30, 9-10 AM (1)
Mar 30, 10-11 AM (1)
Mar 30, 11-12 PM (0)
Mar 30, 12-1 PM (0)
Mar 30, 1-2 PM (0)
Mar 30, 2-3 PM (0)
Mar 30, 3-4 PM (0)
Mar 30, 4-5 PM (0)
Mar 30, 5-6 PM (0)
Mar 30, 6-7 PM (0)
Mar 30, 7-8 PM (0)
Mar 30, 8-9 PM (0)
Mar 30, 9-10 PM (0)
Mar 30, 10-11 PM (0)
Mar 30, 11-12 AM (0)
Mar 31, 12-1 AM (0)
Mar 31, 1-2 AM (0)
Mar 31, 2-3 AM (0)
Mar 31, 3-4 AM (0)
Mar 31, 4-5 AM (0)
Mar 31, 5-6 AM (0)
Mar 31, 6-7 AM (0)
Mar 31, 7-8 AM (1)
Mar 31, 8-9 AM (0)
59 commits this week
Mar 24, 2026
-
Mar 31, 2026
net-rs: add sample configs, document net-node in CLAUDE.md and README
Sample configs in net-node/configs/: - mainnet.toml: base config (mainnet magic, Leios enabled, production params, validation timing) - node0.toml: producer with 500/1000 stake, tx generation, file+log telemetry, peers to node1 - node1.toml: producer with 500/1000 stake, 50ms simulated delay on peer, file+log telemetry CLAUDE.md: add net-node testing section with usage examples, add net-node to workspace structure with module descriptions. README.md: add test node feature summary, add net-node to workspace structure, add test node usage section with two-node example, config layering explanation, and telemetry output format. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: net-node Stage 3 — consensus and validation
Add longest-chain consensus and configurable fake validation: - consensus.rs: tracks local_tip, fetches blocks for longer chains, skips self-produced blocks, deduplicates in-flight fetches, handles rollbacks. 4 unit tests. - validation.rs: spawns background sleep tasks (constant + per_byte ms), sends completion on mpsc channel. 2 unit tests. - config.rs: ValidationConfig (rb_head_ms, rb_body_ms_constant/per_byte, tx_validation_ms/per_byte) - main.rs: consensus handles TipAdvanced/BlockReceived/RolledBack events, validation_rx arm in select loop Fix coordinator bug: PeerEvent::BlockFetched now carries the original fetch range (from, to) so the coordinator uses the authoritative point instead of falling back to Point::Origin when body.point() fails on opaque/fake blocks. This fixes pending_fetches cleanup, fragment pruning, and NetworkEvent::BlockReceived point accuracy. 317 tests (293 net-core + 24 net-node), 0 clippy warnings. Marks Stage 3 complete in test-node-plan.md. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: net-node Stage 2 — block production and tx injection
Add VRF-based block production (lottery ported from sim-rs) and Poisson transaction generation to the test node: - production.rs: stake-weighted VRF lottery, fake block building, deterministic seeding - mempool.rs: background Poisson tx generator, random body sizes - config.rs: ProductionConfig (stake, total_stake, rb_probability) and TxConfig (tx_rate, size range) - main.rs: slot tick triggers try_produce_block, spawns tx generator 18 tests, 0 clippy warnings. Live-tested: producer (full stake, 200ms slots) generates blocks seen by follower via ChainSync; txs broadcast at configured rate. Marks Stages 1 and 2 complete in test-node-plan.md. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: add net-node crate (Stage 1) and test-node-plan
New net-node binary crate implementing Stage 1 of the test node plan: - TOML config with figment layering (repeatable --config, --set overrides) - Slot clock aligned to wall-clock with configurable slot duration - Coordinator wrapper (duplex mode, auto peer addition) - Main event loop: slot ticks + network events + graceful shutdown - 10 unit tests, 0 clippy warnings Also adds the full test-node-plan.md with 5-stage implementation plan covering production, consensus, validation, Leios, and telemetry. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Added mempool, updated simulations
net-rs: extract LeiosTracker from coordinator for habitability
Move Leios dedup, offer tracking, and fetch routing (500 lines, 11 fields) into a self-contained leios_tracker module. Coordinator delegates via a narrow interface, dropping from 2288 to 1788 lines. Tracker has its own synchronous unit tests; 293 total tests pass. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: Completeness review from ChatGPT
Comparison to Praos spec, noting work still to do. Major items: - Peer management (promote/demote/churn) - Pipelining Both are known and will be next up following a coordinator refactor
Using mixture distribution rather then probabilistic choice for fetching transactions with TxCache
net-rs: update risk register #9/#10 commit hashes
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: concurrent accept loop with admission control (risk register #9)
Decouple TCP accept from handshake so one slow peer no longer blocks all inbound connections. Each handshake now runs as an independent tokio task, gated by a semaphore (--max-handshaking, default 64) and a per-IP connection cap (--max-connections-per-ip, default 3). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Review feedback: Explaining happy-path
Review feedback: Probabilities rather than absolut numbers in the table
Cleanup network namespaces in demo/burst setup
Move chatgpt-risk-register.md to the right place
Review feedback: Explaining happy-path
net-rs: add priority scheduling (Phase 4f)
Switch mux from RoundRobin to StrictPriority scheduler so Praos protocols always outprioritize Leios, preventing head-of-line blocking. Add named priority constants, fix KeepAlive/PeerSharing/Leios priority assignments, consolidate deferred items into Future Work section. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: move codec.rs to mux/ and protocol.rs to protocols/
codec.rs wraps mux channels with CBOR framing — belongs in mux/.
protocol.rs defines the protocol state machine framework — belongs
in protocols/. Re-export from parent modules so imports become
crate::mux::{CodecSend,CodecRecv} and crate::protocols::{Protocol,
Runner,Agency,Role,ProtocolError}. Update all ~40 import sites.
238 tests pass.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: add Leios per-peer task integration (Phase 4d)
Wire LeiosNotify (ID 18) and LeiosFetch (ID 19) into the per-peer task architecture behind a `leios_enabled` config flag (default false). - LeiosStore: content-addressed blob store for EBs/votes (separate from ChainStore since Leios data is keyed by (slot, hash), not a linear chain) - Client tasks: spawn_leios_notify (continuous request_next loop), spawn_leios_fetch (command-driven, like BlockFetch) - Server handlers: serve_leios_notify (from LeiosStore + subscribe), serve_leios_fetch (block/txs/vote lookups) - Types: 6 PeerEvent, 2 PeerCommand, 5 NetworkEvent, 3 NetworkCommand variants - Coordinator: stub-forwards Leios events, populates LeiosStore on fetch - Wiring: peer_task, responder_task, duplex_task all conditionally register and spawn Leios protocol sub-tasks - CLI: --leios flag on serve (synthetic EB/vote generation) and multi-follow (logs Leios notifications) for local end-to-end testing 247 total tests (9 new). Locally tested: serve --leios -> multi-follow --leios. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: update CLAUDE.md and implementation plan for Phase 3 protocol completion
All 6 N2N mini-protocols now implemented (147 tests). Multi-peer coordination layer remains TBD for Phase 3. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: update docs to reflect Phase 4a-4c and refactoring
Update workspace structure (types/ module, mux/codec.rs, protocols/ protocol.rs, leios_notify/, leios_fetch/). Update header/block design decision from opaque to parsed. Mark Phase 4a-4c as complete. Fix file paths and test counts in implementation plan. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: add TxSubmission protocol (Phase 3, step 1)
Implement the TxSubmission mini-protocol (protocol ID 4, version 2) — pull-based transaction dissemination with blocking/non-blocking modes, flow control, and full CBOR codec with indefinite-length inner lists. Includes client-side run_client helper, server handler in fake server, and CLI 'submit' command with single-tx and Poisson stream modes. 20 new tests (129 total), live-tested against fake server. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: document multi-peer coordinator design decision
Choose thread-per-peer with shared coordinator over Pallas v2 event-driven (single-threaded bottleneck) and Haskell actor model (over-engineered for ~20 peers). Document PeerHandle sketch, peer-agnostic consensus interface, and ordering rationale (multi-peer before Leios protocols). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
net-rs: document Phase 4 Leios protocol implementation plan
Sub-phases 4a-4f: LeiosNotify/LeiosFetch protocols, Praos header/body extensions, per-peer task integration, coordinator/ChainStore extensions, and priority scheduling. Working assumptions: protocol IDs 18/19, opaque types, two protocols initially, freshest-first deferred. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>