82 lines
2.7 KiB
Bash
82 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
# Remote Solo Mining Script for RinCoin
|
|
# Connects to RinCoin node over network/RPC
|
|
|
|
# Configuration
|
|
RPC_HOST="127.0.0.1" # Change to your server IP for remote access
|
|
RPC_PORT="9556"
|
|
RPC_USER="rinrpc"
|
|
RPC_PASS="745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90"
|
|
|
|
echo "=== Remote RinCoin Solo Mining Setup ==="
|
|
echo "RPC Host: $RPC_HOST:$RPC_PORT"
|
|
echo ""
|
|
|
|
# Test RPC connection
|
|
echo "Testing RPC connection..."
|
|
RPC_RESPONSE=$(curl -s --user "$RPC_USER:$RPC_PASS" \
|
|
-H 'content-type: text/plain' \
|
|
--data '{"jsonrpc":"1.0","id":"curl","method":"getblockchaininfo","params":[]}' \
|
|
"http://$RPC_HOST:$RPC_PORT/")
|
|
|
|
if [[ $RPC_RESPONSE == *"error"* ]]; then
|
|
echo "❌ Error: Could not connect to RinCoin RPC!"
|
|
echo "Response: $RPC_RESPONSE"
|
|
echo ""
|
|
echo "Check:"
|
|
echo "1. RinCoin node is running"
|
|
echo "2. RPC port $RPC_PORT is accessible"
|
|
echo "3. Firewall allows connections to port $RPC_PORT"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ RPC connection successful!"
|
|
echo ""
|
|
|
|
# Get wallet address via RPC
|
|
echo "Getting wallet address..."
|
|
WALLET_RESPONSE=$(curl -s --user "$RPC_USER:$RPC_PASS" \
|
|
-H 'content-type: text/plain' \
|
|
--data '{"jsonrpc":"1.0","id":"curl","method":"getnewaddress","params":[]}' \
|
|
"http://$RPC_HOST:$RPC_PORT/")
|
|
|
|
RIN_ADDRESS=$(echo "$WALLET_RESPONSE" | grep -o '"result":"[^"]*"' | cut -d'"' -f4)
|
|
|
|
if [ -z "$RIN_ADDRESS" ]; then
|
|
echo "❌ Error: Could not get RinCoin address!"
|
|
echo "Response: $WALLET_RESPONSE"
|
|
echo ""
|
|
echo "Make sure wallet 'main' exists:"
|
|
echo "curl --user $RPC_USER:$RPC_PASS -H 'content-type: text/plain' --data '{\"jsonrpc\":\"1.0\",\"id\":\"curl\",\"method\":\"createwallet\",\"params\":[\"main\"]}' http://$RPC_HOST:$RPC_PORT/"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ RinCoin Address: $RIN_ADDRESS"
|
|
echo ""
|
|
|
|
# Check node sync status
|
|
SYNC_RESPONSE=$(curl -s --user "$RPC_USER:$RPC_PASS" \
|
|
-H 'content-type: text/plain' \
|
|
--data '{"jsonrpc":"1.0","id":"curl","method":"getblockchaininfo","params":[]}' \
|
|
"http://$RPC_HOST:$RPC_PORT/")
|
|
|
|
SYNC_STATUS=$(echo "$SYNC_RESPONSE" | grep -o '"initialblockdownload":[^,]*' | cut -d':' -f2 | tr -d ' ')
|
|
|
|
if [ "$SYNC_STATUS" = "true" ]; then
|
|
echo "⚠️ WARNING: Node is still syncing (initialblockdownload: true)"
|
|
echo "Solo mining may not work properly until sync is complete."
|
|
echo ""
|
|
fi
|
|
|
|
echo "Starting remote solo mining with cpuminer-opt-rin..."
|
|
echo "Algorithm: rinhash"
|
|
echo "Target: RinCoin node at $RPC_HOST:9555"
|
|
echo "Wallet: $RIN_ADDRESS"
|
|
echo ""
|
|
echo "Press Ctrl+C to stop mining"
|
|
echo ""
|
|
|
|
# Start solo mining (connect to P2P port, not RPC)
|
|
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://$RPC_HOST:9555 -u $RIN_ADDRESS -p x -t 32"
|