挖矿及其算法机理

Pow(工作量证明):通过一个Hash函数找到一个满足当前难度的Nonce(包含在区块头里)的值,矿工用一些交易构建候选区块,然后计算区块头的Hash值看是否小于当前目标值,如果小于就修改Nonce值继续计算直到得到合适的Nonce值,使得区块头Hash满足当前难度,这个即是Pow(工作量证明)算法的原理。

Pos(股权证明):类似于股东机制,拥有股份越多的人越容易获取记账权,同时越倾向于维护网络正常机制,持有币等相关资产作为保证金来对赌一个合法的块成为新区快,并从中获得收益,提供的保证金越多获得记账权的概率越大。持有的币乘以持有时间为币龄,每发现一个Pos区块币龄会被清空,同时获得0.05个币利息。

Dpos(股份授权证明):由比特股bitshares提出,以比特股为例DPoS机制是让每一个持有BTS的人对整个系统资源当代表的人进行投票,而获得票数最多的101个代表将进行交易打包计算。

以比特币挖矿为例挖矿任务及计算原理及比特币挖矿软件cgminer使用

几个概念理解如下:

矿池:运行完全节点,并和区块链的P2P网络通讯,获取新的区块和打包好的区块广播出去。矿池本身不进行挖矿计算,而把计算任务分配给连接矿池的矿机。

矿机:由CPU,GPU,FPGA,ASIC这类设备充当,用于完成具体的计算,矿机从矿池处获取任务,并提交完成后的结果给矿池,矿池按算力占比,分配收益给矿机主人。

矿场:部署大量矿机的地方

挖矿软件cgminer对于CPU平台不限,X86、ARM、Mips均可支持,为保证软件运行效率,CPU可选4核1.2G以上,内存4G以上,带有网口、串口、SPI、USB接口等。cgminer对算力芯片主要是任务下发和nounce回读,与矿池之间通过stratum协议进行交互。

源码各主要文件作用如下:

配置文件主要设置矿池地址、矿工用户名和密码等。

  1. cgminer.c,CG的主程序,完成初始化、命令行参数或cgminer.conf文件解析、对挖矿芯片的检测、线程管理的初始化、循环产生work等。
  2. btc.c,比特币挖矿相关功能实现;
  3. ltc.c,莱特比挖矿相关功能实现;
  4. scrypt.c,莱特比挖矿算法相关功能实现;
  5. sha2.c,比特币挖矿算法相关功能实现;

芯片物理算力  = 芯片在工作的内核数量 * 内核的计算性能

芯片物理算力为芯片在工作的内核数量乘以内核的计算性能。

矿池算力统计是基于矿池分配的难度和矿机返回结果的时间间隔来估算矿机的算力。

 

你可能感兴趣的:(区块链)