Vana DLP Setup Guide
Setting Up Your Environment
This guide will walk you through setting up the necessary tools and environment for either creating a DLP (Data Liquidity Pool) or joining one as a validator.
Requirements
For all participants:
- Git
- Python 3.11+
- Poetry
- Metamask or any EVM-compatible wallet
Additional requirements for DLP creators:
- Node.js and npm
Step 1: Install Python 3.11
Start by ensuring your Python version is 3.11 or higher. Install it using the following steps:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11 python3.11-venv python3.11-dev
python3.11 --version
Step 2: Install Poetry
Poetry is required for managing project dependencies. To install:
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bash_profile
source $HOME/.bash_profile
poetry --version
Step 3: Install Node.js & npm
To manage Node.js versions, install nvm (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
echo 'export NVM_DIR="$HOME/.nvm"' >> $HOME/.bash_profile
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $HOME/.bash_profile
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> $HOME/.bash_profile
source $HOME/.bash_profile
nvm install --lts
Verify installation:
node -v
npm -v
Initial Setup
Step 1: Clone the Vana DLP Git Repository
First, get a copy of the Vana DLP ChatGPT repository:
git clone https://github.com/vana-com/vana-dlp-chatgpt.git
cd vana-dlp-chatgpt
Step 2: Install Dependencies
Next, install the necessary dependencies using Poetry:
poetry install
Step 3: Install Vana CLI
To interact with Vana, install the command-line tool:
pip install vana
Step 4: Create Wallet
Generate your wallet for DLP participation:
vanacli wallet create --wallet.name default --wallet.hotkey default
This will generate two key pairs:
- Coldkey: for manually managed actions (like staking).
- Hotkey: for validator-related operations (like submitting scores). Add Satori Testnet to Metamask:
- Network name: Satori Testnet
- RPC URL:
https://rpc.satori.vana.org
- Chain ID:
14801
- Currency: VANA
Step 5: Export Private Keys
Secure your keys by exporting them:
# Coldkey
vanacli wallet export_private_key
# Hotkey
vanacli wallet export_private_key
Import these keys into Metamask.
Step 6: Fund Wallet
Use the VANA faucet to request testnet tokens for both your coldkey and hotkey addresses. Creating a DLP Generate Encryption Keys Generate RSA key pairs for file encryption and decryption:
./keygen.sh
This will prompt you for personal details and generate key files. Deploy Smart Contracts First, clone the DLP smart contract repository:
cd $HOME
git clone https://github.com/vana-com/vana-dlp-smart-contracts.git
cd vana-dlp-smart-contracts
Install Yarn and the contract dependencies:
npm install -g yarn
yarn install
Update the .env
file with your information, then deploy the contracts:
cp .env.example .env
nano .env
npx hardhat deploy --network satori --tags DLPDeploy
Contract Verification Verify the deployed contracts:
npx hardhat verify --network satori <DataLiquidityPool address>
npx hardhat verify --network satori <DataLiquidityPoolToken address> "<DLP_TOKEN_NAME>" <DLP_TOKEN_SYMBOL> <OWNER_ADDRESS>
Configure the DLP Contract
Go to your contract's proxy page on the Satori explorer and perform the following actions:
1. Set updateFileRewardDelay
to 0
.
2. Call addRewardsForContributors
with 1000000000000000000000000
(1 million tokens).
Validator Setup
Step 1: Fund Your Validator
If you're the DLP creator, send your DLP tokens to your coldkey and hotkey addresses. If you're joining, request tokens from the DLP creator.
Step 2: Register Validator
Run the following commands to register your validator:
./vanacli dlp register_validator --stake_amount 10
./vanacli dlp approve_validator --validator_address=<your hotkey address>
Step 3: Run the Validator
To start the validator process:
poetry run python -m chatgpt.nodes.validator
For continuous background execution, use systemd:
echo $(which poetry)
sudo tee /etc/systemd/system/vana.service << EOF
[Unit]
Description=Vana Validator Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/vana-dlp-chatgpt
ExecStart=/root/.local/bin/poetry run python -m chatgpt.nodes.validator
Restart=on-failure
RestartSec=10
Environment=PATH=/root/.local/bin:/usr/local/bin:/usr/bin:/bin:/root/vana-dlp-chatgpt/myenv/bin
Environment=PYTHONPATH=/root/vana-dlp-chatgpt
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable vana.service
sudo systemctl start vana.service
sudo systemctl status vana.service
Check logs:
sudo journalctl -u vana.service -f