Skip to content

v0.2.129

Choose a tag to compare

@sanity sanity released this 21 Aug 14:49
· 60 commits to main since this release
1a91e3d

Routine upgrade for node operators: no wire-format change, no configuration change,
and nothing to do after updating.

If you use the ping example

The ping contract's state encoding changed so that merges are commutative and the
encoded state is canonical (#5352). A WASM change re-keys the contract, so ping
starts from an empty state after this upgrade and earlier local ping state is not
carried over. That is expected rather than a fault: the new key is a new address,
so the new code never reads bytes written under the old encoding.

Conformance capture (opt-in, off by default)

This release adds the merge-law verifier and its capture/shadow tooling, including
shadow mode, which reports what a hosting decision would have removed without
acting on it. All of it is inert unless FREENET_CONFORMANCE_CAPTURE_DIR is set:
with the variable unset, capture never starts and the default path is unchanged.

#5368 scales the related-state budget with the configured sampler budget and counts
and surfaces refusals, which previously went unrecorded. To be precise about what
that does not mean: it does not make any previously unjudgeable contract
judgeable. A cohort of contracts still reaches no verdict, for an unrelated reason
now understood and tracked separately — related state resolved during validation is
never observed by capture. No coverage improvement is claimed here.

Local node dashboard

Two corrections to what a node tells you about itself. Neither is cosmetic.

The eviction table was presenting a retired Greedy-Dual estimator as though it
were the live eviction policy, while the rows were in fact ordered by something
else entirely — so the page asserted a policy the node had stopped using. It now
shows the field it actually sorts by (#5371). Separately, the budget panel named
no binding axis: three ceilings rendered as identical tiles, so an axis sitting at
99.2% of its limit looked no different from one at 1%. It now says which limit is
closest to binding (#5373).

Both change what the page reports, not what the node does: eviction ordering and
retention behaviour are unchanged.


What's Changed

  • feat(conformance): merge-law verifier and fdev harness (RFC #5320) by @sanity in #5344
  • fix(ping): make merge commutative and the state canonically encoded by @sanity in #5352
  • test(conformance): cover the never-settles shape found on the live network by @sanity in #5351
  • feat(conformance): capture related-contract state by @sanity in #5360
  • feat(conformance): shadow mode — select, probe, and record what would be removed by @sanity in #5365
  • fix(conformance): select focus over hosted contracts, and sample what focus picked by @sanity in #5367
  • fix(dashboard): show the column the eviction table is sorted by by @sanity in #5371
  • fix(conformance): scale the related-state budget and count refusals by @sanity in #5368
  • docs(rules): record the uncounted-refusal pattern and scope it to conformance by @sanity in #5375
  • fix(dashboard): say which budget is closest to binding by @sanity in #5373
  • build: release 0.2.129 by @sanity in #5381

Full Changelog: v0.2.128...v0.2.129