This guide will help you set up your randomness provider node and start earning rewards. The guide is split into a simple quickstart section followed by more detailed technical information.
- Quickstart Guide
- How It Works
- Hardware Requirements
- Detailed Setup Instructions
- Maintenance
- Graceful Shutdown
- Troubleshooting
- Frequently Asked Questions
Setting up your randomness provider is easy! Just follow these simple steps:
Install Docker and Docker Compose by following the official Docker Compose installation guide for your operating system.
- Navigate to the Docker Compose directory
- Copy the example environment file:
cp .env.example .env
- Edit the
.env
file and add your wallet information
Run this command to start your provider:
docker-compose up -d
- Navigate to ar://randao
- Connect your wallet
- Follow the staking instructions to activate your provider
That's it! Your node is now running and will start generating randomness for the network.
Need help? Check the Troubleshooting section or Frequently Asked Questions below.
Your provider performs 3 main functions:
- It creates and stores random values that others can request
- It responds when someone requests a random value
- It submits final verified random values to the blockchain
The better your provider performs these functions, the more rewards you'll receive. Providers with faster response times earn more!
To run a node, you'll need:
- At least 4 GB memory
- At least 2 CPU cores
- Reliable internet connection
Note: These requirements may increase over time as the network grows.
- A machine meeting the minimum hardware requirements
- Docker and Docker Compose installed
- Reliable internet connection
- Ability to ensure 100% uptime or follow the Graceful Shutdown procedures
-
Configure Environment Variables Navigate to the Docker Compose directory and create your environment file:
cp .env.example .env
Then edit the
.env
file and fill in all required variables:Required Variables:
provider_id
: Your unique provider identifierlocal_db_user
: Database usernamelocal_db_password
: Database passwordlocal_wallet_json
: Your wallet information (either directly pasted or as a file path)
Optional Variables (with defaults):
db_name
: Database name (default: orchestrator_db)secrets_prefix
: Prefix for secrets (default: /orchestrator)
-
Deploy Your Provider From the Docker Compose directory, run:
docker-compose up -d
-
Verify Deployment Check the status of your containers:
docker-compose ps
View logs to ensure everything is running correctly:
docker-compose logs -f
-
Staking After successfully setting up your node:
- Show logs from the node setup to Ethan for verification
- Upon confirmation, Ethan will provide your provider address with the necessary funds
- Navigate to ar://randao to stake your funds and configure your provider information
By completing this process, you will fully activate your node and ensure it is ready for network participation.
To update your provider when new versions are released:
docker-compose pull
docker-compose down
docker-compose up -d
Remember to follow the graceful shutdown procedure when performing maintenance to avoid penalties.
If you need to perform maintenance or temporarily shut down your provider, it's critical to follow these steps to avoid being penalized:
- Go to ar://randao
- Navigate to your node
- Select the "SHUT DOWN" button and sign the transaction
- Wait for your provider to complete all pending requests (check logs)
- Once all pending requests are complete, you can safely shut down your provider
After maintenance is complete and your provider is back online:
- Click the "START UP" button
- This will signal your provider to resume serving random values
Warning: Failing to follow the graceful shutdown procedure may result in penalties to your stake!
If you encounter issues with your provider, here are some common problems and solutions:
- Ensure your provider is properly staked at ar://randao
- Wait for blockchain confirmation (it may take some time for your stake to be recognized)
- Check your wallet configuration in the
.env
file
- If your provider can't connect to the network, check your internet connection
- Check your firewall settings to ensure the required ports are open
- Wait for network conditions to improve before attempting to restart
- Check system resources to ensure your host has sufficient CPU and memory
- Monitor the logs for any error messages or warnings:
docker-compose logs -f
- If the puzzle generator is struggling, consider scaling up your hardware
- Try restarting the containers:
docker-compose restart
- For more persistent issues, you can try a full reset:
docker-compose down docker-compose up -d
- Ensure your container has the latest version:
docker-compose pull docker-compose down docker-compose up -d
- If the database container fails to start, check logs for specific errors:
docker-compose logs db
- Ensure the database password in your
.env
file doesn't contain special characters that need escaping - Verify database volume permissions if running on Linux
A randomness provider generates verifiable random numbers that are used in various decentralized applications on the blockchain. These random numbers are crucial for fair and transparent operation of many applications.
You earn rewards by providing random values to users who request them. The rewards depend on your provider's performance, reliability, and response time.
If your provider goes offline without following the graceful shutdown procedure, you may be penalized (slashed). Always follow the Graceful Shutdown procedure before taking your provider offline.
Earnings depend on network demand, your provider's performance, and the amount you have staked. Better-performing providers with higher stakes tend to earn more.
Yes, you can run multiple providers. Each provider needs its own unique wallet and must be staked separately.
While the minimum requirements are 4GB RAM and 2 CPU cores, we recommend at least 8GB RAM and 4 CPU cores for optimal performance.
Basic familiarity with command line operations and Docker is helpful, but the quickstart guide is designed to be accessible even to those with limited technical experience.
Updates will be announced in the community channels. We recommend keeping your provider updated to the latest version for optimal performance and security.
Thank you for contributing to the network's success!