Skip to content

0.3.1 - OPCERT live refresh fix

Choose a tag to compare

@GNP1-dev GNP1-dev released this 27 Aug 16:15
· 57 commits to main since this release

⚠️ Beta software, no warranty. PoolTerminal is early software and has mainly been exercised on one operator's setup. It is read-only by design and holds no key material, but it does hold SSH access to your block producer, and that limit is not a guarantee. It has had an AI-assisted code review, not an independent security audit. Provided as-is under Apache 2.0 with no warranty of any kind - you use it at your own risk. See SECURITY.md.

Fixed: OPCERT counters did not refresh after a KES rotation

If you rotated your KES keys while running 0.3.0, please re-check your
operational certificate counter with cardano-cli. The dashboard may
have shown you pre-rotation values.

What was wrong

The two operational certificate counters, "on disk" and "on chain", were
read once when the app connected to your node and never read again. The
KES fields beside them refreshed every 60 seconds as intended, so the
panel looked live while the OPCERT numbers were frozen at whatever they
were at connection time.

The effect: rotate KES, look at the dashboard, see two matching counters
and conclude the rotation went cleanly. In fact you were looking at the
state from before the rotation. Only a restart or reconnect would show
the true values.

Disk being ahead of chain is the normal healthy state between a rotation
and the next forged block, and a larger mismatch is one of the few
signals that catches a botched rotation. A frozen reading could not show
either.

What changed

  • Both counters now come from the same kes-period-info call that
    already refreshes the KES panel every 60 seconds. The duplicate
    one-shot call has been removed.
  • The counters are never held. If the query fails for any reason, the
    panel shows "querying node…" rather than the last known value.
  • The panel now shows when the reading was taken.
  • The healthy colour rule is now disk >= chain. Previously only disk ==
    chain or disk == chain + 1 was treated as healthy, which wrongly
    flagged pools that go a long time between blocks and legitimately sit
    two or more ahead after successive rotations. Red now means only what
    it should: disk behind chain.

Verifying your download

sha256sum -c SHA256SUMS

Build

rustc 1.94.1, cargo 1.94.1, node v22.22.3, built on Ubuntu 22.04.