本帖最后由 panjr 于 2018-1-8 19:52 编辑
本文将介绍xmr-node-proxy的适用场景、工作原理、搭建方法、缺点和常见问题解答
一、适用场景
我们知道,为了降低矿池服务器的负载,一般来说矿池不会把挖矿难度调得太低,意思是一个job发给你的矿工,如果太简单了,矿工马上算出来又要再向矿池请求新的job,大量的并发请求是矿池不希望出现的,比如说supportxmr认为如果你有超过10个矿工,那么你就需要用proxy了,不用的话… 参照Vicer大佬的前车之鉴…
http://www.52.ht/forum.php?mod=viewthread&tid=416309
但是挖矿难度太高,矿工很久都算不出来,相当于白白浪费了这些算力,xmr-node-proxy尤其适用于有大量低算力的矿工,希望降低挖矿难度的用户。如果你看到日志中有大量的New block detect 而很少Result accepted by the pool甚至有很多Result rejected by the pool,你就很需要这个proxy了
简而言之,xmr-node-proxy适合下面的场景:
1.你有超过10台的机器,或者矿池认为你的机器太多,你需要降低和矿池的链接数
2.你的机器算力太低,或者矿池的难度太高,你需要把难度降下来
3.你不想矿池知道你的矿工的IP,进一步提高匿名性
4.你需要经常换矿池,那么你只需要调整proxy向哪个矿池提交即可,不用一个个矿工去调整
5.你的矿工与矿池网络连接情况不太好,需要用proxy中转
目前适配的矿池有
- XMRPool.net https://xmrpool.net/
- supportXMR.com https://supportxmr.com
- pool.xmr.pt
- minemonero.pro https://monero.hashvault.pro/
- XMRPool.xyz https://xmrpool.xyz/
- ViaXMR.com https://www.viaxmr.com/
- mine.MoneroPRO.com
- MinerCircle.com https://www.minercircle.com/
- xmr.p00ls.net
- MoriaXMR.com https://moriaxmr.com/
- MoneroOcean.stream https://moneroocean.stream/
- SECUmine.net https://secumine.net/
- chinaenter.cn http://xmr.chinaenter.cn/
复制代码
PS:最后这个Chinaenter支持PPS模式挖矿,也是中国服务器,有兴趣的大佬可以试一下,但是我还是留在supportxmr了
PPS:关于PPS和PPLNS这两种挖矿模式,理论上说,长期的挖下去的话,两者的收益应该是一模一样的,大家也不用太纠结
二、工作原理
代理的作用是,把矿池很高难度的job拆分成低难度的job分发给低算力的矿工,这样低算力的矿工能拿到低难度的job,他的算力就有效了,对矿池来说,他也只从代理里接受结果,也减少了矿池服务器的压力
三、搭建方法
下面我在一台用Vicer大佬的重装脚本重装了Ubuntu 16.04 x64的香港腾讯云1H1M小鸡上搭建,其他环境没有作测试,欢迎补充
首先用root密码登录,安装curl
添加一个新的用户
- useradd -d /home/nodeproxy -m -s /bin/bash nodeproxy
- passwd nodeproxy
复制代码
nodeproxy是我新建的用户名,输入passwd nodeproxy后输入两遍新用户的密码即可
添加新用户到 /etc/sudoers
- echo "nodeproxy ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
复制代码
切换到新用户
使用xmr-node-proxy提供的脚本开始安装
- curl -L https://raw.githubusercontent.com/Snipa22/xmr-node-proxy/master/install.sh | bash
复制代码
安装完成后,你应该已经进入了pm2环境,按一下回车回到bash
然后可以编辑设置文件
- cd xmr-node-proxy
- vi config.json
复制代码
下面是我目前使用的配置
- {
- "pools": [
- {
- "hostname": "pool.supportxmr.com",
- "port": 7777,
- "ssl": false,
- "allowSelfSignedSSL": false,
- "share": 100,
- "username": "47mF1Jkh1QmFBQcgTVX9ZraoLTmRcJ3aqH3UuRMEobNkR5N1mU83m9E3EDLmEHKT18jLhnPaYWvaJVcCp7qHEzke7jLfJKo",
- "password": "x",
- "keepAlive": true,
- "coin": "xmr",
- "default": true
- }
- ],
- "listeningPorts": [
- {
- "port": 8080,
- "ssl": false,
- "diff": 1,
- "coin": "xmr"
- },
- {
- "port": 8081,
- "ssl": false,
- "diff": 250,
- "coin": "xmr"
- },
- {
- "port": 8082,
- "ssl": false,
- "diff": 500,
- "coin": "xmr"
- }
- ],
- "bindAddress": "0.0.0.0",
- "developerShare": 0,
- "daemonAddress": "127.0.0.1:18081",
- "coinSettings": {
- "xmr":{
- "minDiff": 1,
- "maxDiff": 300000,
- "shareTargetTime": 1
- }
- }
- }
复制代码
这里我使用的是supportxmr矿池,使用他的最高难度端口7777,username和password就是你的钱包地址和相应的密码
listeningports这里的port就是代理的端口
diff是你代理的起始难度,因为我手上的很多矿工确实算力很低,所以我调到了1,因为难度是动态调整的,所以对高算力的机器过一段时间后就可以自动把难度提高,不用担心难度过低的问题。
coinSettings这里maxDiff就是你允许的最高难度,设一个足够大的值就可以了,因为你永远都不会达到这个值得…
shareTargetTime是平均多长时间矿工向你的代理提交share,这个越小,矿工和代理之间的请求越频繁,我的机器比较少,和香港的网络情况也很好,所以就调低了,其实调高一点有助于减轻代理服务器的负载,官方的默认值是15。
developerShare是捐赠给开发者的部分,大家凭良心,多少贡献一点吧
设置后config.json之后,就可以启动代理了
- cd ~/xmr-node-proxy/
- pm2 start proxy.js --name=proxy --log-date-format="YYYY-MM-DD HH:mm Z"
- pm2 save
复制代码
启动之后可以输入
查看代理的运行情况
然后只需要你把矿工的配置文件中的矿池地址换成你的代理地址就可以了
我实测46台10H/s的矿工本来完全提交不上算力,现在都可以流畅的满负载运行啦
四、缺点
因为proxy的作用是把很多个矿工合为一个,算力一起输入到矿池,所以没有办法看到每个矿工的工作状态,你只能登录机器自己查看了,对关心矿工工作状态的人不太友好
五、常见问题
1.config.json更改后怎么重新启动代理呢?
首先把proxy停止
然后再启动proxy
- cd ~/xmr-node-proxy/
- pm2 start proxy.js --name=proxy --log-date-format="YYYY-MM-DD HH:mm Z"
- pm2 save
复制代码
2.proxy对机器性能影响大吗?
以我安装proxy的这台1H1G1M的腾讯云香港来举例,稳定运行48小时了,46个矿工,平均一秒提交一次share,CPU平均占用7%,内存平均占用20%,网络上行10KB/s,下行30KB/s,磁盘读写基本为0,可见proxy对机器的性能影响几乎可以忽略不计。事实上,我尝试了在运行proxy的同时挖矿,CPU占满,对proxy一定影响都没有。
3.反复出现Result rejected by the pool / Duplicate share / Invalid Shares
你的起始难度太低了,请增加一点。
4.为什么不使用xmrig-proxy / xmr-proxy ?
本文使用的xmr-node-proxy是目前唯一可以降低矿工使用的难度的代理,如果你只需要减少与矿池链接数而不需要降低难度,那可以选择xmrig-proxy / xmr-proxy
如果这篇文章对你有帮助,欢迎你请我喝杯咖啡!
我的门罗币地址是
47mF1Jkh1QmFBQcgTVX9ZraoLTmRcJ3aqH3UuRMEobNkR5N1mU83m9E3EDLmEHKT18jLhnPaYWvaJVcCp7qHEzke7jLfJKo
门罗币的二维码:
微信支付宝也行!
如果你有任何问题,欢迎在下面留言或者TG我询问
https://t.me/juzai123
|