Files
scripts/MINE/rin/README.md
2025-09-02 11:21:34 +03:00

160 lines
5.7 KiB
Markdown

# 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**: ✅ **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 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)**
```bash
# Solo mining with default address and all cores
bash MINE/rin/solo_mining_core.sh
# Solo mining with custom address and thread count
bash MINE/rin/solo_mining_core.sh -a rin1qkeweeh2agurz5af3eullkvtl34kcmrwl2ytkvn -t 16
# Solo mining with 28 threads (like your cpuminer attempt)
bash MINE/rin/solo_mining_core.sh -t 28
```
### **Why cpuminer-opt-rin Can't Mine Directly to Node**
```bash
# 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
```
### ** we do not need a container for the cpu, so we can run it directly if we want**
1. we run stratum proxy
./MINE/rin/start_stratum_proxy.sh
2. we run the cpuminer
/home/db/Downloads/rinhash/cpuminer-opt-rin/cpuminer -a rinhash -o stratum+tcp://127.0.0.1:3333 -u user -p pass -t 28
### **Mining Options Explained**
1. **Built-in Core Mining**: Uses RinCoin's `generatetoaddress` RPC command
2. **Pool Mining**: Uses cpuminer-opt-rin with Stratum pools (Zergpool)
3. **Direct RPC Mining**: Would require custom miner implementing `getblocktemplate`
## 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
```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 | Built-in CPU | Local Node | ✅ Working |
| **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
```
### **RPC Access**
```bash
# 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
## 🎯 **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