Verifiers
Last updated
Last updated
The Dexponent Verifier Client enables users to participate in the Dexponent network as a verifier. As a verifier, you'll validate farm performance data and contribute to network consensus on farm scores. Your participation helps maintain the integrity of yield farm data while earning you DXP tokens as rewards for your contribution to network security.
To run the Dexponent Verifier Client effectively, your machine should have at least 2 CPU cores, 4GB of RAM, and 20GB of SSD storage. We recommend 4+ CPU cores, 8GB RAM, and 50GB SSD for optimal performance. A stable internet connection with minimum 5 Mbps upload/download is necessary, though 10+ Mbps is preferable.
The client supports Linux (Ubuntu 20.04+), macOS (10.15+), and Windows 10/11. You'll need Go version 1.18 or higher and Git for downloading the source code.
This section will guide you through the installation of Dexponent’s Geth based verifier client along with Go lang which is required for running the client.
Before installing the Dexponent Verifier Client, you must have Go on your system.
For Ubuntu/Debian, run:
sudo apt update
sudo apt install golang-go
For macOS with Homebrew:
brew install go
For Windows, download the installer from . Then, verify your installation with:
go version
You can install the client using pre-built binaries or build from source.
Using pre-built binaries:
mkdir -p ~/dexponent
cd ~/dexponent
curl -L https://github.com/dexponent/dxp-verifier/releases/download/vX.Y.Z/dxp-verifier-$(uname -s)-$(uname -m).tar.gz -o dxp-verifier.tar.gz
tar -xzf dxp-verifier.tar.gz
chmod +x dxp-verifier
Building from source:
git clone https://github.com/dexponent/dxp-verifier.git
cd dxp-verifier
go build -o dxp-verifier cmd/verifier/main.go
chmod +x dxp-verifier
Create a .env file in the same directory as your verifier executable with the following content:
BASE_RPC_URL=https://sepolia.infura.io/v3/YOUR_API_KEY
DXP_CONTRACT_ADDRESS=0x8437ab3cCb485D2a3793F97f58c6e3F926039684
WALLET_PRIVATE_KEY=YOUR_PRIVATE_KEY_HERE
GAS_PRICE_MULTIPLIER=1.1
GAS_LIMIT=3000000
CHAIN_ID=11155111
You'll need an Infura API key to connect to the Ethereum network. Create an account at https://infura.io/, start a new project, select "Ethereum" as the network, and copy your project ID into the BASE_RPC_URL variable.
For your Ethereum wallet, install MetaMask or any other wallet provider, create a new wallet, and export the private key. Add this private key to your .env file without the '0x' prefix. Make sure to fund this wallet with ETH for gas fees and at least 100 DXP tokens for registration & staking.
Your verifier needs to communicate with other nodes in the network. The client uses a random TCP/UDP port for P2P communication, and optionally UDP port 5353 for local peer discovery.
Configure your router to enable UPnP if available, or set up port forwarding for the P2P port. Assigning a static IP to your verifier machine will improve connection stability.
Network configuration affects your ability to connect with peers. Full Cone NAT provides the best P2P connections, while Symmetric NAT will limit connectivity and require relay servers.
To operate as a verifier, you must stake a minimum of 100 DXP tokens. Acquire these tokens from a supported exchange and ensure they're in the wallet you've configured.
Register your wallet as a verifier with:
./dxp-verifier register
This command checks your DXP balance and stakes your tokens automatically upon registration. As a verifier, you'll earn rewards for participating in consensus rounds, but you risk losing part of your stake if you engage in malicious behavior or experience extended downtime.
Start your verifier with:
./dxp-verifier start [--block-polling-interval N] [--detached]
The block-polling-interval parameter sets how often (in seconds) the client checks for new blocks, with a default of 10 seconds. Use the detached flag to run in background mode.
Check your verifier status:
./dxp-verifier status
This shows your registration status, stake amount, pending rewards, current block, and connected peers.
View your pending rewards:
./dxp-verifier rewards
Claim your accumulated rewards:
./dxp-verifier claim
Stop your verifier client:
./dxp-verifier stop
Start by ensuring your environment is properly configured, with Go installed and your .env file set up. Verify that your wallet has sufficient DXP tokens and ETH for gas fees. Then follow these steps to get your verifier client up and running:
./dxp-verifier register
Wait for the registration transaction to be mined and once done, you will see that your client has successfully registered as a verifier in the terminal output. After that start your verifier.
./dxp-verifier start
You should see output indicating your Peer ID, listening addresses, and blockchain connection status. The console will show ongoing activity as your verifier connects to peers, participates in consensus rounds, calculates farm scores, and accumulates rewards.
The verifier outputs logs to the console by default. Save logs to a file by redirecting output:
./dxp-verifier start > verifier.log 2>&1
During farm score calculations, your verifier collects performance metrics including processing time, memory usage, CPU usage, and calculation count. These metrics appear in the console output during consensus rounds.
Maintain your verifier by checking for client updates regularly, monitoring your DXP balance and rewards, and ensuring your system has sufficient resources.
If you're not connecting to peers, check your internet connection, firewall settings, and NAT configuration. Try restarting the verifier if connections remain an issue.
For blockchain connection problems, verify your Infura API key and RPC URL in the .env file. Ensure the Sepolia testnet is operational.
If you're not participating in consensus, check that you have sufficient DXP tokens staked, verify your registration status, and make sure your system clock is synchronized.
Transaction failures usually stem from insufficient ETH for gas fees or issues with your private key. Adjust the gas price multiplier if transactions are processing slowly.
Never share your private key with anyone. Consider using environment variables and use a dedicated wallet for your verifier.
Keep your operating system and all software updated. Use a firewall to restrict access and consider running the verifier in a container or virtual machine for additional isolation.
For network security, use a VPN when possible, avoid running the verifier on public networks, and monitor for unusual network activity that might indicate attempted intrusions.