#!/bin/bash # ============================================= # Pearl (PRL) Stratum Havuz Kurulum Scripti # Siteniz: ragwell.com.tr # ============================================= set -e # Renkli çıktılar RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color log() { echo -e "${GREEN}[+]${NC} $1"; } warn() { echo -e "${YELLOW}[!]${NC} $1"; } err() { echo -e "${RED}[HATA]${NC} $1"; exit 1; } # --------------------------- # 1. Sunucu Hazırlığı # --------------------------- log "Sistem paketleri güncelleniyor..." sudo apt update && sudo apt upgrade -y sudo apt install -y python3 python3-pip python3-dev memcached build-essential git curl wget ufw screen log "Memcached başlatılıyor..." sudo systemctl enable memcached sudo systemctl restart memcached # --------------------------- # 2. Kullanıcıdan Gerekli Bilgiler # --------------------------- echo "" echo "Lütfen aşağıdaki bilgileri girin (varsayılanı kullanmak için boş bırakıp Enter'a basın):" read -p "Pearl RPC kullanıcı adı [ragwell]: " RPC_USER RPC_USER=${RPC_USER:-ragwell} read -p "Pearl RPC şifresi [STRONGPASS123]: " RPC_PASS RPC_PASS=${RPC_PASS:-STRONGPASS123} read -p "Pearl RPC port [9332]: " RPC_PORT RPC_PORT=${RPC_PORT:-9332} read -p "Havuz komisyon cüzdanı (fee address) [prl1pwx4ec08hegjjchdyqtcd8j6ete0gw0v5nz3ksyk9ak83pc3uc4ns3wus5u]: " FEE_ADDR FEE_ADDR=${FEE_ADDR:-prl1pwx4ec08hegjjchdyqtcd8j6ete0gw0v5nz3ksyk9ak83pc3uc4ns3wus5u} read -p "Stratum portu [7777]: " STRATUM_PORT STRATUM_PORT=${STRATUM_PORT:-7777} # --------------------------- # 3. Pearl Full Node Kontrolü # --------------------------- log "Pearl full node (pearld) kontrol ediliyor..." if ! pgrep -x "pearld" > /dev/null; then warn "pearld çalışmıyor! Lütfen önce Pearl node'u kurup başlatın." warn "Node kurulumu için: pearlresearch.ai adresinden 'pearld' indirip, aşağıdaki komutla çalıştırın:" warn "./pearld -daemon -rpcuser=$RPC_USER -rpcpassword=$RPC_PASS -rpcport=$RPC_PORT -rpcallowip=127.0.0.1" warn "Node senkronize olduktan sonra bu scripti tekrar çalıştırın." exit 1 fi # --------------------------- # 4. stratum-mining Deposu # --------------------------- log "stratum-mining deposu klonlanıyor..." cd ~ if [ -d "stratum-mining" ]; then warn "Klasör zaten var, güncelleniyor..." cd stratum-mining && git pull else git clone https://github.com/Crypto-Expert/stratum-mining.git cd stratum-mining fi cd mining # --------------------------- # 5. Python Bağımlılıkları # --------------------------- log "Python bağımlılıkları yükleniyor..." if [ -f "requirements.txt" ]; then pip3 install -r requirements.txt else pip3 install pylibmc scrypt fi # --------------------------- # 6. Pearl Coin Modülü # --------------------------- log "Pearl coin modülü oluşturuluyor..." cat > coins/pearl.py << EOF from . import base class Pearl(base.BaseCoin): coin_name = "Pearl" symbol = "PRL" algorithm = "pearlhash" address_prefix = "prl1" rpc_port = ${RPC_PORT} rpc_user = "${RPC_USER}" rpc_password = "${RPC_PASS}" block_reward = 50 # gerçek değere göre düzenleyin block_time = 140 # saniye maturity = 100 def __init__(self): super().__init__() self.daemon = self.get_daemon() def getblocktemplate(self): return self.daemon.getblocktemplate() def submitblock(self, block_hex): return self.daemon.submitblock(block_hex) def validate_address(self, address): return address.startswith("prl1") and len(address) > 40 EOF # --------------------------- # 7. Havuz Ayarları # --------------------------- log "Yapılandırma dosyası düzenleniyor..." # Önce mevcut config.py'ı yedekle if [ -f "config.py" ]; then cp config.py config.py.bak fi cat > config.py << EOF # Ragwell Pearl Pool Configuration # Memcached MEMCACHE_HOST = '127.0.0.1' MEMCACHE_PORT = 11211 MEMCACHE_PREFIX = 'ragwell_' # Stratum STRATUM_HOST = '0.0.0.0' STRATUM_PORT = ${STRATUM_PORT} # Coin ENABLED_COINS = ['pearl'] # Havuz ücreti POOL_FEE = 1.5 FEE_ADDRESS = '${FEE_ADDR}' EOF # --------------------------- # 8. Güvenlik Duvarı # --------------------------- log "Güvenlik duvarı ayarlanıyor..." sudo ufw allow ${STRATUM_PORT}/tcp comment 'Pearl stratum' sudo ufw --force enable # --------------------------- # 9. Stratum'u Başlatma # --------------------------- log "Stratum sunucusu başlatılıyor..." # Mevcut çalışan varsa durdur pkill -f "python3 stratum.py" 2>/dev/null || true sleep 2 # Arka planda başlat screen -dmS pearl_pool python3 stratum.py sleep 3 # Kontrol if pgrep -f "python3 stratum.py" > /dev/null; then log "Pearl Stratum havuzu başarıyla başlatıldı!" else err "Stratum sunucusu başlatılamadı. Hata logu: $(tail -20 pearl.log)" fi # --------------------------- # 10. Sonuç Bilgileri # --------------------------- echo "" echo "==============================================" echo " Ragwell Pearl Mining Pool - KURULUM TAMAM" echo "==============================================" echo "Stratum adresi : stratum+tcp://sunucu-ip:${STRATUM_PORT}" echo "Domain (aktifse) : stratum+tcp://prl.ragwell.com.tr:${STRATUM_PORT}" echo "Komisyon cüzdanı : ${FEE_ADDR}" echo "Komisyon oranı : %1.5" echo "" echo "Madenci batch örneği:" echo "SRBMiner-MULTI.exe --disable-cpu --algorithm pearlhash --pool stratum+tcp://sunucu-ip:${STRATUM_PORT} --wallet CÜZDAN.İŞÇİ" echo "" echo "Stratum loglarını görmek için: screen -r pearl_pool" echo "=============================================="