本文將以dash(x11)和Raven(x16rv2)為例子來說明多演算法礦池的搭建程序,
1 環境準備
1.1 準備Ubuntu
準備虛擬機或物理機,作業系統為Ubuntu 18.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-server
1.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": true112 }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.110 },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.127 },28 "3032": {29 "diff": 32,30 "varDiff": {31 "minDiff": 8,32 "maxDiff": 512,33 "targetTime": 15,34 "retargetTime": 90,35 "variancePercent": 3036 }37 },38 "3256": {39 "diff": 25640 }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": true57 },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": false68 }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": 3029 }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": 3040 }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": 3051 }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": true67 },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": false77 },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": 2566 }darkcoin

1 {2 "name": "Raven",3 "symbol": "RVN",4 "algorithm": "x16rv2",5 "txfee": 0.000056 }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挖礦驗證程序類似,不再進行詳細介紹,
原創文章轉載請注明鏈接:https://www.cnblogs.com/zhaoweiwei/p/nomp.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/5260.html
標籤:區塊鏈

