Skip to content

Updated ouroboros-network version, signature validation simplification#58

Open
coot wants to merge 16 commits into
mainfrom
coot/ouroboros-network-update
Open

Updated ouroboros-network version, signature validation simplification#58
coot wants to merge 16 commits into
mainfrom
coot/ouroboros-network-update

Conversation

@coot
Copy link
Copy Markdown
Contributor

@coot coot commented May 20, 2026

List of changes

  • Updated to recent ouroboros-network
    Based on coot/tracing-instances-1 branch from ouroboros-network.

    To use main branch we need to wait for cardano-crypto-class,
    ouroboros-consensus, kes-agent-crypto to support
    contra-tracer-0.2.1.0.

  • signature validation: modification
    Removed the case where we validate signatures based on mark set. Now
    signatures validation fails with SigExipred only in the
    ZeroSetSnapshot case. Because of that also the other case where
    ssMarkSet was used becomes obsolete, and thus we don't use the mark
    set at all.

    If a pool reaches zero stake in epoch i, then it will still get rewards
    in the epochs i+1 and i+2, so there's nothing wrong allowing it to
    mint signatures in the epoch i+1, e.g. there's a natural inertia in
    the system based on trust in the stake snapshots.

  • Added changelog entry

Checklist

  • related issue
  • My changes generate no new warnings
  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have added tests that prove my fix is effective or that my feature works

@github-project-automation github-project-automation Bot moved this to In Progress in Ouroboros Network May 20, 2026
@coot coot force-pushed the coot/ouroboros-network-update branch 2 times, most recently from 81bab2d to b4df916 Compare May 21, 2026 11:23
@coot coot mentioned this pull request May 21, 2026
coot added 2 commits May 22, 2026 14:15
Based on `coot/tracing-instances-1` branch from `ouroboros-network`.

To use `main` branch we need to wait for `cardano-crypto-class`,
`ouroboros-consensus`, `kes-agent-crypto` to support
`contra-tracer-0.2.1.0`.
@coot coot force-pushed the coot/ouroboros-network-update branch 6 times, most recently from a9b7b6f to 562f8ad Compare May 25, 2026 08:26
coot added 6 commits May 26, 2026 16:07
Removed the case where we validate signatures based on mark snapshot and
we use set snapshot instead.

Now signatures validation fails with `SigExipred` only in the
`ZeroGoSnapshot` case.  Because of that also the other case where
`ssMarkSet` was used becomes obsolete, as a consequence we don't use the
mark snapshot at all.

If a pool reaches zero stake somewhere in epoch `i`, it will still mint
blocks in epoch `i+1` as well.  There's a natural inertia in the system
based on trust in the stake.  Using set snapshot makes minting signature
compatible with minting blocks (the set snapshot is used for both).

The check if a pool is eligible for generating a signature now becomes
much simpler: we simply need to check if the pool has
`NotZerGoSnapshot` or not, we don't need to depend on time in this
check as we use data which is old enough to be available (e.g. the go
snapshot comes from the beginning of two epoch prior the current one).
For the codec test we need to generate values via Word32, so no negative
values nor fractional ones are generatated.  Otherwise the round-trip
property will not hold, since the codec is using `floor` function.

In the previous commit the NominalDiffTime generator was changed, hence
this change is required.
We need to sign `sigSignedBytes` not `sigBody`.
@coot coot force-pushed the coot/ouroboros-network-update branch from 562f8ad to 621be9c Compare May 26, 2026 14:36
@coot coot self-assigned this May 26, 2026
coot added 2 commits May 28, 2026 07:51
We no longer need:
* `c_MAX_CLOCK_SKEW_SEC`
* next epoch time

Instead we just provide a `TVar m Readiness`.
@coot coot force-pushed the coot/ouroboros-network-update branch from 621be9c to 238bfaf Compare May 28, 2026 05:53
@coot coot linked an issue May 28, 2026 that may be closed by this pull request
coot added 4 commits June 2, 2026 20:54
Get the Praos max KES evolution from a Shelley genesis file.
The sig-submission size limits are now taking into account the
`maxSigsInflight` (and `maxSigSize`).
Signed bytes are part of `SigRawWithSignedBytes`.
@coot coot force-pushed the coot/ouroboros-network-update branch from 238bfaf to 64c0775 Compare June 2, 2026 18:54
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.

dmq-node: production ready

1 participant