网站首页 > 百科 >比特币rpc接口挖矿(比特币客户端挖矿命令)

比特币rpc接口挖矿(比特币客户端挖矿命令)

POW即工作量证明,区块链是由网络上互不相识、匿名的节点共同维护,每个区块就是所投入工作量的证明,要确保妄图修改历史区块的节点比那些诚实的、仅仅是要增加新区块的节点耗费更大的工作量,那么与其耗费大力气篡改区块,还不如老老实实的竞争出块权,还能得到区块链奖励。

那么比特币的POW到底在做什么?真如大家传说中的挖矿吗?当然不是真的挖矿啦,比特币利用了哈希的随机性,一点小小的改动,哈希值变化会很大,无法进行预测。

POW具体在做什么呢?计算区块头的哈希值,好像大家忘记了,好吧,我把上个文章的图在贴过来,

跟大家一起学习区块链技术系列之一 比特币之区块链 POW

这几个成员变量里面除了nNonce其它都是固定值,我们要选一个nNonce使得区块头的哈希值小于某一个数,这个“某一个数”的选择直接就影响了难度。比如,如果最大的哈希值是 2^256-1,你会发现你很容易找到nNonce使得哈希值小于2^255。

上面这个例子很容易啦,因为2^255太大了,如果把这个目标值改小了,这个可就没这么容易算了,比特币假定这个概率是线性的,目标值越小,尝试就会越多(平均来说),也就是难度越大。

新产生的区块只有满足了共识协议中的难度规定才可能被大家接受。每2016个区块产生后,网络各节点会通过区块头的时间戳来计算时间间隔,应该是1,209,600秒(两星期)。

  • 如果产生2016个区块的时间少于两个星期,期望的难度值就会相应增加(最高300%),使得下次2016块产生的时间是正好两星期。

  • 如果产生2016个区块的时间大于两个星期,期望的难度值就会相应降低(最高30%)。

(注意:比特币区块是从0开始的,计算2016个区块产生的时间是,0~2015)

区块链是一条工作量证明的链,如果你要修改一个区块,这个区块后续的区块都要修改,要花费更多的算力才能追上正常链的高度,这里有一个51%攻击,就是你的算力达到了全网算力的51%,就可以做到了。实际上这个百分比可以比50%小,也能达到目的。那么有这么大的算力为什么不老老实实的挖矿呢?现在的奖励可不算少。

这个哈希只是在计算区块头的哈希,80个byte,也就是说交易再多,也不会增加计算的资源需求,大不了重新计算一遍Merkle根。

现在没有用Bitcoin Core来挖矿的了吧,但是挖矿的代码都还在,用bitcoin-cli generate 1命令可以产生区块,当然仅限自己的私有链,上代码,

代码位置:bitcoin/src/wallet/rpcwallet.cpp

跟大家一起学习区块链技术系列之一 比特币之区块链 POW

这个generate函数下面调用了generateBlocks

代码位置:bitcoin/src/rpc/mining.cpp

跟大家一起学习区块链技术系列之一 比特币之区块链 POW

相关内容

比特币rpc接口挖矿(比特币客户端挖矿命令)文档下载.: PDF DOC TXT
您可能感兴趣的文章
24h快讯
最高法 物权法司法解释(最高人民法院关于适用物权法司法解释二)
最高人民法院分管日常工作副院长贺荣介绍,作为适用民法典的第一部司法解释,在适......
2023-12-08 法规
治安处罚四十四条司法解释,治安处罚四十四条司法解释最新
第四条公民、法人或者其他组织违反行政管理秩序的行为,应当给予行政处罚的,依照......
2023-12-08 法规
治安处罚法95条司法解释,治安处罚法95条司法解释全文
本文目录《中华人民共和国治安管理处罚法》第五十七条内容是什么2021年治安管......
2023-12-08 法规
失效刑事司法解释(失效刑事司法解释最新)
本文目录2021新法典对诉讼时效的解释全文刑事案件时效具体规定2021新法典......
2023-12-08 法规
查看更多