NOMP礦池搭建

本文將以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-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": 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挖礦驗證過程類似,不再進行詳細介紹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章