网站首页 > 百科 >比特币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快讯
违法生育包括哪些情形,什么叫违法生育
一、教师如果违法计划生育会有什么处罚如果是教师,违反计划生育规定,应由计生机......
2024-04-05 法规
自残违法吗?自残算不算犯罪
一、教唆他人自残构成犯罪吗教唆他人自残有故意杀人的嫌疑,所以规劝大家不要以身......
2024-04-05 法规
新昌机动车违法?机动车违章处理时间限制
一、新昌货车通行证怎么办理1.办理新昌货车通行证是可行的。2.因为新昌货车通......
2024-04-05 法规
违法举报网站,公安干警违法举报平台
一、国家有奖举报平台以举报违章车辆为例,有奖举报平台如下:为加大监管力度,营......
2024-04-05 法规
查看更多