Qitmeer公链挖矿教程新手5步就能用电脑探矿

原创
1707 天前
18708

2019年讨论公链挖矿时,大家的脑海中一定会想起机器轰鸣、电缆如织的大型矿场。没错,挖矿越来越专业了,越来越规模化了。那么,在一个公平的区块链世界里,所有的挖矿都要这样的庞大阵势吗?对于普通人来说,如果想获得一个普惠的挖矿机会,其实,我们还是能找到一些富有情怀的公链项目,给普通人留出了参与的机会。 2 019 年9月发布测试网的Q itmeer 公链,已经明确地向笔记本电脑级的新手发出了公链挖矿的邀请。

今年6月30日开源的Qitmeer公链是面向伊斯兰金融和普惠金融的一个新一代公链。它博采众长,基于BlockDag网络,其挖矿逻辑在遵循比特币POW共识算法的同时,引进布谷鸟环算法,既保证矿币具有内在价值,又降低资源消耗, 基金会在最新的公告中介绍道,这一设定让挖矿更加公平,无论是G PU 还是C PU 拥有同等的挖矿效率,无论是专业机器还是台式机和笔记本电脑同样都可以在上面平等而有效率地挖矿。

POW 的 挖矿原理

工作量证明( PoW )通过计算一个数值( nonce ),使得拼揍上交易数据后内容进行一定的 Hash 值满足规定的上限。在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。


目标hash :0001fd98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965header 头数据 :hello qitmeer + nonce (从0,1<<32变化)找到nonce 使得blake2b(头数据) 小于目标hash

5.png 1166×578 59.4 KB


6.png 1206×78 26.8 KB

所有散列函数都有如下一个基本特性:输入不同,hash值不同。

0001fd98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965

理论需要计算的hash的次数 ,16进制长度64,每个数字都是从(0-f)变化,因为计算hash值要小于目标hash值,所以前三位都必须是0,因为散列函数的随机性,每个数字都可看成独立事件,第一位出现0的概率是1/2^4,第二位是1/2^4,第三位也是,前三位同时出现的概率就是1/2^41/2^41/2^4 = 1/2^12 假设第四位可出现0 就符合答案标准,再乘以1/2^4 = 1/2^16,也就是挖矿设备需要计算2^16次 不同nonce的hash 可能获取到答案,因为这是概率,所以计算的次数越多,也越能提现出概率准确性。

每种挖矿设备的不同,每秒hash的速度不同,也就能知道每台设备对当前难度,需要挖多久挖到答案。

难度也会根据出块时间自适应调整。

布谷鸟环算法逻辑

1.在一个N个节点M个边的二分图中搜索指定长度的环(cycle);

2.二分图使用Cuckoo hashtable存储,一边是奇数索引的节点,一边是偶数索引的节点;

3.两个重要特性:(1)当图变大时,找到符合要求的环将越来越困难。(2)在图中找到指定长度的环的概率随着M/N的增加而增加。

4.边是通过哈希函数SIPHASH产生的,SIPHASH函数的种子(seed或者称为key)是区块头的哈希值;

5.”Proof”是一组nonces,这组nonces是用来产生一个长度为42的环,PoW的结果很容易被其他节点验证。

产生边


1.假定有一个64个节点的图

2.随机生成32个边;

3.U = SIPHASH(headerHash, 2nonce) mod 31V = SIPHASH(headerHash, 2nonce+1) mod 31

裁剪边


1.有一类特殊的边, 叶子边, 它是度为1的节点;

2.叶子边永远不可能是环的一部分;

3.通过消除叶子节点,降低找环的复杂性。

找环


1.完成裁边运算后,就是找特定长度的环,如果找到,就完成本次cuckoo cycle运算

2.完成PoW了吗?

难度控制


1.通过M/N的比率控制难度,但由于对于加密货币需要精确的调整难度,所以通过调整边(M)的数量控制难度并不合。因此在实际使用中设置了M/N = ½, 平均找到解的概率为2.2%。

2.所以在实际使用中还加入了类似比特币的hash难度。通过哈希函数获取cycle nonces的hash,再通过和目标难度进行比较。

技术角度讲为什么是显卡友好型,而不是CPU挖矿

首先不是CPU不能挖矿,而是显卡更适合挖矿。

刚刚原理的例子来看,nonce值是从0计算到1<<32次方,CPU计算可以开很多线程,分别从计算不同的nonce段,但是开的线程有限,并且开线程耗费资源,同步计算性没那么好。

而显卡设计就是为并行流计算设计,例:目前一般显卡就有256个工作组,每个工作组都有近2^27次方的计算单元,那么相当于每次可同时计算2^27 * 256 次nonce,得出答案的时间也大大减少。

因此说CPU不能挖矿只是表现形式上来说,CPU挖也能挖到,只是概率非常之小,当然和当前显卡投入成本均等的条件下来讲。

Cuckoo挖矿则是显卡和CPU都有利用,显卡则快速生成非常多的边,和快速进行去除干扰边。而CPU则进行将剩余有效边,通过深度优先算法找出环,最终对环nonce进行hash 是否符合一定难度。

因此想产出Asic矿机也要耗费不小的成本,同时需要显卡并行计算能力和CPU计算能力,而这些正是显卡矿机所具备的。

Qitmeer Miner的实现原理



根据之前讲的输入不同,hash不同,有些矿工不在意的配置,可设置自定义备注,保持每个矿工不做重复劳动,一定程度增强公平性。防止大家用一样的软件,header头部都一样,那么在算力强的机器面前完全没机会。为什么说是一定程度,因为最终概率还是看hash次数越多,概率越准。

Qitmeer 挖矿 基本实现原理

1.找出当前可挖矿的GPU设备。2.启动监听最新任务的协程,GBT。3.启动监听提交任务的协程。4.启动统计矿工提交情况的协程。5.每个可挖矿的设备进行不停的挖矿尝试。6.调用显卡并行计算,使用opencl sdk 通用接口,传输数据和计算逻辑,进行并行计算。

Q itmeer 挖矿教程,快速了解Q itmeer 挖矿


第一步:打开 Qitmeer 矿池网站,并在D盘新建Q itmeer 文件夹

打开矿池网站https/:pool.qitmeer.io,点击帮助中心,找到并下载挖矿软件。



第二步:安装挖矿软件


第三步:修改挖矿收币地址


第四步:打开命令窗口,输入C MD 进行确定


第五步:输入指定代码开始挖矿