编程加密货币矿工(例如XMRig XMR-Stak MinerGate等XMR矿工)需要什么概念?

时间:2020-04-06 00:51:05

标签: blockchain cryptocurrency mining monero

如何编程加密货币矿工? 喜欢 XMRig XMR-Stak 矿工门 等

1 个答案:

答案 0 :(得分:2)

您首先需要了解PoW的概念。简而言之,PoW是hashcash-矿工hashes所创建的块,增加一个随机的“ nonce”(使用一次的数字),直到生成的散列满足“ difficulty”要求为止。难度是一个数字,该数字是根据最近2周内各区块之间的时间计算得出的,它会更改以保持每10分钟(ish)产生一次区块。对于一个要被接受的块,其哈希值必须在难度值以下(并且该块当然必须是有效的)。 Solo挖矿软件通过轮询硬币守护程序以获取区块模板(某些情况下包含所有费用最高的交易,在某些情况下您必须自己添加)来工作,从而创建“ coinbase”交易(一次将向您支付奖励的交易)您找到一个有效的块,将其追加到交易列表的顶部)更新交易的merkle root以包括新的coinbase交易并添加随机数,然后对这个块进行哈希处理-检查哈希是否满足难度,如果没有,则增加随机数。矿工一直这样做,直到: 1)矿工找到一个块-在这种情况下,它将块发送到守护程序 2)其他人发现了一个区块,在这种情况下,矿工再次启动(获取新的区块模板bla bla bla)。

但是大多数矿工是池矿工-在这种情况下,矿工通过stratum+tcp protocol连接到池并请求“作业”,作业只是池要您哈希的字符串-池会创建要散列的块的jb然后将散列的任务分配给所有连接的矿工。例如,池可能会告诉alice将随机数为0的块散列为随机数15,000,然后将bob的随机数从15,001更改为30,000,以此类推。然后,池矿工提交工作结果。一旦矿工找到了解决方案,他们便通知池,池将块发送到池守护程序,然后告诉其他矿工停止并开始对新块的工作。然后,根据完成的工作将奖励分配给矿工,尽管这样做的方式超出了此答案的范围。

TLDR; 您需要了解PoW的工作原理,需要了解要使用的方法(单独或合并),(如果合并),需要了解tcp + stratum协议,并且(如果单独)了解您想为其创建矿工的硬币的rpc。我将从阅读基本和简单的独奏者开始,然后构建自己的独奏者。然后,您可以考虑迁移到复杂得多的池式矿机。如果您希望矿工使用GPU(大多数矿工都使用),那么您将需要了解NVIDIA(例如CUDA)和AMD的通用GPU接口。

我希望这对您有所帮助,也祝您好运,并希望您有更多的冒险经历! 里奥·科尼利厄斯