在矿池服务中,客户端是否执行整个 PoW 算法?

In a mining pool service, do the client execute the entire PoW algorithm?

我知道加密货币网络中的对等点可以帮助决定必须添加到区块链的下一个区块。要做到这一点并获得一些奖励,这样的节点必须是第一个能够解决某些 PoW 算法的节点。 据我了解,矿池使用客户端机器的计算能力来尽快解决 PoW。 我想矿池服务器是唯一直接参与网络的节点,它完全使用客户端的计算能力执行算法,而客户端只执行一些次要任务。

如何将此计算任务拆分给多个客户端?

矿池服务器根据请求 getblocktemplate 从当前硬币节点接收 "task"。此后,服务器根据收到的任务,为参与矿工准备子任务,并为他们提供另一个 getblocktemplate 结构,减少 difficulty 参数。当矿工解决子任务(降低难度)时,他将他的解决方案发送到一个池中,这个部分解决方案名为 a share。矿池根据提交的股份数量和股份难度计算参与者的贡献。

部分股票的难度可以达到币网难度。这样的共享名为 solving share,这是块解决方案。结果,这个 solving share 作为一个区块添加到区块链中,矿池获得区块奖励。 从技术上讲,矿工可以直接用钱包工作,不需要矿池。此模式名为 solo mining.

查看 getblocktemplate 的规范:https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki