Loading
Loading

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.
Hardware depends on model training approach (miners may use GPUs for training, but submission is ONNX format). Model must be ≤200MB and in ONNX format. Input shape (batch, 10-76) float32 for numeric features; optional property images (batch, 10, 3, 224, 224) uint8. Output shape (batch, 1) or (batch,) float32.
Hardware is suggested starting point; adjust based on load and number of miners. Model cache stores up to 256 miners' models. Docker container runs model inference with configurable memory (default 2GB) and CPU (default 1.0 core) limits. Inference timeout 300 seconds by default. Max 4 concurrent evaluations by default.
Clone the repository
git clone https://github.com/resi-labs-ai/RESI-models.git && cd RESI-models
Install the miner CLI and dependencies
pip install -e .
Verify installation by checking miner CLI help
miner-cli --help
Evaluate your ONNX model locally before submission (verify MAPE < 15%, Score > 0.85)
miner-cli evaluate --model.path ./my_model.onnx
Create a public HuggingFace model repository and upload your ONNX model to the repo root
# Create HuggingFace repository and upload model.onnx
Submit model commitment to blockchain with Bittensor wallet
miner-cli submit --model.path ./my_model.onnx --hf.repo_id your-username/your-repo --wallet.name miner --wallet.hotkey default
Complete HuggingFace setup: add RESI Proprietary Model LICENSE file (exact text verified by SHA-256), extrinsic_record.json with chain commitment info, optional feature_config.json for feature selection, and README.md with license metadata in YAML front matter
# Add LICENSE, extrinsic_record.json, feature_config.json (optional), README.md with metadata
Ensure repository is public so validators can download model for evaluation
# Make HuggingFace repository public (if was private during preparation)
Clone the repository
git clone https://github.com/resi-labs-ai/RESI-models.git && cd RESI-models
Install dependencies using uv package manager
uv sync
Generate a secure Pylon token and save it
openssl rand -base64 32
Create and configure .env file with required settings (WALLET_NAME, WALLET_HOTKEY, BITTENSOR_WALLET_PATH, PYLON_TOKEN, PYLON_IDENTITY, PYLON_IDENTITIES, SUBTENSOR_NETWORK, NETUID, etc.)
cp .env.example .env && # Edit .env with wallet name, hotkey, Pylon token, network config
Build the ONNX runner Docker image for sandboxed model evaluation
docker compose build onnx-runner
Start Pylon service in Docker (handles Bittensor chain interactions); use DOCKER_DEFAULT_PLATFORM=linux/amd64 on Mac with Apple Silicon
docker compose up -d
Verify Pylon is running and responding to API requests
curl http://localhost:8000/api/v1/identity/validator/subnet/46/block/latest/neurons
Install PM2 process manager globally for managing validator process
npm install -g pm2
Start validator with auto-update support using PM2 (recommended approach)(optional)
set -a && source .env && set +a && pm2 start "uv run python scripts/start_validator.py" --name resi_autoupdater
Alternatively, start validator manually without auto-updates(optional)
set -a && source .env && set +a && pm2 start "uv run python -m real_estate.validator.validator --wallet.name validator --wallet.hotkey default --netuid 46 --pylon.token YOUR_PYLON_TOKEN --pylon.identity validator" --name resi_validator
Monitor validator logs to verify startup and normal operation
pm2 logs resi_validator --lines 50
Optional: Set up log rotation to manage disk space for long-running validators(optional)
pm2 install pm2-logrotate && pm2 set pm2-logrotate:max_size 100M && pm2 set pm2-logrotate:retain 30