Loading
Loading

Neuron registration trends
Energy trading desks, power grid operators, and renewable energy forecasters rely on expensive numerical weather prediction (NWP) systems that require massive computing resources, take hours to run, and often lack the precision or geographic focus needed for specific trading horizons and regions. Traditional NWP is cost-prohibitive for continuous, hourly 15-day forecasts across the full Earth at fine resolution.
A decentralized network of competing machine-learning forecasters can solve this by replacing centralized NWP with incentivized, independent model development. Miners train and run their own AI forecasting stacks on public ERA5 data, compete under identical challenge rules (same variables, horizons, and grid), and are scored against actual ground truth once it becomes available. Validators keep rank history, set subnet weights from verified performance, and use blockchain commitments to prevent miners from copying each other's answers after the fact.
Zeus implements this solution on Bittensor by issuing four forecasting rounds per day (at 00:30, 06:30, 12:30, 18:30 UTC) for four ERA5 surface variables: 2m temperature, 100m wind components (u and v), and surface solar radiation. Miners commit compressed forecasts on-chain before revealing them; validators then request reveals, verify hash matches, score against ground truth once available, and update subnet weights from rolling rank averages. This approach aligns miner incentives with forecast accuracy for the regions and lead times that energy markets actually trade on.
Use cases were auto-generated from the GitHub repository and may not reflect the latest changes.
Zeus (SN18) is a decentralized environmental forecasting subnet that leverages AI models to predict ERA5 weather variables (2m temperature, 100m wind components, and surface solar radiation) on a global 0.25° grid for 49-hour and 15-day horizons. Miners compete to produce accurate forecasts using on-chain commit-reveal mechanisms to prevent relay mining, while validators score predictions against ground truth and set subnet weights based on rolling rank history.
Miners receive precomputed challenge specifications at 00:30, 06:30, 12:30, 18:30 UTC for one of 8 ERA5 variable×horizon combinations. In the commit phase, miners compress their float16 forecast tensor using blosc2, hash the compressed bytes with their hotkey using SHA256, and submit the hash on-chain via Commitments.set_commitment before minute :45. Validators read committed hashes from chain and store them in SQLite.
In the reveal phase (1+ hour after commit), validators query a subset of top miners using TimePredictionSynapse, requesting base64-encoded compressed predictions. Miners return the same deterministically-compressed tensor they committed. Validators verify the SHA256(compressed_bytes + hotkey) matches the on-chain hash; mismatches incur penalties.
Once ERA5 ground truth is available (days later), validators run final scoring to compute RMSE/MAE, apply geographic and variable weights, update SQLite rank history, and compute subnet weights from rolling averages. A dedicated WeightSetter background thread periodically refreshes burn data and emits weights to chain respecting rate limits. All miner responses, pending challenges, hashes, and rank history are persisted in SQLite databases under ~/.cache/zeus/.
This information was auto-extracted from the GitHub repository and may be incomplete or out of date. Always refer to the subnet's GitHub repository for the latest instructions.
Validators score miners once ERA5 ground truth covers every timestep in a challenge's window (sooner for 49-hour short-term, later for 361-hour 15-day). Scoring uses area-weighted RMSE/MAE with latitude-based weights and geographic scalar overlays (maximum of overlapping regions). Subnet weights come from rolling averages of recent ranks per variable×horizon (default 4 windows for short-term, 8 for long-term).
The top-ranked miner per challenge receives most of that challenge's weight (PERCENTAGE_GOING_TO_WINNER), remainder distributed logarithmically. Dynamic burn assigns a fraction of emissions to a burn UID per epoch (fetched from performance API) to deter weight-copying validators. Inactive/repeated penalties remove weight unless miner registered in last 4 weeks.
The sections above were auto-generated from the GitHub repository and may not reflect the latest changes. View repository
Pushing weather forecasts beyond state-of-the-art
Powered by Ørpheus AI
FAQs were auto-generated from the GitHub repository and may not reflect the latest changes.
Holder & total-staked metrics as of 1h ago (hourly snapshot)
GPU recommended for model training but not required for inference. Miners should precompute and cache forecasts deterministically to match on-chain committed hashes.
Should run Subtensor locally for reliability. Storage grows with miner commitment tracking (~15GB for pending challenges, ~1GB for ERA5 data).
Clone the Zeus repository
git clone https://github.com/Orpheus-AI/Zeus.git && cd Zeus
Create and activate Conda virtual environment
conda create -y -n zeus python=3.11 && conda activate zeus
Install dependencies and requirements
chmod +x setup.sh && ./setup.sh
Create miner.env configuration file with wallet and network settings
cat > miner.env << 'EOF' NETUID=18 SUBTENSOR_NETWORK=finney SUBTENSOR_CHAIN_ENDPOINT=wss://entrypoint-finney.opentensor.ai:443 WALLET_NAME=default WALLET_HOTKEY=default AXON_PORT=your_port BLACKLIST_FORCE_VALIDATOR_PERMIT=True EOF
Register hotkey on mainnet (testnet: netuid 301, subtensor.network test)
btcli s register --netuid 18 --wallet.name [wallet_name] --wallet.hotkey [hotkey] --subtensor.network finney
Verify that your miner port is accessible before registration(optional)
curl your_ip:your_port
Start mining with the startup script
conda activate zeus && ./start_miner.sh
Clone the Zeus repository
git clone https://github.com/Orpheus-AI/Zeus.git && cd Zeus
Create and activate Python virtual environment
python3.11 -m venv zeus-venv && source zeus-venv/bin/activate
Install dependencies and requirements
chmod +x setup.sh && ./setup.sh
Create validator.env configuration file with wallet, network, and API settings
cat > validator.env << 'EOF' NETUID=18 SUBTENSOR_NETWORK=finney SUBTENSOR_CHAIN_ENDPOINT=wss://entrypoint-finney.opentensor.ai:443 WALLET_NAME=default WALLET_HOTKEY=default AXON_PORT=your_port PROXY_PORT=your_proxy_port CDS_API_KEY=your_cds_key PROXY_API_KEY=your_proxy_key EOF
Register hotkey on mainnet (testnet: netuid 301, subtensor.network test)
btcli s register --netuid 18 --wallet.name [wallet_name] --wallet.hotkey [hotkey] --subtensor.network finney
Obtain Copernicus CDS API key for ERA5 data access
Visit https://cds.climate.copernicus.eu/how-to-api, register/login, accept ERA5 terms, and copy API key to validator.env
Set up local Subtensor node for reliability (recommended but optional)(optional)
Follow https://github.com/opentensor/subtensor/blob/main/docs/running-subtensor-locally.md#compiling-your-own-binary
Start validator with startup script (loads validator.env and runs under pm2)
source zeus-venv/bin/activate && cd Zeus && ./start_validator.sh