挖掘游戏开发
2019-08-12 19:59:55 来源:沈阳小程序开发 作者:沈阳软件开发
在区块链世界中,一些非常有趣的比喻,如挖掘黄金,“挖掘”称为“采矿”的数字货币,挖掘数字货币的人称为“矿工”,而用于“挖掘”数字货币的计算机被称为“我的”机。”
比特币挖矿原理
比特币的块头包含总共6个字段,如下所示:
Int32_t nVersion,4字节,版本号,通常是固定的,仅在升级期间更改。
Uint256 hashPrevBlock,32字节,前一个块的块头哈希,由前一个块确定。
Uint256 hashMerkleRoot,32字节,包含块中所有事务结构的Merkle根,调整块中的事务顺序,添加或删除事务,或者在修改Coinbase事务时更改。
Uint32_t nTime,4个字节,时间戳,允许的最后一个块时间早于前一个块,但必须在合理的时间间隔内使用,通常直接使用机器的当前时间戳。
Uint32_t nBits,4字节,挖掘难度,由整个网络决定,每2016块都根据算法重新调整。
Uint32_t nNonce,4个字节,随机数,提供2 ^ 32个值。那是4,294,967,296。
其中nVersion,hashPrevBlock,nBits是固定的,而其他hashMerkleRoot,nTime,nNonce是可变的。比特币挖掘原则是不断更改块头中的变量值,以便对块头进行双SHA256哈希,并且结果小于挖掘难度目标值。即:SHA256D(BlockHeader)< F(NBITS)
其中,SHA256D(BlockHeader)是块头的双SHA256哈希,F(nBits)是由nBits计算的难度目标值。
算力的表示
1 H/S=每秒一次操作
1 KH/S=1000 H/S,即每秒1千次操作
1 MH/S=1000 KH/S,即每秒100万次操作
1 GH/S=1000 MH/S,每秒10亿次操作
1 TH/S=1000 GH/S,每秒1万亿次操作
1 PH/S=1000 TH/S,即每秒1000万亿次操作
1 EH/S=1000 PH/S,每秒100万亿次操作
CPU挖矿原理
CPU挖掘,即使用RPC接口setgenerate来控制挖掘。
控制台输入setgenerate true 2,开始挖掘。它后面的数字表示所代表的挖掘线程数。当然,首先完成同步数据。
由于单CPU操作SHA256D计算能力约为2 MH/S,nNonce提供的4字节搜索空间完全足够,即它支持4G值。
GPU挖矿原理
GPU操作SHA256D的计算能力约为200M-1G,nNonce提供4G搜索空间,如果只调整nNonce的值,则可以支持约4秒。因此,您可以调整nTime,每次调整nTime时可以继续挖掘4秒。
GPU挖掘使用GETWORK协议,即挖掘程序和节点分离,即挖掘组件与区块链数据分离。在GPU挖掘时代,GETWORK协议用于使挖掘程序与节点交互。
核心思路为:节点构造区块,将区块头数据交给挖矿程序,挖矿程序遍历nNonce进行挖矿。验证合格交付给节点,节点提取nNonce和nTime验证区块,如果符合要求即向全网广播。遍历结束将调用GETWORK,节点构造新区块,然后重复上述过程。
GPU经典挖掘驱动程序是cgminer,源代码:http://github.com/ckolivas/cgminer。
GPU挖掘缺陷:GETWORK协议为挖掘程序提供了4G的搜索空间,并且需要在结束后再次调用GETWORK RPC接口。挖掘机出现后,采矿机的计算能力已达到10 TH/S.显然不适合继续使用GETWORK协议来频繁调用RPC接口。因此,您需要转向更高效的getblocktemplate协议。
GPU挖掘可以使用图形卡进行挖掘。并非所有的图形卡都适合挖掘。GPU具有更高的计算能力要求,并且对带宽和缓存有要求。常规图形卡不能用于挖掘。提示:0x9F5A50XF1A63科技有限公司以“专注于0xBBE0A,用心服务”为核心价值观。所有这些都集中在用户需求上。希望通过专业水平和不懈努力重塑企业网络形象,为企业产品推广文化发展提供服务指导;公司主要产品:主要提供游戏开发、移动应用开发、定制系统开发、区块链系统开发,小程序开发,网站开发。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。
上一篇:
开发国际象棋
下一篇:很抱歉没有了