This guide helps you set up and test the cryptonote-nodejs-pool locally for Conceal (CCX) mining.
- Conceal Daemon - Running on
127.0.0.1:16000 - Conceal Wallet RPC - Running on
127.0.0.1:16001 - Redis - Running on
127.0.0.1:6379 - Node.js - v18.0+ (already installed)
cp config.json.template config.jsonRequired changes:
poolServer.poolAddress: Replace with your actual Conceal wallet address (must start withccxand be 98 characters)api.password: Change fromchange_this_passwordto a secure passworddaemon.port: Update if your daemon uses a different port (default: 16000)wallet.port: Update if your wallet RPC uses a different port (default: 16001)
Example Conceal address format:
ccx7YourConcealWalletAddressHere123456789012345678901234567890123456789012345678901234567890123456789012
Redis:
Redis is required for the pool to store miner data, shares, and statistics. You can run it locally for testing.
Install Redis (if not installed):
# Ubuntu/Debian
sudo apt update
sudo apt install redis-server
# Or use the official PPA (recommended for latest version)
sudo add-apt-repository ppa:chris-lea/redis-server
sudo apt update
sudo apt install redis-serverRun Redis locally for testing:
Option 1: Run Redis in foreground (for testing):
# Start Redis server (runs in foreground, press Ctrl+C to stop)
redis-server
# Or with custom config (no persistence, faster for testing)
redis-server --port 6379 --save "" --appendonly noOption 2: Run Redis as a service:
# Start Redis service
sudo systemctl start redis
# Enable Redis to start on boot (optional)
sudo systemctl enable redis
# Check Redis status
sudo systemctl status redisOption 3: Run Redis in Docker (if you prefer containers):
docker run -d --name redis-test -p 6379:6379 redis:7-alpineVerify Redis is running:
# Test Redis connection
redis-cli ping
# Should return: PONG
# If you get "Address already in use" error, Redis is already running!
# Just verify it works:
redis-cli ping
# Check Redis info
redis-cli info server | head -5
# Check which Redis process is running
ps aux | grep redis-server
# Or use the test script
node scripts/test-redis.jsQuick Redis test:
# Set a test value
redis-cli set test "hello"
# Get the value
redis-cli get test
# Should return: "hello"
# Clean up test
redis-cli del testConceal Daemon:
# Start your Conceal daemon (conceald)
# Make sure it's running on 127.0.0.1:16000Conceal Wallet RPC:
# Start your Conceal wallet RPC
# Make sure it's running on 127.0.0.1:16001node init.jsOr start specific modules:
# Pool server only
node init.js -module=pool
# API only
node init.js -module=api
# All modules (default)
node init.jsCheck API:
curl http://localhost:8117/statsConnect a miner:
- Host:
localhost - Port:
3333(low difficulty),4444(medium), or5555(high) - Username: Your Conceal wallet address
- Password: Worker name (optional)
Example miner config (XMRig):
{
"pools": [{
"url": "localhost:3333",
"user": "ccx7YourConcealWalletAddressHere...",
"pass": "worker1",
"keepalive": true
}]
}- Algorithm:
cryptonight - Variant:
3(CryptoNight-GPU) - Required for Conceal block v7 - Blob Type:
0(Cryptonote) - Coin Units:
1000000000000(12 decimals) - Address Prefix:
6(for integrated addresses)
Redis issues:
# Quick test using the provided script
node scripts/test-redis.js
# Or manually check if Redis is running
redis-cli ping
# Should return: PONG
# If Redis is not running, start it:
redis-server
# Check Redis is listening on correct port
netstat -tlnp | grep 6379
# Or: ss -tlnp | grep 6379
# Test Redis connection from Node.js
node -e "const redis = require('redis'); const client = redis.createClient(); client.connect().then(() => { console.log('Redis connected!'); client.quit(); }).catch(err => console.error('Redis error:', err));"Daemon issues:
# Check daemon is accessible
curl http://127.0.0.1:16000/json_rpc -d '{"method":"getblockcount"}'
# Check daemon is listening
netstat -tlnp | grep 16000Wallet RPC issues:
# Check wallet is accessible
curl http://127.0.0.1:16001/json_rpc -d '{"method":"getbalance"}'
# Check wallet is listening
netstat -tlnp | grep 16001- Verify your wallet address is correct (98 characters, starts with
ccx) - Check miner is using correct algorithm variant (3 for Conceal)
- Review logs in
logs/directory
- Check API is enabled in config:
"api.enabled": true - Verify port 8117 is not blocked by firewall
- Check logs for errors
- Redis is running
- Conceal daemon is running and synced
- Conceal wallet RPC is running
-
config.jsonis properly configured - Pool starts without errors
- API responds at
http://localhost:8117/stats - Miner can connect to pool
- Shares are being accepted
- Stats update in API
Once local testing is successful:
- Update
poolHostto your actual domain - Configure SSL certificates if needed
- Set up proper firewall rules
- Configure email/Telegram notifications
- Set up monitoring and logging