Skip to main content

3.5 Scoring Version Control

All validators must run the same scoring version to produce consistent weights.

Version Signal

# validator/config.py
SCORING_VERSION = "1.0.0"
__spec_version__ = 10000 # 1*10000 + 0*100 + 0
# validator/base.py
axon = bt.Axon(
wallet=wallet,
config=config,
port=port,
external_ip=bt.utils.networking.get_external_ip(),
info=bt.AxonInfo(
version = __spec_version__, # int, SDK-compatible
description = f"cswon-scoring:{SCORING_VERSION}", # human-readable
),
)

Detection: parse metagraph.axons[uid].version (integer) and .description (string).

Upgrade Protocol

Requires ≥67% validator stake-weighted consensus:

  1. New version PR merged with ≥3 validator sign-offs
  2. Owner announces upgrade block height (minimum 2 tempos notice)
  3. All validators upgrade before announced block
  4. At upgrade block, SCORING_VERSION is bumped
  5. Old-version validators flagged as outliers by Yuma bonds

There is no forced upgrade mechanism — this is a social coordination protocol enforced through economic pressure.


← Previous3.4 Anti-Gaming Mechanisms
→ Next4.1 Registration & Requirements
IndexDocumentation Index