挖礦及其算法機理

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,比特幣挖礦算法相關功能實現;

芯片物理算力  = 芯片在工作的內核數量 * 內核的計算性能

芯片物理算力爲芯片在工作的內核數量乘以內核的計算性能。

礦池算力統計是基於礦池分配的難度和礦機返回結果的時間間隔來估算礦機的算力。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章