Files
scripts/MINE/rin
2025-09-02 13:50:08 +03:00
..
2025-09-02 13:50:08 +03:00
2025-09-02 13:50:08 +03:00
2025-09-02 09:55:24 +03:00
2025-09-02 09:55:24 +03:00
2025-09-02 13:50:08 +03:00
2025-09-02 13:50:08 +03:00
2025-09-02 09:55:24 +03:00
2025-09-02 11:21:34 +03:00
2025-09-02 09:55:24 +03:00
2025-09-02 09:55:24 +03:00
2025-09-02 09:55:24 +03:00
2025-09-02 12:19:49 +03:00
2025-09-02 13:50:08 +03:00
2025-09-02 12:04:28 +03:00

RinCoin Mining Setup Complete! 🎉

🎯 Choose Your Mining Strategy:

Option 1: Solo Mining (Single Miner, All Rewards to You)

# Start solo mining proxy
./MINE/rin/start_stratum_proxy.sh

# Run your miner
./cpuminer -a rinhash -o stratum+tcp://127.0.0.1:3333 -u user -p pass -t 28

Result: 100% of block rewards go to your wallet

Option 2: Mining Pool (Multiple Miners, Distributed Rewards)

# Start mining pool
./MINE/rin/start_mining_pool.sh

# Miners connect with their RinCoin addresses:
# Option 1: Address as username
./cpuminer -a rinhash -o stratum+tcp://YOUR_IP:3333 -u rin1qahvvv9d5f3443wtckeqavwp9950wacxfmwv20q -p x

# Option 2: Address.workername format
./cpuminer -a rinhash -o stratum+tcp://YOUR_IP:3333 -u rin1qahvvv9d5f3443wtckeqavwp9950wacxfmwv20q.worker1 -p x

# Option 3: Traditional username (rewards to pool address)
./cpuminer -a rinhash -o stratum+tcp://192.168.0.188:3333 -u username.workername -p x -t 4

Result: Block rewards distributed among all miners based on shares

Key Differences:

Feature Solo Mining (stratum_proxy) Mining Pool (stratum_pool)
Rewards 100% to you Distributed among miners
Miners Single Multiple
Setup Simple More complex
Consistency Rare big payouts Regular small payments
Risk High variance Lower variance
Public No Yes, can be published

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: FULLY SYNCED (blocks: 228,082, headers: 228,082)

2. Wallet Setup

  • Wallet Name: main
  • Default 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 Mining:

# 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"
# Start mining with your RinCoin address (rewards go to this address!)
./MINE/rin/start_mining_with_address.sh rin1qahvvv9d5f3443wtckeqavwp9950wacxfmwv20q 28

# Or use the default address
./MINE/rin/start_mining_with_address.sh

Manual Solo Mining Setup (Stratum Proxy)

# 1. Start Stratum proxy (solo mining)
./MINE/rin/start_stratum_proxy.sh

# 2. In another terminal, connect cpuminer-opt-rin
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://172.17.0.1:3333 -u user -p pass -t 28"

Built-in Core Mining (Low Performance)

# Solo mining with built-in RinCoin core (not recommended)
bash MINE/rin/solo_mining_core.sh -t 28

Why cpuminer-opt-rin Can't Mine Directly to Node

# This command will fail:
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o http://127.0.0.1:9556 -u rinrpc -p 745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90 -t 28 --coinbase-addr=bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j"

# Reason: Protocol mismatch
# - cpuminer-opt-rin uses Stratum protocol (for mining pools)
# - RinCoin node uses RPC protocol (for direct mining)
# - No built-in protocol conversion available

Direct CPU Mining Setup (Solo Mining - No Container Needed)

# 1. Start stratum proxy (solo mining)
./MINE/rin/start_stratum_proxy.sh

# OR run in background with logging
nohup python3 MINE/rin/stratum_proxy.py > stratum_proxy.log 2>&1 &

# 2. Run cpuminer directly on host
/home/db/Downloads/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://127.0.0.1:3333 -u user -p pass -t 28

# 3. Clean up when done
./MINE/rin/kill_stratum_proxy.sh

Mining Options Explained

  1. Built-in Core Mining: Uses RinCoin's generatetoaddress RPC command (low performance)
  2. Pool Mining: Uses cpuminer-opt-rin with Stratum pools (Zergpool) - consistent rewards
  3. Direct RPC Mining: Would require custom miner implementing getblocktemplate
  4. Solo Mining (Stratum Proxy): Uses Stratum proxy to bridge cpuminer-opt-rin to RinCoin node - all rewards to you
  5. Mining Pool (Stratum Pool): Distributes block rewards among multiple miners - share-based rewards

🏊‍♂️ Mining Pool Setup (Multiple Miners)

Your Stratum proxy can be enhanced to work as a full mining pool that distributes block rewards among multiple miners!

Pool Features:

  • Multiple Miner Support: Unlimited miners can connect
  • Share-Based Rewards: Rewards distributed based on share contributions
  • Pool Fee: 1% fee for pool maintenance
  • Real-Time Statistics: Web dashboard with live stats
  • Block Reward Distribution: Automatic distribution when blocks are found

Quick Start Pool:

# 1. Start the mining pool
./MINE/rin/start_mining_pool.sh

# 2. Miners connect with:
./cpuminer -a rinhash -o stratum+tcp://YOUR_IP:3333 -u username.workername -p x

Pool vs Solo Mining:

Feature Solo Mining Mining Pool
Block Rewards 100% to you Distributed among miners
Consistency Rare blocks Regular small payments
Setup Simple More complex
Miners Single Multiple
Risk High variance Lower variance

Publishing Your Pool:

1. Public IP Setup:

# Get your public IP
curl ifconfig.me

# Configure firewall (if needed)
sudo ufw allow 3333/tcp
sudo ufw allow 8080/tcp  # Web interface

2. Pool Connection String:

stratum+tcp://YOUR_PUBLIC_IP:3333

3. Web Dashboard:

  • URL: http://YOUR_PUBLIC_IP:8080
  • Features: Real-time stats, miner rankings, block history

4. Pool Announcement:

Share your pool details:

  • Algorithm: RinHash
  • Port: 3333
  • Fee: 1%
  • Payout: Automatic distribution
  • Web: http://YOUR_PUBLIC_IP:8080

Pool Configuration:

# Edit MINE/rin/stratum_pool.py
pool_address = 'rin1qahvvv9d5f3443wtckeqavwp9950wacxfmwv20q'  # Pool wallet
pool_fee_percent = 1.0  # Pool fee percentage

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

# 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 Built-in CPU Local Node Working
GPU Mining Equihash 125,4 28.8 Sol/s Zergpool Working

🔧 Management Commands:

Node Management

# 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

# 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

RPC Access

# Test RPC connection
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 new address via RPC
curl --user rinrpc:745ce784d5d537fc06105a1b935b7657903cfc71a5fb3b90 \
  -H 'content-type: text/plain' \
  --data '{"jsonrpc":"1.0","id":"curl","method":"getnewaddress","params":[]}' \
  http://127.0.0.1:9556/

⚠️ Important Notes:

  1. Node Sync: COMPLETE - Node is fully synced and ready
  2. Solo Mining: Very low chance of finding blocks solo. Consider pool mining for consistent rewards.
  3. RPC Access: WORKING - RPC is accessible on port 9556
  4. Address Parameter: Solo mining script accepts custom addresses or uses default
  5. Block Rewards: When solo mining, ALL block rewards go to your specified RinCoin address

🛠️ Troubleshooting:

Port 3333 Already in Use

# Check what's using the port
sudo netstat -tlnp | grep :3333

# Kill existing processes
./MINE/rin/kill_stratum_proxy.sh

# Or manually kill
sudo lsof -ti:3333 | xargs sudo kill -9

Container Can't Connect to Proxy

# Use Docker gateway IP instead of localhost
sudo docker exec -it amd-strix-halo-llama-rocm bash -c "/mnt/dl/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://172.17.0.1:3333 -u user -p pass -t 28"

Check Proxy Logs

# View real-time logs
tail -f stratum_proxy.log

# Check if proxy is running
ps aux | grep stratum_proxy

🎯 Next Steps:

  1. Node is synced - Ready for all operations
  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