Skip to main content

1.3 Quickstart: Validator

Set up the full C-SWON evaluation pipeline on testnet.

Step 1 — Clone and Install

git clone https://github.com/adysingh5711/C-SWON.git
cd C-SWON
pip install -r requirements.txt
pip install -e .

Step 2 — Create Wallet

btcli wallet new_coldkey --wallet.name my_validator
btcli wallet new_hotkey --wallet.name my_validator --wallet.hotkey default

Step 3 — Register on the Subnet

btcli subnet register \
--netuid <netuid> \
--wallet.name my_validator \
--wallet.hotkey default \
--subtensor.network test

Step 4 — Ensure Docker is Running

docker info   # must succeed; Docker 24.x+ required

Step 5 — Configure Execution Mode

export CSWON_MOCK_EXEC=true
export CSWON_SYNTHETIC_SALT=$(python -c "import secrets; print(secrets.token_hex(32))")

CRITICAL: Both variables are required. Save the salt value — reuse it across restarts for scoring consistency.

Step 6 — Run the Validator

python neurons/validator.py \
--netuid <netuid> \
--wallet.name my_validator \
--wallet.hotkey default \
--axon.port 8092 \
--subtensor.network test \
--wandb.off

Step 7 — Verify Weight Submission

btcli subnet metagraph --netuid <netuid> --subtensor.network test
# After first tempo (~72 min), your UID should show vtrust > 0

Expected Behaviour

  • vtrust = 0.0 for the first 5–10 tempos is normal. Yuma Consensus grants vtrust as weights converge over multiple tempos. Expect near-zero Alpha earnings for the first 12–24 hours.
  • If vtrust is still 0 after tempo 10: check logs for CommittingWeightsTooFast or signature errors.

Common Errors

ErrorCauseFix
CommittingWeightsTooFastWeights submitted more than once per tempoCheck last_set_block logic
Axon not reachablePort not openOpen port 8092 in firewall
CSWON_MOCK_EXEC missingEnv var not setexport CSWON_MOCK_EXEC=true
Docker permission deniedDocker not accessiblesudo usermod -aG docker $USER

← Previous1.2 Quickstart: Miner
→ Next2.1 System Architecture
IndexDocumentation Index
Repositorygithub.com/adysingh5711/C-SWON