Tensorplex Docs
  • Introduction
  • Tensorplex LST
    • Introduction
    • stTAO
    • Contract and Wallet Addresses
    • Security
    • Terms and Conditions
    • Fees
  • Tensorplex Stream
    • Introduction
    • Official Links
    • Disclaimer
  • Tensorplex LLM
    • Introduction
    • Guides
  • Tensorplex Dojo Subnet
    • Introduction
    • Whitepaper
    • Guide - Miner Setup
    • Guide - Validator Setup
    • Guide - Contributor Setup
    • Guide - Contributor Tasks
    • Official Links
  • Tensorplex TAO Bridge
    • How to Bridge
    • Technical Overview & Security
    • Contract Addresses
    • Fees
    • Terms and Conditions
  • stTAO Intelligence Chips
    • Guide and Rates
    • Referral Program
    • Disclaimer
Powered by GitBook
On this page
  • Getting Started
  • Mining
  1. Tensorplex Dojo Subnet

Guide - Miner

Last updated 7 months ago

Note: URLs are different for devnet, testnet and mainnet, always check the Official Links!

To get started as a miner or validator, these are the common steps both a miner and validator have to go through.


Getting Started

Important

This setup guide uses specific tools to ensure a smooth installation process:

  • for managing Node.js & npm versions (required for PM2)

  • and

Please ensure these prerequisites are installed on your system before proceeding with the installation steps, these are needed by both validators and miners.

  1. Clone the project,

# In this guide, we will utilize the ~/opt directory as our preferred location.
cd ~/opt

# Clone the project
git clone https://github.com/tensorplex-labs/dojo.git
cd dojo/
  1. 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 -fsSL https://fnm.vercel.app/install | bash
# for windows, choose 1 of the following,
# based on https://github.com/Schniz/fnm?#manually
cargo install fnm
choco install fnm
scoop install fnm
winget install Schniz.fnm

# run any post-install shell setup scripts
# based on https://github.com/Schniz/fnm?#shell-setup

# assuming we are using zsh
echo 'eval "$(fnm env --use-on-cd --shell zsh)"' >> ~/.zshrc
# you can tell what shell you're using by running:
echo $0

# verify fnm installation
fnm --version

# get npm & node, and verify npm installation
fnm install lst/iron && npm --version

# install pm2 and verify installation
npm install -g pm2 && pm2 --version
  1. Install Docker & Docker Compose

# for linux, a convenience script is available
./dojo/scripts/setup/install_docker.sh

# verify both docker and docker compose are installed
docker --version
docker compose version
  1. Create your wallets if they aren't created yet

# run btcli
make btcli
# create your wallets
btcli wallet new_coldkey
btcli wallet new_hotkey
  1. Get some TAO and ensure you have enough TAO to cover the registration cost

# for mainnet, check netuid 52
btcli s list 
# for testnet, check netuid 98
btcli s list --subtensor.network test
# output from the `btcli s list ...` command
NETUID    N    MAX_N   EMISSION  TEMPO  RECYCLE        POW       SUDO
 0      128   128.00   0.00%     10    τ1.00000     10.00 M     5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM
...
 98     17    256.00   0.00%     360   τ0.00001  18446744.07 T  5GTAfh3YTcokxWdGc3DgLV5y3hHB4Bs5PQGqw9fEn1WrcwWP
...

Note

the "RECYCLE" column represents the subnet registration cost

  1. Register to our subnet

# run the dockerized btcli
make btcli
# register your wallet to our subnet
# for mainnet
btcli s register --wallet.name coldkey --wallet.hotkey hotkey --netuid 52 --subtensor.network finney
# for testnet
btcli s register --wallet.name coldkey --wallet.hotkey hotkey --netuid 98 --subtensor.network test

Mining

There are currently 2 options when mining, where Option 1 is to connect to our centralized backend, and Option 2 is to self-host the full-stack worker platform application.

Option 1: Centralised Method

  1. Create .env file with the following values first.

# copy .env.miner.example
cp .env.miner.example .env

# ENV's that needs to be filled for miners:

# for mainnet
DOJO_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"

DOJO_API_KEY= # blank for now
WALLET_COLDKEY=# the name of the coldkey
WALLET_HOTKEY=# the name of the hotkey
AXON_PORT=8888 # port to serve requests over the public network for validators to call
make dojo-cli

# remember to use tab completions to see list of commands
# authenticate and generate keys
authenticate
api_key generate
subscription_key generate

# list all keys
api_key list
subscription_key list
  1. Complete the .env file with the variables below:

DOJO_API_KEY=# api key from step 2.
  1. Start the miner by running the following commands:

# for mainnet
make miner-centralised network=mainnet
# for testnet
make miner-centralised network=testnet

Option 2: Decentralised Method

  1. Create .env file with the following values first.

# copy .env.miner.example
cp .env.miner.example .env

# env vars that needs to be filled for miners:
DOJO_API_BASE_URL="http://worker-api:8080" # use this value
DOJO_API_KEY=# blank for now
WALLET_COLDKEY=# the name of the coldkey
WALLET_HOTKEY=# the name of the hotkey
AXON_PORT=8888 # port to serve requests over the public network for validators to call

# for dojo-ui
NEXT_PUBLIC_BACKEND_URL=http://localhost:3000

# for dojo-worker-api
REDIS_USERNAME=
REDIS_PASSWORD=

# postgres details
DB_HOST=postgres-miner:5432 # use this value
DB_NAME=db
DB_USERNAME=
DB_PASSWORD=
DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}/${DB_NAME}

# aws credentials for S3
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_S3_BUCKET_NAME=
S3_PUBLIC_URL=

JWT_SECRET=# generate a random JWT key
ETHEREUM_NODE=# get an ethereum endpoint URL from Infura
  1. Start the worker api which will be connected to the CLI later.

make miner-worker-api
make dojo-cli
  1. Grab the API key and add it to your .env file

DOJO_API_KEY=# api key from earlier
  1. Now, run the full miner service.

# for mainnet
make miner-decentralised network=mainnet
# for testnet
make miner-decentralised network=testnet

# read miner logs using the following:
# for mainnet
make miner-decentralised-logs network=mainnet
# for testnet
make miner-decentralised-logs network=testnet

For Docker installation, see for instructions

For Docker Compose installation, see for instructions

Run the CLI to retrieve API Key and Subscription Key, see for usage.

Run the CLI to retrieve API Key and Subscription Key, see for usage.

fnm
Docker
Docker Compose
https://docs.docker.com/engine/install/
https://docs.docker.com/compose/install/linux
Dojo CLI
Dojo CLI