主页 > imtoken体验版 > 两种挖比特币的方法

两种挖比特币的方法

imtoken体验版 2023-01-18 15:36:07

比特币挖矿的两种方式

比特币挖矿一般有两种方式。早期一般都是单枪匹马,也就是单枪匹马淘金。随着矿机性能的指数级提升,Solo一直无法保证收益,现在普遍用于加入矿池。

单人模式

上一张照片

说明如下:

solo 矿工一般通过 bitcoind 获取网络上的新交易。挖矿软件(如50Miner、GUIMiner等)周期性调用RPC方法(getblocktemplate)从bitcoind获取新交易

该方法返回一个新交易列表+coinbase交易挖掘软件获得的交易构造一个新区块,并创建一个80字节的区块头。然后,挖矿软件将区块头和难度设置传送给挖矿硬件(如CPU、GPU、ASIC等),由挖矿硬件穷举计算所有可能的区块头nouce值,找出是否有满足设置哈希值的难度。

如果没有挖矿比特币软件,挖矿软件会给coinbase添加一个额外的nouce值,然后交给挖矿硬件进行计算。

如果是这样,挖矿硬件将带有适当nouce值的块头返回给挖矿软件。挖矿软件将区块头+区块做成一个完整的区块,并传递给bitcoind。 bitcoind 向 P2P 网络广播块并等待网络确认。矿池方式

挖矿,计算量越来越大,矿工获得收益的概率不仅越来越小,而且越来越不稳定。所以就有了矿池的方式,大家一起挖,挖出来的收益按照产出的多少来分配。

基本方法是:矿池将目标难度降低几个数量级,然后分配给每个矿工。矿工可能会发现很多符合矿池目标值的头,称为shares。

其中,如果一个header恰好满足目标难度值,将由矿池提交到P2P网络,收益将按照每个矿工提交的份额进行分配。

可以和上图对比

同时解释一下:

矿池使用bitcoind获取P2P网络获取新交易矿工的挖矿软件连接矿池,使用以下方法之一获取用于构建区块头的信息。

getwork RPC

直接提供给矿工构建的区块头。现在基本只用在solo模式下,是0.9.5及以下版本。

getblocktemplate RPC

为矿工提供 coinbase 交易、所有新交易和其他所需信息,例如版本号。难度值是矿池接受份额的难度值挖矿比特币软件,而不是P2P网络的难度值。

矿工可以检查交易,甚至可以追加或删除交易