NOT MERGE: Leios prototype remake#5370
Merged
Merged
Conversation
The governor will not demote an established peer if we are above the target but demotions are in progress.
…positive-test-failure peer selection: fixed a false positive tests failure
GHA: fix haddock action
Net-Sim tracer improvements
dmq-node: signature validation
If the number of established peers replaced is lower than the number of active peers replaced the set of established peers risk becoming a graveyard of already tried peers. This change enforces a min number of changed established and known peers based on the number of replaced active and established peers.
Enforce a min churn
Bump dependency upper bounds
Add support for nothunks == 0.3.*
It is not used, without we don't need genesis file in the configuration.
…ution-config dmq-node: removed KES evolution config
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…actions/checkout-6 build(deps): bump actions/checkout from 5 to 6
Fix ToJSON instance for DiffusionMode
Make sure that we can reliably decode mux headers even if the span multiple tcp segments.
This ensures that cache is populated for feature branches.
This fixes a bug in network-mux, where trailing bytes are assembled out of order. This bug is not executable on cardano, since there for any mini-protocol the initiator side sends the initial message. It only affects the process of restarting a mini-protocol on an established connection. The commit includes a test which exhibits this behaviour in an artificial way.
docs: fixed broken link
4 tasks
f034838 to
23915a2
Compare
1cc6149 to
fda0623
Compare
4f2c9ea to
589fba6
Compare
The 1.1.0.0 release of 'ouroboros-network' and the 1.0.0.0 release of 'cardano-diffusion' both pin 'trace-dispatcher ^>=2.11.0', but cardano-node 11.0.1 pulls in trace-dispatcher 2.12.x. Bump the bounds in both cabal files so the rebased Leios fork builds against the trace-dispatcher version shipped with cardano-node 11.0.1. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace the `dataSize :: bytes -> Word` field of `ProtocolSizeLimits`
with a `BearerBytes` class:
class BearerBytes bytes where
bearerBytesSize :: bytes -> Word
Default instances cover `BS.ByteString`, `BL.ByteString`, `[Char]` and
`AnyMessage msg` (for tests). Driver/Limits gains a `BearerBytes bytes`
constraint on the public entry points (`runPeerWithLimits` and friends).
The seven `byteLimits*` codec helpers no longer take a
`(bytes -> Word)` argument — call sites drop the `(fromIntegral .
LBS.length)` boilerplate. Two test predicates that previously used
`dataSize` now call `bearerBytesSize` directly.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
589fba6 to
df1d942
Compare
df1d942 to
9822966
Compare
9822966 to
e010b5e
Compare
Wrap `Channel m a` recv values in a new `Reception a = MkReception !(IntMap Time) !a`, recording per-chunk arrival times. In the mux demuxer the chunk's arrival time is paired with its starting byte offset; codec/driver layers either strip the time map (the codec sees only bytes) or propagate it through `wrapMiniProtocolTrailing` at the mini-protocol callback boundary. Tests/demos/benches use `IntMap.empty` when synthesising trailing. This is the network half of the November Leios demo's arrival-time plumbing; consumers (e.g. Praos block-arrival tracing on the consensus side) will be wired up separately. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Upstream cleanup, not Leios-specific: eight unused-import warnings that
upstream's own ghc-options promote to errors via 'nix/ouroboros-network.nix'
('-Werror' on forAllProjectPackages). They've been present at the
'main-peras-5202-merged' SHA that cardano-node and ouroboros-consensus
master both consume; surface when downstream haskell.nix builds also
inherit `-Werror`.
Affected files (one unused qualified import each):
- framework/lib/Ouroboros/Network/Protocol/Handshake/Codec.hs (BL)
- framework/tests-lib/.../ConnectionManager/Experiments.hs (LBS)
- framework/io-tests/.../Driver.hs (List)
- framework/io-tests/.../Socket.hs (IntMap)
- tests/lib/.../TxSubmission/AppV1.hs (BSL)
- tests/lib/.../TxSubmission/AppV2.hs (BSL)
- protocols/tests-lib/.../KeepAlive/Test.hs (BL)
- protocols/tests-lib/.../PeerSharing/Test.hs (BL)
Verified with 'cabal clean && cabal build all --ghc-options=-Werror' →
exit 0.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
e010b5e to
c66e9a2
Compare
The definition is already guarded by '#if !defined(mingw32_HOST_OS)'; the export was not, causing Windows cross-compile to fail with 'Not in scope: createSocketConnectedChannels'.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR intends to fast-forward
leios-prototypeinto the head ofleios-prototype-remake. The remake now targetsouroboros-network-1.1.0.0(the release shipped with cardano-node 11.0.1 / ouroboros-consensus 3.0.1.0), notmaster. For side-by-side comparison see diffs to the branch points:Commits
Four commits on top of
47ef632cb1 Reset leios-prototype to ouroboros-network-1.1.0.0 (Leios commits replayed below)— a snapshot-merge whose first parent is the originalleios-prototypetip (479f0d0d82 leiosdemo202511: introduce BearerBytes class) and second parent is theouroboros-network-1.1.0.0release tag. The merge's tree equals the 1.1.0.0 tree, sogit log --first-parent leios-prototype-remakewalks back through the original prototype's history (preserved in the DAG), while the topical commits build on the released base.trace-dispatcherto^>=2.12(compat with cardano-node 11.0.1). Released 1.1.0.0 ofouroboros-networkand 1.0.0.0 ofcardano-diffusionpintrace-dispatcher ^>=2.11.0, but cardano-node 11.0.1 pulls intrace-dispatcher 2.12.x. Bumpsouroboros-network/ouroboros-network.cabalandcardano-diffusion/cardano-diffusion.cabalconstraints, advancescabal.project's CHaPindex-stateto2026-04-13T13:33:52Z(the same date the consensus 3.0.1.0 release was cut), and refreshesflake.lockfor the new CHaP nar-hash. No code change.Leios N: BearerBytes class replaces dataSize on ProtocolSizeLimits(Nicolas Frisby's original chunk). Introduces theBearerBytestypeclass and removes thedataSize :: bytes -> Wordfunction argument fromProtocolSizeLimits-using entry points (byteLimits*,runPeerWithLimits,runDriver*). Downstream codec / driver layers express the size-limit dependency as a constraint rather than a passed-in function.Leios N: Reception arrival-time on recv (demo-tuning)(Nicolas Frisby's original chunk). WrapsChannel m arecv values inReception a = MkReception !(IntMap Time) !a, recording per-chunk arrival times. In the mux demuxer the chunk's arrival time is paired with its starting byte offset; codec / driver layers either strip the time map (codec sees only bytes) or propagate it throughwrapMiniProtocolTrailingat the mini-protocol callback boundary. Tests / demos / benches synthesise trailing asMkReception IntMap.empty. This is the network half of the November Leios demo's arrival-time plumbing; consumers (e.g. Praos block-arrival tracing on the consensus side) wire up separately.Drop unused Data.ByteString.Lazy / Data.List / Data.IntMap imports. Upstream cleanup, not Leios-specific: eight unused-import warnings that the network's own-Werror(vianix/ouroboros-network.nix) promotes to errors. They were present at themain-peras-5202-mergedSHA but surface here as well; cleaned forcabal build all --ghc-options=-Werror.Verified by
cabal build allclean in thedev-top-leveldevshell.cabal build allinouroboros-consensus(with itscabal.projectSRP at this branch tip) and incardano-node11.0.1 (with its SRPs at the consensus/network rebased tips). End-to-end proto-devnet run (3 cardano-node 11.0.1 binaries linked against this network) reaches era=Dijkstra and confirms LeiosNotify/LeiosFetch diffusion.Companion PRs