Validator Guide¶
SN94 production validators now use the autoresearch backend path only:
validator.research_validator_runnersigns backend worklist requests, replays assigned submissions in the Docker/CUDA sandbox, and posts observed metrics back to the backend.validator.backend_weight_setterpollshttps://autoresearch.bitsota.com/api/v1/reward-snapshot, readsreward_policy.validator_weights, and submits Bittensorset_weights.
The legacy relay validator, relay SOTA voting, and local winner weight-setting
path have been removed from this repo. Do not run any old service or process
that calls set_weights from relay/local SOTA state.
Production Setup¶
Use the public runbook for current production instructions:
Minimal process model:
Autoresearch backend -> replay validator -> backend result consensus
Autoresearch backend -> backend weight setter -> Bittensor SN94 weights
Production backend weight setting defaults to:
The current backend policy should target:
Always resolve the contract hotkey dynamically through the metagraph. Do not hardcode its UID.
Health Checks¶
systemctl status bitsota-replay-validator.service --no-pager
systemctl status bitsota-backend-weights.service --no-pager
journalctl -u bitsota-replay-validator.service -n 100 --no-pager
journalctl -u bitsota-backend-weights.service -n 100 --no-pager
Check the backend policy without submitting weights:
python -m validator.backend_weight_setter \
--config validator_config.weights.yaml \
--dry-run \
--ignore-rate-limit
If the dry run does not show the contract hotkey above, do not start the live weight service.