Skip to content

Conversation

amesgen
Copy link
Member

@amesgen amesgen commented Sep 29, 2025

Description

Add NodeToNodeV_16 for Peras, and depend on Cardano.Base.FeatureFlag

We add a new (experimental) NodeToNodeVersion for Peras.

Additionally, we add a function

isPerasEnabled :: Set CardanoFeatureFlag -> NodeToNodeVersion -> Bool

which additionally checks that the PerasFlag is set, cf IntersectMBO/cardano-base#547. Eventually, once Peras is non-experimental, the PerasFlag will be removed again.

nodeToNodeProtocols now depends on Set CardanoFeatureFlag.

Add generic ObjectDiffusion mini-protocol

This protocol is going to be used for Peras vote and certificate diffusion. It is essentially a copy of TxSubmission, except that MsgInit and MsgDone are sent by the client/inbound side, as the flow of information is the reverse of that of TxSubmission.

We also add codec roundtrip tests, but no CDDL just yet, given that we might make further changes to this protocol:

  • MsgInit: currently pointless, but will get a payload indicating that we are only interested in objects after some indicator.

  • The representation of object ids currently always is a list of object ids. We are potentially going to make this customizable to optimize for cases where a more succinct representation is possible (such as requesting "ranges" of ids).

  • We might make some changes to how IDs are requested, such as allowing the server to reply with MsgAwaitReply when we do a blocking request, cf Make idleness explicit in ObjectDiffusion mini-protocol tweag/cardano-peras#144.

Register Peras vote and certificate diffusion mini-protocols

In Cardano.Network.NodeToNode, make the Network layer aware of Peras certificate and vote diffusion, gated behind both NodeToNodeV_16 and the experimental Peras feature flag.

Checklist

Quality

  • Commit sequence makes sense and have useful messages, see ref.
  • New tests are added and existing tests are updated.
  • Self-reviewed the PR.

Maintenance

  • Linked an issue or added the PR to the current sprint of ouroboros-network project.
  • Added labels.
  • Updated changelog files.
  • The documentation has been properly updated, see ref.

@amesgen amesgen requested a review from a team as a code owner September 29, 2025 07:51
@github-project-automation github-project-automation bot moved this to In Progress in Ouroboros Network Sep 29, 2025
@amesgen amesgen force-pushed the peras-diffusion branch 2 times, most recently from 2919ada to 05afd58 Compare September 29, 2025 09:41
agustinmista added a commit to IntersectMBO/ouroboros-consensus that referenced this pull request Oct 13, 2025
Bumps the external ouroboros-network source-repository-package to the
updated peras-staging/pr-5202, which incorporates the changes from:

IntersectMBO/ouroboros-network#5202

In addition, it tweak call sites of `nodeToNodeProtocols` to match its
updated signature, passing down the enabled feature flags.
agustinmista added a commit to IntersectMBO/ouroboros-consensus that referenced this pull request Oct 13, 2025
Bumps the external ouroboros-network source-repository-package to the
updated peras-staging/pr-5202, which incorporates the changes from:

IntersectMBO/ouroboros-network#5202

In addition, it tweak call sites of `nodeToNodeProtocols` to match its
updated signature, passing down the enabled feature flags.
amesgen and others added 5 commits October 15, 2025 19:22
Co-authored-by: Agustin Mista <[email protected]>
Co-authored-by: Georgy Lukyanov <[email protected]>
Co-authored-by: Thomas BAGREL <[email protected]>
Co-authored-by: Nicolas BACQUEY <[email protected]>
Co-authored-by: Nicolas "Niols" Jeannerod <[email protected]>
Co-authored-by: Agustin Mista <[email protected]>
Co-authored-by: Alexander Esgen <[email protected]>
Co-authored-by: Georgy Lukyanov <[email protected]>
Co-authored-by: Thomas BAGREL <[email protected]>
Co-authored-by: Nicolas BACQUEY <[email protected]>
Co-authored-by: Agustin Mista <[email protected]>
Co-authored-by: Georgy Lukyanov <[email protected]>
Co-authored-by: Thomas BAGREL <[email protected]>
Co-authored-by: Nicolas BACQUEY <[email protected]>
Co-authored-by: Nicolas "Niols" Jeannerod <[email protected]>
Co-authored-by: Agustin Mista <[email protected]>
Co-authored-by: Alexander Esgen <[email protected]>
Co-authored-by: Georgy Lukyanov <[email protected]>
Co-authored-by: Nicolas BACQUEY <[email protected]>
Co-authored-by: Nicolas "Niols" Jeannerod <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants