Repository navigation
Releases: everyframe-studio/everyframe-validator
Release list
EveryFrame Validator v0.6.0
EveryFrame Validator v0.6.0
- Add deterministic owner burn selection. All validators derive the same burn
UID from the signed accounting assignment and the registered owner hotkeys at
its finalized epoch-start snapshot. Only unused allocation moves; serving-miner
weights stay unchanged. - Independently verify the candidate set, seed and selected UID. Recheck its
ownership before signing and at reveal/application; never silently substitute
another target if ownership changes. - Preserve v1 assignments, existing reports, journals, authorizations and pending
commitments. Upgrading does not activate burn rotation or change chain settings. - Make publisher activation durable across interrupted writes and serialize
concurrent publishers. Readers reject a silent policy downgrade after v2
activation. Doctor reports the selected UID and verification snapshot. - Upgrade all validators before the operator enables v2 at a future chain epoch.
Stop the existing instance, install v0.6.0, rundoctorwith the same state and
wallet configuration, and restart the original service. Do not reinitialize
state. See the rollout guide. - Rotation can make stale copied vectors less useful. It does not hide the public
report or guarantee a particular VTrust score.
EveryFrame Validator v0.5.1
EveryFrame Validator v0.5.1
Compatibility release for chain-derived miner emission accounting, plus a reveal-tracking correction.
Changes
- Support
chain-miner-emission-v1: reconstruct the actual miner bucket from finalized per-block alpha-out rates and parent-state emission splits, including SN117's approximately 33% miner share. This is not 33% of the previous 41% bucket. - Verify signed public emission evidence independently against chain storage before calculating/signing weights. Bound archive queries, share pinned SDK metadata, and cache only fully verified evidence bound to the complete artifact and boundary hashes.
- Preserve historical legacy/fixed-41% reports and existing journals, authorizations, state and commitments.
- Add
doctor --check-emissionsfor read-only full-window archive/readiness checks before the new policy is enabled. Mainnet defaults to the official Finney archive; explicit RPC overrides remain supported. - Fix reveal/application observations for
chain-epoch-v3submission records as well as v2.
Upgrade
Stop the existing validator before replacing its code/image. Use ghcr.io/everyframe-studio/everyframe-validator:v0.5.1 or the immutable digest in image.txt. Keep the same state directory/volume, wallet mounts, RPC configuration and signing command. Do not rerun init, clear journals, recreate wallets or renew authorization just to upgrade.
For a source installation, install this release's wheel into the existing service virtual environment while that service is stopped. This package is not published to PyPI.
Before restarting the existing instance, confirm:
everyframe-validator --version
everyframe-validator doctor --state-dir YOUR_EXISTING_STATE
everyframe-validator doctor --state-dir YOUR_EXISTING_STATE --check-emissionsThe emissionHistory check must pass using that operator's actual RPC. Read-only checks do not unlock a private key or submit a transaction.
Coordinated activation required
Publishing/installing v0.5.1 does not activate the new accounting policy or upgrade running validators. v0.5.0 rejects the new evidence format. Upgrade the accounting publisher, owner validator and independent validators (including Yuma), verify readiness, then coordinate explicit owner writer opt-in with --chain-emission-policy. The live writer remains unchanged by this release. No chain parameters, historical reports or recovery approvals are changed.
Verification
401 local validator tests and 97 sibling subnet tests passed. A clean installed candidate wheel verified test-signed evidence against live mainnet storage, rejected validly signed altered evidence, and checked wallet compatibility without a public sidecar. The read-only owner-profile probe passed. GitHub Actions separately tests Python 3.10, 3.13 and 3.14, clean wheel installs, and the non-root Linux amd64 container. No production signing key, chain transaction or service restart is used for release verification.
Release assets include wheel/source distributions, deployment templates and SHA256SUMS. Independently verify the checksums and review the upgrade instructions.
EveryFrame Validator v0.5.0
EveryFrame Validator v0.5.0
Fixes the accounting-input divergence between owner and independent validators.
Validators now authenticate the same signed assignment for each finalized chain
epoch and independently calculate weights from its exact report hash. Their own
start dates, old queues and missing-report scan cursors no longer choose inputs.
Changes
- Canonical epoch-start cutoff, finalized chain-start hash, immutable assignment
and report verification. HTTP 404/network errors wait; they do not imply zero work. - No historical report replay, journal reset, chain parameter change or relaxed
zero-fee/signing policy. Existing commitments remain reconciled independently. - Owner-only reviewed missed-reward carry-forward: deduct received rewards,
reserve against the future pool, keep excess pending, and reopen only reviewed
unpaid portions after a failed or partial recovery. Publishing is not payment. - Restricted accounting-assignment feed publisher, owner audit/finalization and
recovery tools, with deployment documentation and numeric GET/HEAD routes. - Read-only canary checks work outside signing windows. Actual signing windows
remain enforced. Includes v0.4.1's legacy-hotkey fixes; no defaultpub.txt is needed
when public metadata is present in the existing private hotkey file.
Upgrade
Coordinate the signing cutover with the subnet operator; a release does not
upgrade running validators or peers automatically. Preserve the existing state,
wallet, authorization and journals. Do not run init again or clear old cursors.
Verify that doctor accepts canonicalAssignment before starting the signing loop.
Image: ghcr.io/everyframe-studio/everyframe-validator:v0.5.0
For an existing virtualenv, install the attached wheel after stopping the existing
process, run everyframe-validator --version and doctor with the same state, then
restart only at the coordinated cutover. This package is not published on PyPI.
SHA256SUMS covers every attached artifact; image.txt contains the immutable image.
Accounting boundary
Owner journal absence is not evidence that a miner received zero rewards: other
validators, previously revealed weights and pending commitments must be reviewed.
This release does not automatically approve historical compensation, recover old
burned emissions, guarantee USD payouts or treat weight application as settlement.
See OWNER-ACCOUNTING.md for the review and carry-forward procedure.
EveryFrame Validator v0.4.1
Wallet compatibility fix
Existing legacy hotkey files work without defaultpub.txt. The validator reads public metadata from the existing hotkey, without decrypting it, generating keys, or printing private material.
- Catch incorrect wallet roots before signing-mode epoch waits.
- Show resolved wallet paths and clear diagnostics.
- Make doctor fail for a broken configured wallet; report read-only and signing readiness separately.
- Verify the actual unlocked signer before reserving or broadcasting a transaction.
- Preserve journals, authorizations, accounting cursors, reward logic, and scheduling. No state migration is required.
Encrypted wallets do not require a public sidecar either. If public metadata cannot be read without unlocking, doctor explicitly reports identity verification as deferred; the authorized signing path still checks the actual signer.
Upgrade
Stop the existing instance before installing the update. Keep the same state directory, wallet, RPC settings and service command. Do not rerun init or authorize merely to upgrade, clear journals, or create replacement keys.
For a source/virtualenv installation, activate the service's existing virtualenv and run:
python -m pip install --upgrade 'https://github.com/everyframe-studio/everyframe-validator/releases/download/v0.4.1/everyframe_validator-0.4.1-py3-none-any.whl'
everyframe-validator --version
everyframe-validator doctor --state-dir ./state/mainnet117Review doctor results, then restart only the existing validator process with its existing command. Encrypted-wallet identity may remain explicitly unverified until an authorized unlock. No signing or validator restart is performed by the update itself.
Docker image: ghcr.io/everyframe-studio/everyframe-validator:v0.4.1. The immutable digest is supplied in image.txt; latest follows this release but does not hot-replace running containers. Preserve the same state/wallet mounts and signing configuration when upgrading.
SHA-256 checksums are in SHA256SUMS. This package is distributed through GitHub Releases and GHCR, not PyPI. This is independent validator v0.4.1, separate from everycli v0.6.0.
Everyframe Validator v0.4.0
EveryFrame Validator v0.4.0
-
Recover across missing accounting reports: later verified work can proceed,
missing reports remain eligible, and already-submitted reports cannot replay. -
Verify and pass over zero-work reports before allocating a chain slot to paid
work. Bounded incomplete scans wait; errors never become fake zero accounting. -
Independent validator upgrade: stop the previous instance, update the image
or package, and reuse the same state, wallet mounts, RPC and signing command.
Do not reinitialize, clear journals, or delete state volumes. -
Support explicit fixed-41% miner-pool accounting for new mainnet reports.
Legacy signed reports retain their original share. Deploy updated feed
consumers/publisher before the finalizer; older clients reject the new field.
No chain emission parameter changes, historical replay, or extra reward bonus. -
Replace repeated/block and fixed-accounting-window signing with one allocation
per actual finalized subnet epoch. Legacy CLI cadence flags map to the safe mode. -
Check chain timing, identity, cooldown and reveal-round separation before
signing and again before broadcast; retain zero-fee policy and consent limits. -
Persist an accounting cursor so late reports are queued, not discarded or
replaced by burn in the same reveal window. No historical reward replay. -
Record exact-commit reveal and subsequent mechanism-step observations separately
from alpha settlement. Overwritten/ambiguous allocations require review. -
Preserve all prior submission journals and already queued commitments.
Upgrade instructions: https://github.com/everyframe-studio/everyframe-validator#upgrade-an-existing-validator-to-v040
Validated on Python 3.10, 3.13 and 3.14; 217 tests pass. Docker image and downloadable package assets include checksums.
A successful commit is not proof of alpha payment: reveal and application are observed separately. Independent operators must update their own deployments.
Everyframe Validator v0.3.0
EveryFrame Validator v0.3.0
New defaults
- Submit each signed accounting report once per accounting epoch, rather than
repeatedly refreshing it every 100 blocks. - Poll for status and accounting every 60 seconds.
- Allow 25 blocks of publication grace before a missing-feed burn fallback.
- If a valid report arrives later in the same epoch, replace the burn fallback
once, respecting the 100-block minimum gap and any higher chain rate limit.
Finalized commits may still await automatic reveal while a newer epoch is
submitted. Uncertain transactions remain blocked until reconciled. Neither a
finalized commit nor a signed accounting report proves that alpha was received.
Compatibility and safety
- Existing journals and authorizations remain in use; never delete/reset them to
upgrade. The epoch guard also recognizes earlier block-mode submissions. --weight-cadence blockpreserves v0.2.0's repeated refresh mode.--missing-accounting waitdisables the missing-feed burn fallback.- Finney remains the default RPC, with explicit RPC override support.
- Invalid signatures, conflicting reports and network errors still block; they
are never converted into fake zero-work accounting. - The signed aggregate feed schema is unchanged. The separately deployed owner
finalizer carries eligible late approvals into future accounting reports;
this release does not approve jobs or recover already-burned emissions.
Updating Docker
For the repository's Compose deployment:
docker compose pull validator
docker compose up -d --no-deps validatorKeep the same state volume, wallet mount and explicit signing configuration.
Use a single signing instance per hotkey. Do not start a second validator while
the old process is still shutting down. Operators using a pinned image must first
select ghcr.io/everyframe-studio/everyframe-validator:v0.3.0 or its release digest.
The stable latest tag is updated after successful publication; it does not
automatically replace running containers. This release does not change the live
owner validator or authorize third-party signing. Linux amd64 image; wheel and
source archive included. No PyPI publication.
Everyframe Validator v0.2.0
What's Changed
- docs: recommend Docker installation before source setup by @everyframebuilder in #3
- fix: standardize EveryFrame branding by @everyframebuilder in #4
- Release v0.2.0: latest Docker image, Finney RPC and 100-block weights by @everyframebuilder in #5
Full Changelog: v0.1.0...v0.2.0
Everyframe Validator v0.1.0
Organization rename repair (2026-10-14)
The image is now available at ghcr.io/everyframe-studio/everyframe-validator. The image.txt, deployment helper, deployment guide, and corresponding SHA256SUMS entries were repaired for that namespace. The original image digest, v0.1.0 Git tag, wheel, and source archive are unchanged. Download the repaired metadata together and recheck checksums. For the new defaults and :latest installation, use v0.2.0 or newer once published.
What's Changed
- fix: improve validator diagnostics and safe submission recovery by @everyframebuilder in #1
- Add validator releases and guarded canary deployments by @everyframebuilder in #2
New Contributors
- @everyframebuilder made their first contribution in #1
Full Changelog: https://github.com/everyframe-studios/everyframe-validator/commits/v0.1.0