这是Monero门罗币系列文章的第九篇。这篇文章部分内容有经验成分,可能有不准确的地方。
xmrig-proxy GitHub:https://github.com/xmrig/xmrig-proxy
先介绍一下xmrig-proxy的用途:在矿工和矿池之间加一个中转的环节,xmrig-proxy既承担矿池的责任,也承担矿工的责任。xmrig-proxy从矿池那里获取任务,然后分配给矿工去计算(承担矿池的角色);矿工提交share到xmrig-proxy,xmrig-proxy提交到矿池(承担矿工的角色)。
应用场景:
1、矿池距离较远,中间加一个代理,提高网络的连通性。比如minexmr这个矿池,最近的是新加坡节点,并且网络环境不是很好,我们可以搞个HK的代理。
2、当某一个IP地址有很多矿工连矿池,提交share太频繁,会被矿池认为是DDoS攻击,会被矿池封掉IP,此时可以搞一个代理,对矿池来说,看上去只有一个矿工了。
xmrig-proxy的编译
编译可以参考官方的文档,如果是windows系统,可以直接下载他们编译好的版本。
下面是CentOS系统编译步骤:
yum -y install git cmake gcc gcc-c++ libuv-static libstdc++-static libuuid-devel libmicrohttpd-devel
git clone https://github.com/xmrig/xmrig-proxy.git
cd xmrig-proxy
mkdir build
cd build
cmake .. -DUV_LIBRARY=/usr/lib64/libuv.a
make
如果出现“identifier ‘constexpr’ is a keyword in C++11 [-Wc++0x-compat]”错误,打开xmrig-proxy文件夹下的CMakeLists.txt,在“project(xmrig-proxy)”后加入以下一行,保存运行即可。
add_compile_options(-std=c++11)
xmrig-proxy的使用
1、启动xmrig-proxy
根据官方config文件生成器,先生成配置文件,命名为config.json,放到xmrig-proxy执行文件同级(以linux系统为例),然后./xmrig-proxy可以直接运行。
在生成配置文件的时候,BIND端口是矿工连接的端口(比如:0.0.0.0:3333),HTTP API是监控的端口(比如:6666),可以通过 http://ip:6666 查看xmrig-proxy运行的一些基本情况。
2、矿工的设置
矿工方面设置有两点(以xmr-stak为例):
1)把pool_address设置为xmrig-proxy的地址和端口;
2)把use_nicehash设置为ture。
其他方面不用设置,就可以直接开挖了。
xmrig-proxy的优化
1、合理设置固定难度
根据我的经验,矿池接收的是xmrig-proxy提交的share,我们在xmrig-proxy可以设置一个固定的难度(这个需要矿池的支持,并且有一个起始难度),然后在矿工那边也设置固定的难度,根据矿工的算力,可以设置一个较小的难度,可以小于矿池的初始难度。
这样有一个好处,一些矿工,比如是单台电脑,算力可能很小,如果用矿池提供的起始难度,可能需要很长时间才能提交一个share,如果把难度降低,可能更有效率。
但是有文档说,如果矿工提交的share的难度低于xmrig-proxy上设置的难度,是无效的,不会被提交,但是我测试了一下,我在proxy设置的难度是50000,在每个矿工上都设置了15000,矿池的初始难度是35000。从矿池的监控来看,发现还是有算力提交的,从xmrig-proxy看,提交的难度是proxy上设置的难度。
所以我觉得,xmrig-proxy会把低难度的share合并成高难度的,然后再提交给矿池。
2、矿工端使用多矿池
在使用了xmrig-proxy之后,建议在矿工上设置多个矿池,假如xmrig-proxy出问题,矿工检测到之后,会使用第二个矿池。比如首个矿池为xmrig-proxy的地址,次矿池为xmrig-proxy上设置的矿池地址。
站长你好,请问下use_nicehash这个配置的用处是什么