本文将以dash(x11)和Raven(x16rv2)为例子来说明多算法矿池的搭建过程。
1 环境准备
1.1 准备Ubuntu
准备虚拟机或物理机,操作系统为Ubuntu 16.04
1.2 安装必需的包
sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev libboost-all-dev sudo apt-get install git npm nodejs redis-server1.3 下载源码
git clone https://github.com/zone117x/node-open-mining-portal.git nomp
cd nomp
npm update
执行完update后会编译更新一系列依赖库
2 配置矿池
这里钱包和矿池服务器分别部署在不同的机器上,当然它们也可以部署到同一台机器上。
2.1 服务器端配置
cp config_example.json config.json
config.json内容如下
1 { 2 "logLevel": "debug", 3 "logColors": true, 4 5 "cliPort": 17117, 6 7 "clustering": { 8 "enabled": true, 9 "forks": "auto" 10 }, 11 12 "defaultPoolConfigs": { 13 "blockRefreshInterval": 1000, 14 "jobRebroadcastTimeout": 55, 15 "connectionTimeout": 600, 16 "emitInvalidBlockHashes": false, 17 "validateWorkerUsername": true, 18 "tcpProxyProtocol": false, 19 "banning": { 20 "enabled": true, 21 "time": 600, 22 "invalidPercent": 50, 23 "checkThreshold": 500, 24 "purgeInterval": 300 25 }, 26 "redis": { 27 "host": "127.0.0.1", 28 "port": 6379 29 } 30 }, 31 32 "website": { 33 "enabled": true, 34 "host": "10.10.1.230", 35 "port": 8080, 36 "stratumHost": "cryppit.com", 37 "stats": { 38 "updateInterval": 60, 39 "historicalRetention": 43200, 40 "hashrateWindow": 300 41 }, 42 "adminCenter": { 43 "enabled": false, 44 "password": "password" 45 } 46 }, 47 48 "redis": { 49 "host": "127.0.0.1", 50 "port": 6379 51 }, 52 53 "switching": { 54 "switch1": { 55 "enabled": false, 56 "algorithm": "sha256", 57 "ports": { 58 "3333": { 59 "diff": 10, 60 "varDiff": { 61 "minDiff": 16, 62 "maxDiff": 512, 63 "targetTime": 15, 64 "retargetTime": 90, 65 "variancePercent": 30 66 } 67 } 68 } 69 }, 70 "switch2": { 71 "enabled": false, 72 "algorithm": "scrypt", 73 "ports": { 74 "4444": { 75 "diff": 10, 76 "varDiff": { 77 "minDiff": 16, 78 "maxDiff": 512, 79 "targetTime": 15, 80 "retargetTime": 90, 81 "variancePercent": 30 82 } 83 } 84 } 85 }, 86 "switch3": { 87 "enabled": false, 88 "algorithm": "x11", 89 "ports": { 90 "5555": { 91 "diff": 0.001, 92 "varDiff": { 93 "minDiff": 0.001, 94 "maxDiff": 1, 95 "targetTime": 15, 96 "retargetTime": 60, 97 "variancePercent": 30 98 } 99 } 100 } 101 } 102 }, 103 104 "profitSwitch": { 105 "enabled": false, 106 "updateInterval": 600, 107 "depth": 0.90, 108 "usePoloniex": true, 109 "useCryptsy": true, 110 "useMintpal": true, 111 "useBittrex": true 112 } 113 }config.json
其中34行改为Ubuntu主机IP地址,为了防止80端口被其他web服务占用,这里使用8080端口,见35行,36行是stratum协议域名,即矿池部署服务器绑定的域名,这里保持默认,其实这里也应是Ubutu主机IP地址,之后再生成两个算法的配置文件
cp pool_configs/litecoin_example.json pool_configs/dash.json
cp pool_configs/litecoin_example.json pool_configs/raven.json
两个文件内容如下
1 { 2 "enabled": true, 3 "coin": "darkcoin.json", 4 5 "address": "Xz2J7ktmY7Zip3xvp2hrHLXeUN3bBL75QB", 6 7 "rewardRecipients": { 8 "n37vuNFkXfk15uFnGoVyHZ6PYQxppD3QqK": 1.5, 9 "22851477d63a085dbc2398c8430af1c09e7343f6": 0.1 10 }, 11 12 "paymentProcessing": { 13 "enabled": true, 14 "paymentInterval": 30, 15 "minimumPayment": 0.01, 16 "daemon": { 17 "host": "10.10.1.202", 18 "port": 9998, 19 "user": "wei", 20 "password": "0123456789a" 21 } 22 }, 23 24 "ports": { 25 "3008": { 26 "diff": 0.1 27 }, 28 "3032": { 29 "diff": 32, 30 "varDiff": { 31 "minDiff": 8, 32 "maxDiff": 512, 33 "targetTime": 15, 34 "retargetTime": 90, 35 "variancePercent": 30 36 } 37 }, 38 "3256": { 39 "diff": 256 40 } 41 }, 42 43 "daemons": [ 44 { 45 "host": "10.10.1.202", 46 "port": 9998, 47 "user": "wei", 48 "password": "0123456789a" 49 } 50 ], 51 52 "p2p": { 53 "enabled": false, 54 "host": "10.10.1.202", 55 "port": 8333, 56 "disableTransactions": true 57 }, 58 59 "mposMode": { 60 "enabled": false, 61 "host": "127.0.0.1", 62 "port": 3306, 63 "user": "me", 64 "password": "mypass", 65 "database": "btc", 66 "checkPassword": false, 67 "autoCreateWorker": false 68 } 69 }dash.json
其中第5行的address必须为有效的地址,第6行的daemon里分别填写的是钱包运行主机的IP地址,端口号,配置文件里的用户名和密码,如图所示
1 { 2 "enabled": true, 3 "coin": "raven.json", 4 "address": "RVc3Pvo72yfzDoTqE6Z85YFXKKYgvDaoVa", 5 "rewardRecipients": { 6 "RQTE2qcKPCf1pVvBVcx9VLxSzx6ACyBoiB": 1 7 }, 8 "paymentProcessing": { 9 "enabled": true, 10 "paymentInterval": 20, 11 "minimumPayment": 0.01, 12 "daemon": { 13 "host": "10.10.1.3", 14 "port": 8766, 15 "user": "ravend", 16 "password": "Ao3iceIpAo3icjsn392H3iceIp" 17 } 18 }, 19 "ports": { 20 "8888": { 21 "tls":false, 22 "diff": 0.5, 23 "varDiff": { 24 "minDiff": 0.04, 25 "maxDiff": 16, 26 "targetTime": 15, 27 "retargetTime": 60, 28 "variancePercent": 30 29 } 30 }, 31 "7777": { 32 "tls":false, 33 "diff": 0.5, 34 "varDiff": { 35 "minDiff": 0.04, 36 "maxDiff": 16, 37 "targetTime": 15, 38 "retargetTime": 60, 39 "variancePercent": 30 40 } 41 }, 42 "9999": { 43 "tls":false, 44 "diff": 2.5, 45 "varDiff": { 46 "minDiff": 1.5, 47 "maxDiff": 16, 48 "targetTime": 15, 49 "retargetTime": 60, 50 "variancePercent": 30 51 } 52 } 53 }, 54 "daemons": [ 55 { 56 "host": "10.10.1.3", 57 "port": 8766, 58 "user": "ravend", 59 "password": "Ao3iceIpAo3icjsn392H3iceIp" 60 } 61 ], 62 "p2p": { 63 "enabled": false, 64 "host": "127.0.0.1", 65 "port": 5889, 66 "disableTransactions": true 67 }, 68 "mposMode": { 69 "enabled": false, 70 "host": "127.0.0.1", 71 "port": 3306, 72 "user": "me", 73 "password": "mypass", 74 "database": "vtc", 75 "checkPassword": true, 76 "autoCreateWorker": false 77 }, 78 "mongoMode": { 79 "enabled": false, 80 "host": "127.0.0.1", 81 "user": "", 82 "pass": "", 83 "database": "vtc", 84 "authMechanism": "DEFAULT" 85 } 86 }raven.json
Raven配置和Dash类似,钱包的配置文件内容如下
另外在coins目录下还需要准备两个币种的算法配置文件darkcoin.json和raven.json文件,内容如下:
1 { 2 "name": "Darkcoin", 3 "symbol": "DRK", 4 "algorithm": "x11", 5 "mposDiffMultiplier": 256 6 }darkcoin
1 { 2 "name": "Raven", 3 "symbol": "RVN", 4 "algorithm": "x16rv2", 5 "txfee": 0.00005 6 }raven
3 启动矿池并挖矿
运行如下命令启动矿池
sudo node init.js
矿池主界面如下所示
单击Getting Started可以看到该矿池支持Dash(Darkcoin)和Raven挖矿,再单击左侧的Raven可以看到x16rv2的stratum地址及端口,注意真正挖矿时需要用矿机部署的PC地址10.10.1.230替换cryppit.com
用开源代挖矿程序cpuminer-multi来验证搭建的矿池,编译后运行如下命令来进行挖矿
./cpuminer -a x16r -o stratum+tcp://10.10.1.230:7777 -u RVG96MbaKEDFzzj9NzbAuxkDt86KAm2Qj5 -p x -D -P -t 10
运行一段时间后可以看到后台软件相应的接收情况
矿池Graph Status显示如下
Dash挖矿验证过程类似,不再进行详细介绍。