全球主机交流论坛

标题: 让你手上的低算力机器也利用起来!矿池代理搭建教程 [打印本页]

作者: panjr    时间: 2017-12-24 16:37
标题: 让你手上的低算力机器也利用起来!矿池代理搭建教程
本帖最后由 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中转

目前适配的矿池有


  1. XMRPool.net                        https://xmrpool.net/
  2. supportXMR.com                https://supportxmr.com
  3. pool.xmr.pt                       
  4. minemonero.pro                https://monero.hashvault.pro/
  5. XMRPool.xyz                        https://xmrpool.xyz/
  6. ViaXMR.com                        https://www.viaxmr.com/
  7. mine.MoneroPRO.com       
  8. MinerCircle.com                https://www.minercircle.com/
  9. xmr.p00ls.net
  10. MoriaXMR.com                https://moriaxmr.com/
  11. MoneroOcean.stream        https://moneroocean.stream/
  12. SECUmine.net                https://secumine.net/
  13. chinaenter.cn                http://xmr.chinaenter.cn/
复制代码



PS:最后这个Chinaenter支持PPS模式挖矿,也是中国服务器,有兴趣的大佬可以试一下,但是我还是留在supportxmr了
PPS:关于PPS和PPLNS这两种挖矿模式,理论上说,长期的挖下去的话,两者的收益应该是一模一样的,大家也不用太纠结

二、工作原理
        代理的作用是,把矿池很高难度的job拆分成低难度的job分发给低算力的矿工,这样低算力的矿工能拿到低难度的job,他的算力就有效了,对矿池来说,他也只从代理里接受结果,也减少了矿池服务器的压力

三、搭建方法
        下面我在一台用Vicer大佬的重装脚本重装了Ubuntu 16.04 x64的香港腾讯云1H1M小鸡上搭建,其他环境没有作测试,欢迎补充

        首先用root密码登录,安装curl
  1. apt install -y curl
复制代码

       
        添加一个新的用户
  1. useradd -d /home/nodeproxy -m -s /bin/bash nodeproxy
  2. passwd nodeproxy
复制代码


        nodeproxy是我新建的用户名,输入passwd nodeproxy后输入两遍新用户的密码即可

        添加新用户到 /etc/sudoers
  1. echo "nodeproxy ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
复制代码

       
        切换到新用户
  1. su - nodeproxy
复制代码


        使用xmr-node-proxy提供的脚本开始安装
  1. curl -L https://raw.githubusercontent.com/Snipa22/xmr-node-proxy/master/install.sh | bash
复制代码

        安装完成后,你应该已经进入了pm2环境,按一下回车回到bash

  1. source ~/.bashrc
复制代码


        然后可以编辑设置文件

  1. cd xmr-node-proxy
  2. vi config.json
复制代码


        下面是我目前使用的配置
  1. {
  2.   "pools": [
  3.     {
  4.       "hostname": "pool.supportxmr.com",
  5.       "port": 7777,
  6.       "ssl": false,
  7.       "allowSelfSignedSSL": false,
  8.       "share": 100,
  9.       "username": "47mF1Jkh1QmFBQcgTVX9ZraoLTmRcJ3aqH3UuRMEobNkR5N1mU83m9E3EDLmEHKT18jLhnPaYWvaJVcCp7qHEzke7jLfJKo",
  10.       "password": "x",
  11.       "keepAlive": true,
  12.       "coin": "xmr",
  13.       "default": true
  14.     }
  15.   ],
  16.   "listeningPorts": [
  17.     {
  18.       "port": 8080,
  19.       "ssl": false,
  20.       "diff": 1,
  21.       "coin": "xmr"
  22.     },
  23.         {
  24.       "port": 8081,
  25.       "ssl": false,
  26.       "diff": 250,
  27.       "coin": "xmr"
  28.     },
  29.         {
  30.       "port": 8082,
  31.       "ssl": false,
  32.       "diff": 500,
  33.       "coin": "xmr"
  34.     }
  35.   ],
  36.   "bindAddress": "0.0.0.0",
  37.   "developerShare": 0,
  38.   "daemonAddress": "127.0.0.1:18081",
  39.   "coinSettings": {
  40.     "xmr":{
  41.       "minDiff": 1,
  42.       "maxDiff": 300000,
  43.       "shareTargetTime": 1
  44.     }
  45.   }
  46. }
复制代码


        这里我使用的是supportxmr矿池,使用他的最高难度端口7777,username和password就是你的钱包地址和相应的密码
        listeningports这里的port就是代理的端口
        diff是你代理的起始难度,因为我手上的很多矿工确实算力很低,所以我调到了1,因为难度是动态调整的,所以对高算力的机器过一段时间后就可以自动把难度提高,不用担心难度过低的问题。
        coinSettings这里maxDiff就是你允许的最高难度,设一个足够大的值就可以了,因为你永远都不会达到这个值得…
        shareTargetTime是平均多长时间矿工向你的代理提交share,这个越小,矿工和代理之间的请求越频繁,我的机器比较少,和香港的网络情况也很好,所以就调低了,其实调高一点有助于减轻代理服务器的负载,官方的默认值是15。
        developerShare是捐赠给开发者的部分,大家凭良心,多少贡献一点吧

        设置后config.json之后,就可以启动代理了
  1. cd ~/xmr-node-proxy/
  2. pm2 start proxy.js --name=proxy --log-date-format="YYYY-MM-DD HH:mm Z"
  3. pm2 save
复制代码


        启动之后可以输入
  1. pm2 logs proxy
复制代码

        查看代理的运行情况

        然后只需要你把矿工的配置文件中的矿池地址换成你的代理地址就可以了
        我实测46台10H/s的矿工本来完全提交不上算力,现在都可以流畅的满负载运行啦

四、缺点
        因为proxy的作用是把很多个矿工合为一个,算力一起输入到矿池,所以没有办法看到每个矿工的工作状态,你只能登录机器自己查看了,对关心矿工工作状态的人不太友好

五、常见问题
        1.config.json更改后怎么重新启动代理呢?
        首先把proxy停止
  1. pm2 delete proxy
复制代码

       
        然后再启动proxy
  1. cd ~/xmr-node-proxy/
  2. pm2 start proxy.js --name=proxy --log-date-format="YYYY-MM-DD HH:mm Z"
  3. 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
       
       
作者: paydot    时间: 2017-12-24 18:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雷电法王杨永信    时间: 2017-12-24 19:31
Mark
作者: 920c    时间: 2017-12-24 21:50
我推荐都是XMRig-Proxy,这个效果比较好
作者: panjr    时间: 2017-12-24 22:35
本帖最后由 panjr 于 2017-12-25 11:38 编辑
920c 发表于 2017-12-24 21:50
我推荐都是XMRig-Proxy,这个效果比较好


xmr-node-proxy是目前唯一可以降低矿工使用的算力的代理,如果你只需要减少与矿池链接数而不需要降低算力,那可以选择xmrig-proxy


如果你有很多Duplicate share 或者result rejected by the pool 或者 Invalid Shares 是因为你的起始难度太低了,请你调高一点,好在proxy有完整的shares有效性认证,这些不合规的shares不会被提交到矿池,也避免了你被矿池block
比如我有500算力的机器  就可以用我的8081端口,起始难度250

但是理论上说proxy是不可能降低你的挖矿算力的,如果你确实有这个情况,可以把高算力的矿工直连矿池,低算力的矿工连proxy
作者: houset    时间: 2017-12-24 23:24
大佬又把mjj们带入了挖坑新高度,全球挖坑论坛...
作者: ajun59420    时间: 2017-12-25 08:21
顶,技术贴
作者: janfou    时间: 2017-12-28 17:11
全部看完,受用百倍,感谢感谢。


只是有个关键词需要大佬帮忙定义,
低算力,是在哪个幅度什么范围?
作者: panjr    时间: 2017-12-28 17:41
janfou 发表于 2017-12-28 17:11
全部看完,受用百倍,感谢感谢。

这个是和你矿池的难度相关的   具体来说 我觉得如果你看到日志中有大量的New block detect 而很少Result accepted by the pool甚至有很多Result rejected by the pool    那么你这个矿工对于矿池的这个算力就是低的
作者: 341619932    时间: 2017-12-28 17:42
厉害,学习了
作者: 事但啦    时间: 2017-12-28 22:41
貌似是编译失败了

按照楼主的步骤,一直下去,开启软件,但端口都没启动,所以客户端不能连接到代理服务器,

不知道怎么回事
作者: panjr    时间: 2017-12-28 23:39
事但啦 发表于 2017-12-28 22:41
貌似是编译失败了

按照楼主的步骤,一直下去,开启软件,但端口都没启动,所以客户端不能连接到代理服务器 ...

检查一下你是不是在腾讯云的安全组里开放了对应的端口,默认只开放了22端口
作者: 事但啦    时间: 2017-12-29 00:31
panjr 发表于 2017-12-28 23:39
检查一下你是不是在腾讯云的安全组里开放了对应的端口,默认只开放了22端口 ...

国内没有任何“落脚点”,而且算是个老手,不会发生什么防火墙之类的低级失误
作者: 椰子    时间: 2018-1-8 21:12
一个1H2G的阿里云,这个nodeJS 负载跑到7了。。凉
作者: tonyma    时间: 2018-1-8 23:58
顶一下
作者: Ricky.D.    时间: 2018-12-30 22:42
有个小问题,如果说能够分发并降低难度的话,为什么不自己开一个矿池,然后再降低难度到100以下呢
作者: 椰子    时间: 2019-1-8 03:51
Ricky.D. 发表于 2018-12-30 22:42
有个小问题,如果说能够分发并降低难度的话,为什么不自己开一个矿池,然后再降低难度到100以下呢 ...

自己开矿池  你算力够爆块吗
作者: 森林鸟    时间: 2021-3-5 13:43
  1. 自建矿池?
复制代码





欢迎光临 全球主机交流论坛 (https://52.ht/) Powered by Discuz! X3.4