给斐讯N1盒子或树莓派编译带有web界面的nkn-mining

官方github仓库的nkn-mining预编译好的二进制只有x86的版本,为此修改了build.sh脚本,编译出适用于arm64构架的挖矿程序,具体的内容看简书吧,刚刚才知道这还有论坛,懒得搬运过来了


欢迎捧场
------分割线---------
顺便说下,目前两台设备在挖,一台vps,腾讯云的,一台N1放在电信家庭宽带公网,vps挖的比N1的多多了
顺便问下这个东西是不是很吃内存,之前vps上跑有时oom了,现在升级了0.2.0版本无法同步区块,1g内存还跑别的应用,free -m命令的输出如下
total used free shared buff/cache available
Mem: 985 363 96 5 526 452
1 Like
  • 关于内存占用
    – nknd v0.7版本大幅提高了同步区块时的工作效率。会起多个线程+滑动窗口来提高getBlock的并发能力,默认的窗口size为1024。
    – 上述并发机制在同步过程中会占用一定数量的内存,内存占用量大致为:线程数 x 窗口大小 x Block大小。
    – 若单机内存较低不足以提供syncBlock默认值所需要的缓冲区,可以通过配置config.json文件的SyncBatchWindowSize参数来修改滑动窗口的默认大小。我们在1G mem机器上做的测试,“SyncBatchWindowSize”: 256不会导致进程因oom而崩溃(除nknd外未跑其它应用)。你可以根据本机配置及其它本地应用的资源分配情况,来调整适合自己节点的窗口大小。

  • 关于挖矿效率
    – NKN上的工作量证明来自于数据包转发(Relay),各节点提交各自的转发证明(POR)去参与周期性的出块人竞选(随机算法)。因此,节点转发的数据包(Relay)越多,参与出块人竞选的次数就越多,得到出块奖励的次数也就越多
    – 节点的relay数量可以通过nknc info -s的方式查看"relayMessageCount" (RPC为getnodestate),该值是节点nknd启动以来Relay次数的累计值,数值越高说明参与过的出块竞选次数越多。每次nknd启动时从0累计。
    – 家庭宽带的线路无论是带宽、上下行速率、稳定性等,都与云端主机的网络线路有不小差距,因此Relay数量难免会有差距。Relay高的节点对网络做出的贡献越大,得到奖励预期越多,这是符合NKN经济激励模型设计目标的。当然,运气成分也会有一点影响。
    – 另外,账本同步状态中的节点由于本地账本缺乏最新区块,因此参与不了出块人竞选(即使成为出块人,它打包产生的新区块也无法通过其它节点的验证)。节点如果因性能、线路质量等各种原因频繁跟不上出块共识进度的话(落后于最新高度),无形中也会错失一些出块机会。

我的nknd是0.8的但是我在config文件里面怎么没有找到 sysbatch windowsize 的参数配置呢

可以参考 Config.json Options Reference for V0.9 里面的配置项,
文件里面没有的话需要手动加进去, 默认都是缺省值。 SyncBlockHeadersBatchSize