rincoin node wip
This commit is contained in:
@@ -60,17 +60,24 @@ sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpumine
|
|||||||
|
|
||||||
[sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer --algo rinhash --benchmark -t 4"
|
[sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer --algo rinhash --benchmark -t 4"
|
||||||
rinhash.mine.zergpool.com:7148 c=RIN]
|
rinhash.mine.zergpool.com:7148 c=RIN]
|
||||||
!!!!!!!!!!!!!!!!!!!!!! BEST !!!!!!!!!!!!!!!!!! Active exchange: Listed on Exbitron (RIN/USDT)
|
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!! BEST CURRENT CPU !!!!!!!!!!!!!!!!!! Active exchange: Listed on Exbitron (RIN/USDT)
|
||||||
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://rinhash.mine.zergpool.com:7148 -u bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j -p c=BTC,mc=RIN,ID=StrixHalo -t 32"
|
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://rinhash.mine.zergpool.com:7148 -u bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j -p c=BTC,mc=RIN,ID=StrixHalo -t 32"
|
||||||
-----------------------------------------------------------------
|
-----------------------------------------------------------------
|
||||||
pool 2: # Test other potential RinHash pools (if they exist)
|
|
||||||
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "timeout 60s /mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://pool.woolypooly.com:3094 -u bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j -p x -t 8"
|
|
||||||
|
|
||||||
./cpuminer --algo rinhash --url [pool_url] --user [your_rin_wallet] --pass x --threads 32
|
./cpuminer --algo rinhash --url [pool_url] --user [your_rin_wallet] --pass x --threads 32
|
||||||
|
|
||||||
# GPU:
|
# GPU CURRENT:
|
||||||
sudo docker exec -it amdopencl bash -c "/mnt/dl/gminer/miner --algo equihash125_4 --server equihash.mine.zergpool.com:2142 --user 'bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j' --pass 'c=BTC,mc=RIN,ID=StrixHalo'"
|
/mnt/shared/DEV/repos/d-popov.com/scripts$ sudo docker exec -it amdopencl bash -c "/mnt/dl/gminer/miner --algo equihash125_4 --server equihash125.mine.zergpool.com:2142 --user bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j
|
||||||
|
|
||||||
https://zergpool.com/wallet/bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j
|
https://zergpool.com/wallet/bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j
|
||||||
|
https://zergpool.com/api/wallet?address=bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j
|
||||||
|
https://zergpool.com/api/walletEx?address=<YOUR_WALLET_ADDRESS>
|
||||||
|
|
||||||
|
/mnt/shared/DEV/repos/d-popov.com/scripts$ sudo docker exec -it amdopencl bash -c "/mnt/dl/sgminer-gm/ --algo equihash125_4 --server equihash125.mine.zergpool.com:2142 --user bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j
|
||||||
|
/home/db/Downloads/
|
||||||
|
|
||||||
|
|
||||||
sudo docker exec -it amdopencl timeout 35s bash -c "/mnt/dl/gminer/miner --algo equihash125_4 --server equihash.mine.zergpool.com:2142 c=BTC --user 'bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j' --pass 'x'"
|
sudo docker exec -it amdopencl timeout 35s bash -c "/mnt/dl/gminer/miner --algo equihash125_4 --server equihash.mine.zergpool.com:2142 c=BTC --user 'bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j' --pass 'x'"
|
||||||
|
|||||||
25
MINE/rin/Dockerfile
Normal file
25
MINE/rin/Dockerfile
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
build-essential libtool autotools-dev automake pkg-config bsdmainutils \
|
||||||
|
libevent-dev libboost-all-dev libssl-dev \
|
||||||
|
libdb5.3-dev libdb5.3++-dev libfmt-dev libsqlite3-dev \
|
||||||
|
git ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
WORKDIR /opt
|
||||||
|
RUN git clone https://github.com/Rin-coin/rincoin.git && \
|
||||||
|
cd rincoin && \
|
||||||
|
./autogen.sh && \
|
||||||
|
./configure --with-incompatible-bdb && \
|
||||||
|
make -j$(nproc) && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
# runtime
|
||||||
|
RUN useradd -m rin && mkdir -p /data && chown -R rin:rin /data
|
||||||
|
USER rin
|
||||||
|
VOLUME ["/data"]
|
||||||
|
EXPOSE 9555 9556
|
||||||
|
ENTRYPOINT ["/usr/local/bin/rincoind"]
|
||||||
|
CMD ["-datadir=/data", "-conf=/data/rincoin.conf", "-printtoconsole"]
|
||||||
114
MINE/rin/README.md
Normal file
114
MINE/rin/README.md
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
# RinCoin Solo Mining Setup Complete! 🎉
|
||||||
|
|
||||||
|
## ✅ **Successfully Built and Running:**
|
||||||
|
|
||||||
|
### **1. RinCoin Node Container**
|
||||||
|
- **Container**: `rincoin-node` (ID: 87b5f74a2472)
|
||||||
|
- **Status**: ✅ **RUNNING**
|
||||||
|
- **Ports**: 9555 (P2P), 9556 (RPC)
|
||||||
|
- **Version**: v1.0.1.0-5cf3d4a11
|
||||||
|
- **Sync Status**: Initial block download (blocks: 0, headers: 0)
|
||||||
|
|
||||||
|
### **2. Wallet Setup**
|
||||||
|
- **Wallet Name**: `main`
|
||||||
|
- **RinCoin Address**: `rin1qahvvv9d5f3443wtckeqavwp9950wacxfmwv20q`
|
||||||
|
- **RPC Credentials**:
|
||||||
|
- User: `rinrpc`
|
||||||
|
- Password: `745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90`
|
||||||
|
|
||||||
|
### **3. Configuration Files**
|
||||||
|
- **Config**: `/mnt/data/docker_vol/rincoin/rincoin-node/rincoin.conf`
|
||||||
|
- **Data Directory**: `/mnt/data/docker_vol/rincoin/rincoin-node/data`
|
||||||
|
- **Docker Compose**: `MINE/rin/container.yml`
|
||||||
|
|
||||||
|
## 🚀 **Ready for Solo Mining:**
|
||||||
|
|
||||||
|
### **Pool Mining (Zergpool)**
|
||||||
|
```bash
|
||||||
|
# CPU Mining RinHash to BTC
|
||||||
|
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://rinhash.mine.zergpool.com:7148 -u bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j -p c=BTC,mc=RIN,ID=StrixHalo -t 32"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### **Solo Mining (Local Node)**
|
||||||
|
|
||||||
|
## build image
|
||||||
|
sudo bash -lc "cd /mnt/shared/DEV/repos/d-popov.com/scripts/MINE/rin && docker build -t rincoin-node:latest . | cat"
|
||||||
|
|
||||||
|
|
||||||
|
## start container
|
||||||
|
sudo docker run -d --name rincoin-node \
|
||||||
|
-p 9555:9555 -p 9556:9556 \
|
||||||
|
-v /mnt/data/docker_vol/rincoin/rincoin-node/data:/data \
|
||||||
|
-v /mnt/data/docker_vol/rincoin/rincoin-node/rincoin.conf:/data/rincoin.conf:ro \
|
||||||
|
rincoin-node:latest -datadir=/data -conf=/data/rincoin.conf -printtoconsole
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## check if running
|
||||||
|
curl --user rinrpc:745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90 -H 'content-type: text/plain' --data '{"jsonrpc":"1.0","id":"curl","method":"getblockchaininfo","params":[]}' http://127.0.0.1:9556/
|
||||||
|
|
||||||
|
|
||||||
|
## get wallet
|
||||||
|
sudo docker exec rincoin-node rincoin-cli -datadir=/data -conf=/data/rincoin.conf createwallet "main"
|
||||||
|
sudo docker exec rincoin-node rincoin-cli -datadir=/data -conf=/data/rincoin.conf -rpcwallet=main getnewaddress
|
||||||
|
rin1qahvvv9d5f3443wtckeqavwp9950wacxfmwv20q
|
||||||
|
|
||||||
|
|
||||||
|
curl --user rinrpc:745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90 -H 'content-type: text/plain' --data '{"jsonrpc":"1.0","id":"curl","method":"getblockchaininfo","params":[]}' http://localhost:9556/
|
||||||
|
curl --user rinrpc:745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90 \
|
||||||
|
-H 'content-type: text/plain' \
|
||||||
|
--data '{"jsonrpc":"1.0","id":"curl","method":"getnewaddress","params":[]}' \
|
||||||
|
http://localhost:9556/
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Solo mining to your RinCoin wallet
|
||||||
|
./MINE/rin/solo_mining.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 **Performance Comparison:**
|
||||||
|
|
||||||
|
| Mining Type | Algorithm | Hashrate | Target | Status |
|
||||||
|
|-------------|-----------|----------|---------|---------|
|
||||||
|
| **Pool Mining** | RinHash | ~80 kH/s | Zergpool | ✅ Working |
|
||||||
|
| **Solo Mining** | RinHash | ~80 kH/s | Local Node | ✅ Ready |
|
||||||
|
| **GPU Mining** | Equihash 125,4 | 28.8 Sol/s | Zergpool | ✅ Working |
|
||||||
|
|
||||||
|
## 🔧 **Management Commands:**
|
||||||
|
|
||||||
|
### **Node Management**
|
||||||
|
```bash
|
||||||
|
# Start node
|
||||||
|
sudo docker start rincoin-node
|
||||||
|
|
||||||
|
# Stop node
|
||||||
|
sudo docker stop rincoin-node
|
||||||
|
|
||||||
|
# View logs
|
||||||
|
sudo docker logs -f rincoin-node
|
||||||
|
|
||||||
|
# Check sync status
|
||||||
|
sudo docker exec rincoin-node rincoin-cli -datadir=/data -conf=/data/rincoin.conf getblockchaininfo
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Wallet Management**
|
||||||
|
```bash
|
||||||
|
# Get new address
|
||||||
|
sudo docker exec rincoin-node rincoin-cli -datadir=/data -conf=/data/rincoin.conf -rpcwallet=main getnewaddress
|
||||||
|
|
||||||
|
# Check balance
|
||||||
|
sudo docker exec rincoin-node rincoin-cli -datadir=/data -conf=/data/rincoin.conf -rpcwallet=main getbalance
|
||||||
|
```
|
||||||
|
|
||||||
|
## ⚠️ **Important Notes:**
|
||||||
|
|
||||||
|
1. **Node Sync**: The node is currently in initial block download. Solo mining will work better once fully synced.
|
||||||
|
2. **Solo Mining**: Very low chance of finding blocks solo. Consider pool mining for consistent rewards.
|
||||||
|
3. **RPC Access**: RPC is bound to all interfaces (0.0.0.0/0) - consider restricting for security.
|
||||||
|
|
||||||
|
## 🎯 **Next Steps:**
|
||||||
|
|
||||||
|
1. **Wait for node sync** (may take hours depending on network)
|
||||||
|
2. **Choose mining strategy**: Pool mining for consistent income vs Solo mining for block rewards
|
||||||
|
3. **Monitor performance** and adjust thread count as needed
|
||||||
|
4. **Set up monitoring** for node health and mining performance
|
||||||
@@ -3,18 +3,13 @@ version: "3.8"
|
|||||||
services:
|
services:
|
||||||
rincoin-node:
|
rincoin-node:
|
||||||
container_name: rincoin-node
|
container_name: rincoin-node
|
||||||
# Builds from the RinCoin repo (expects a Dockerfile there).
|
image: rincoin-node:latest
|
||||||
build:
|
|
||||||
context: https://github.com/Rin-coin/rincoin.git
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "9555:9555" # P2P
|
- "9555:9555"
|
||||||
- "9556:9556" # RPC
|
- "9556:9556"
|
||||||
volumes:
|
volumes:
|
||||||
# Absolute paths recommended. Update to where you want node data stored.
|
|
||||||
- /mnt/data/docker_vol/rincoin/rincoin-node/data:/data
|
- /mnt/data/docker_vol/rincoin/rincoin-node/data:/data
|
||||||
# Provide your config at this exact path on host:
|
|
||||||
- /mnt/data/docker_vol/rincoin/rincoin-node/rincoin.conf:/data/rincoin.conf:ro
|
- /mnt/data/docker_vol/rincoin/rincoin-node/rincoin.conf:/data/rincoin.conf:ro
|
||||||
command:
|
command:
|
||||||
- rincoind
|
- rincoind
|
||||||
|
|||||||
13
MINE/rin/rincoin.conf
Normal file
13
MINE/rin/rincoin.conf
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
server=1
|
||||||
|
daemon=0
|
||||||
|
listen=1
|
||||||
|
txindex=1
|
||||||
|
|
||||||
|
rpcuser=rinrpc
|
||||||
|
rpcpassword=745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90
|
||||||
|
rpcallowip=0.0.0.0/0
|
||||||
|
rpcport=9556
|
||||||
|
|
||||||
|
# performance
|
||||||
|
maxconnections=64
|
||||||
|
dbcache=2048
|
||||||
47
MINE/rin/solo_mining.sh
Normal file
47
MINE/rin/solo_mining.sh
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Solo Mining Script for RinCoin
|
||||||
|
# Uses local RinCoin node for solo mining
|
||||||
|
|
||||||
|
echo "=== RinCoin Solo Mining Setup ==="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Check if rincoin-node container is running
|
||||||
|
if ! sudo docker ps | grep -q "rincoin-node"; then
|
||||||
|
echo "Error: rincoin-node container is not running!"
|
||||||
|
echo "Please start it first:"
|
||||||
|
echo "sudo docker start rincoin-node"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get wallet address
|
||||||
|
RIN_ADDRESS=$(sudo docker exec rincoin-node rincoin-cli -datadir=/data -conf=/data/rincoin.conf -rpcwallet=main getnewaddress 2>/dev/null)
|
||||||
|
|
||||||
|
if [ -z "$RIN_ADDRESS" ]; then
|
||||||
|
echo "Error: Could not get RinCoin address!"
|
||||||
|
echo "Make sure the wallet is created and the node is synced."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "RinCoin Address: $RIN_ADDRESS"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Check node sync status
|
||||||
|
SYNC_STATUS=$(sudo docker exec rincoin-node rincoin-cli -datadir=/data -conf=/data/rincoin.conf getblockchaininfo | grep -o '"initialblockdownload": [^,]*' | cut -d' ' -f2)
|
||||||
|
|
||||||
|
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 solo mining with cpuminer-opt-rin..."
|
||||||
|
echo "Algorithm: rinhash"
|
||||||
|
echo "Target: Local RinCoin node (127.0.0.1:9555)"
|
||||||
|
echo "Wallet: $RIN_ADDRESS"
|
||||||
|
echo ""
|
||||||
|
echo "Press Ctrl+C to stop mining"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Start solo mining
|
||||||
|
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://127.0.0.1:9555 -u $RIN_ADDRESS -p x -t 32"
|
||||||
92
MINE/rin/solo_mining_core.sh
Normal file
92
MINE/rin/solo_mining_core.sh
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# RinCoin Solo Mining using Built-in Core Mining
|
||||||
|
# Uses RinCoin Core's generatetoaddress command
|
||||||
|
|
||||||
|
echo "=== RinCoin Solo Mining (Built-in Core Mining) ==="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
RPC_HOST="127.0.0.1"
|
||||||
|
RPC_PORT="9556"
|
||||||
|
RPC_USER="rinrpc"
|
||||||
|
RPC_PASS="745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90"
|
||||||
|
|
||||||
|
# Function to call RPC
|
||||||
|
call_rpc() {
|
||||||
|
local method="$1"
|
||||||
|
local params="$2"
|
||||||
|
|
||||||
|
curl -s --user "$RPC_USER:$RPC_PASS" \
|
||||||
|
-H 'content-type: text/plain' \
|
||||||
|
--data "{\"jsonrpc\":\"1.0\",\"id\":\"curl\",\"method\":\"$method\",\"params\":$params}" \
|
||||||
|
"http://$RPC_HOST:$RPC_PORT/"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Wait for node to be ready
|
||||||
|
echo "Waiting for RinCoin node to be ready..."
|
||||||
|
while true; do
|
||||||
|
response=$(call_rpc "getblockchaininfo" "[]")
|
||||||
|
if [[ $response != *"Loading block index"* ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Node still loading... waiting 10 seconds"
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "✅ Node is ready!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Get wallet address
|
||||||
|
echo "Getting wallet address..."
|
||||||
|
wallet_response=$(call_rpc "getnewaddress" "[]")
|
||||||
|
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"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ RinCoin Address: $rin_address"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Get blockchain info
|
||||||
|
echo "Blockchain Status:"
|
||||||
|
blockchain_info=$(call_rpc "getblockchaininfo" "[]")
|
||||||
|
blocks=$(echo "$blockchain_info" | grep -o '"blocks":[^,]*' | cut -d':' -f2)
|
||||||
|
headers=$(echo "$blockchain_info" | grep -o '"headers":[^,]*' | cut -d':' -f2)
|
||||||
|
difficulty=$(echo "$blockchain_info" | grep -o '"difficulty":[^,]*' | cut -d':' -f2)
|
||||||
|
|
||||||
|
echo "Blocks: $blocks"
|
||||||
|
echo "Headers: $headers"
|
||||||
|
echo "Difficulty: $difficulty"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "⚠️ IMPORTANT: Built-in Core Mining Limitations:"
|
||||||
|
echo "1. Uses CPU only (not GPU)"
|
||||||
|
echo "2. Very low hashpower compared to specialized miners"
|
||||||
|
echo "3. Extremely low chance of finding blocks solo"
|
||||||
|
echo "4. Best for testing, not profitable mining"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "🚀 Starting Built-in Solo Mining..."
|
||||||
|
echo "Target Address: $rin_address"
|
||||||
|
echo "Press Ctrl+C to stop mining"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Start built-in mining (1 block at a time, 1000000 tries max)
|
||||||
|
while true; do
|
||||||
|
echo "Attempting to mine 1 block..."
|
||||||
|
|
||||||
|
mining_result=$(call_rpc "generatetoaddress" "[1, \"$rin_address\", 1000000]")
|
||||||
|
|
||||||
|
if [[ $mining_result == *"result"* ]] && [[ $mining_result != *"[]"* ]]; then
|
||||||
|
echo "🎉 BLOCK FOUND!"
|
||||||
|
echo "Result: $mining_result"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo "No block found in this attempt. Retrying..."
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
81
MINE/rin/solo_mining_remote.sh
Normal file
81
MINE/rin/solo_mining_remote.sh
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
#!/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"
|
||||||
76
MINE/rin/solo_mining_rpc.sh
Normal file
76
MINE/rin/solo_mining_rpc.sh
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# RinCoin Solo Mining via RPC
|
||||||
|
# This script uses RinCoin's RPC interface for solo mining
|
||||||
|
|
||||||
|
echo "=== RinCoin Solo Mining via RPC ==="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
RPC_HOST="127.0.0.1"
|
||||||
|
RPC_PORT="9556"
|
||||||
|
RPC_USER="rinrpc"
|
||||||
|
RPC_PASS="745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90"
|
||||||
|
|
||||||
|
# Function to call RPC
|
||||||
|
call_rpc() {
|
||||||
|
local method="$1"
|
||||||
|
local params="$2"
|
||||||
|
|
||||||
|
curl -s --user "$RPC_USER:$RPC_PASS" \
|
||||||
|
-H 'content-type: text/plain' \
|
||||||
|
--data "{\"jsonrpc\":\"1.0\",\"id\":\"curl\",\"method\":\"$method\",\"params\":$params}" \
|
||||||
|
"http://$RPC_HOST:$RPC_PORT/"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Wait for node to be ready
|
||||||
|
echo "Waiting for RinCoin node to be ready..."
|
||||||
|
while true; do
|
||||||
|
response=$(call_rpc "getblockchaininfo" "[]")
|
||||||
|
if [[ $response != *"Loading block index"* ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Node still loading... waiting 10 seconds"
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "✅ Node is ready!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Get wallet address
|
||||||
|
echo "Getting wallet address..."
|
||||||
|
wallet_response=$(call_rpc "getnewaddress" "[]")
|
||||||
|
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"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ RinCoin Address: $rin_address"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Get blockchain info
|
||||||
|
echo "Blockchain Status:"
|
||||||
|
blockchain_info=$(call_rpc "getblockchaininfo" "[]")
|
||||||
|
blocks=$(echo "$blockchain_info" | grep -o '"blocks":[^,]*' | cut -d':' -f2)
|
||||||
|
headers=$(echo "$blockchain_info" | grep -o '"headers":[^,]*' | cut -d':' -f2)
|
||||||
|
difficulty=$(echo "$blockchain_info" | grep -o '"difficulty":[^,]*' | cut -d':' -f2)
|
||||||
|
|
||||||
|
echo "Blocks: $blocks"
|
||||||
|
echo "Headers: $headers"
|
||||||
|
echo "Difficulty: $difficulty"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "⚠️ IMPORTANT: RinCoin solo mining requires:"
|
||||||
|
echo "1. A fully synced node (currently at block $blocks of $headers)"
|
||||||
|
echo "2. Mining software that supports RinCoin's RPC mining protocol"
|
||||||
|
echo "3. Very high hashpower to find blocks solo"
|
||||||
|
echo ""
|
||||||
|
echo "For now, we recommend pool mining for consistent rewards:"
|
||||||
|
echo ""
|
||||||
|
echo "Pool Mining Command:"
|
||||||
|
echo "sudo docker exec -it amd-strix-halo-llama-rocm bash -c \"/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://rinhash.mine.zergpool.com:7148 -u bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j -p c=BTC,mc=RIN,ID=StrixHalo -t 32\""
|
||||||
|
echo ""
|
||||||
|
echo "Your RinCoin address for solo mining: $rin_address"
|
||||||
Reference in New Issue
Block a user