Please ensure these prerequisites are installed on your system before proceeding with the installation steps, these are needed by both validators and miners.
Clone the project,
# In this guide, we will utilize the ~/opt directory as our preferred location.cd~/opt# Clone the projectgitclonehttps://github.com/tensorplex-labs/dojo.gitcddojo/
Install PM2, one way is through fnm
# for linux, a convenience script is available./scripts/setup/install_pm2.sh# for mac/linux (if you do not trust the bash script)curl-fsSLhttps://fnm.vercel.app/install|bash# for windows, choose 1 of the following,# based on https://github.com/Schniz/fnm?#manuallycargoinstallfnmchocoinstallfnmscoopinstallfnmwingetinstallSchniz.fnm# run any post-install shell setup scripts# based on https://github.com/Schniz/fnm?#shell-setup# assuming we are using zshecho'eval "$(fnm env --use-on-cd --shell zsh)"'>>~/.zshrc# you can tell what shell you're using by running:echo $0# verify fnm installationfnm--version# get npm & node, and verify npm installationfnminstalllst/iron&&npm--version# install pm2 and verify installationnpminstall-gpm2&&pm2--version
# for linux, a convenience script is available./dojo/scripts/setup/install_docker.sh# verify both docker and docker compose are installeddocker--versiondockercomposeversion
Create your wallets if they aren't created yet
# run btclimakebtcli# create your walletsbtcliwalletnew_coldkeybtcliwalletnew_hotkey
Get some TAO and ensure you have enough TAO to cover the registration cost
# for mainnet, check netuid 52btclislist# for testnet, check netuid 98btclislist--subtensor.networktest# output from the `btcli s list ...` commandNETUIDNMAX_NEMISSIONTEMPORECYCLEPOWSUDO0128128.000.00%10τ1.0000010.00M5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM...9817256.000.00%360τ0.0000118446744.07T5GTAfh3YTcokxWdGc3DgLV5y3hHB4Bs5PQGqw9fEn1WrcwWP...
Note
the "RECYCLE" column represents the subnet registration cost
Register to our subnet
# run the dockerized btclimakebtcli# register your wallet to our subnet# for mainnetbtclisregister--wallet.namecoldkey--wallet.hotkeyhotkey--netuid52--subtensor.networkfinney# for testnetbtclisregister--wallet.namecoldkey--wallet.hotkeyhotkey--netuid98--subtensor.networktest
Validating
Copy the validator .env file and set up the .env file
# copy .env.validator.examplecp.env.validator.example.env# edit the .env file with vim, vi or nano# for mainnetDOJO_API_BASE_URL="https://dojo-api.tensorplex.ai"# for testnet - uncomment below line if you are using testnet#DOJO_API_BASE_URL="https://dojo-api-testnet.tensorplex.ai"# head to https://wandb.ai/authorize to get your API keyWANDB_API_KEY="<wandb_key>"# for dojo-synthetic-apiOPENROUTER_API_KEY="sk-or-v1-<KEY>"# Other LLM API providers, Optional or if you've chosen it over OpenrouterTOGETHER_API_KEY=OPENAI_API_KEY=# postgres details for validatorDB_HOST=postgres-vali:5432DB_NAME=dbDB_USERNAME=DB_PASSWORD=DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}/${DB_NAME}
Start the validator
# start the validator# for mainnetmakevalidatornetwork=mainnet# for testnetmakevalidatornetwork=testnet