從零搭建FPGA區塊鏈運算機——ASIC、GPU、FPGA對比
開源!開源!開源!
只分享技術!只分享技術!只分享技術!
2020年末到2021年初,區塊鏈技術被持續看好,各路英雄好漢涌入,導致游戲顯卡的需求和價格暴增,這使得我只能給新攢的電腦配一張50元亮機卡,茍且偷生,顯卡奸商們的唯利是圖,讓我和我的小伙伴憤憤不平,決定根據自身所學,使用FPGA做個區塊鏈運算機,以尋求區塊鏈運算機需求分流,顯卡價格下降的“曲線救卡”路線,或者說是一種充滿希望的嘗試,
在專案的前期,我們在網上查閱了大量的相關資料,其中更多是對區塊鏈原理科普性質的介紹,鮮有從零搭建FPGA區塊鏈運算機的技術分享,我們只好逐步摸索,制定了區塊鏈運算機三步走策略,終于歷經半年,我們逐步實作了純軟體的基于Python3的CPU區塊鏈運算機,基于FPGA的1.0區塊鏈運算機,還有現在想和大家分享的基于FPGA的2.0區塊鏈運算機(后面簡稱FPGA運算機),
三步走策略的第一步是最難的,這里主要想感謝GitHub上ricmoo大神開源的基于Python2的CPU區塊鏈運算機工程(https://github.com/ricmoo/nightminer),它很好地幫助我們了解了整個區塊鏈運算的流程,我們也將其升級到了Python3的版本,盡可能多地添加了中文注釋,并分享給大家(https://github.com/WF-2021/BTC-Miner),
我們想把整個區塊鏈運算機搭建的程序分享出來,一個是分享我們獨立做出FPGA運算機的喜悅,另一個是希望給想要了解區塊鏈,以及想要自己搭建區塊鏈運算機的朋友一些參考和交流的機會,盡可能幫助大家少走彎路,
我們FPGA運算機的硬體部分,使用Vivado2019.2開發環境,和Xilinx公司CX7A100T的FPGA實作,而軟體部分使用Python3實作,目前使用SHA-256加密演算法,可實作100MHash/s的算力,這是我們在該型號FPGA下,可實作的最高算力(也希望有大神可以提供更好的改進建議),使用Vivado2019.2進行功耗評估,其功耗約為0.5W,算力功耗比約為200MHash/sW,

同時我們也查閱了相關GPU在區塊鏈中的算力(https://technical.city/en/video/bitcoin-rating),可以看到,主流顯卡的算力雖然很高,但是功耗也很高,算力功耗比最高不會超過6MHash/sW,在這個方面,我們的FPGA運算機是主流顯卡的約33倍,具有絕對的優勢,

當然,對于使用SHA-256加密演算法的區塊鏈運算機來說,ASIC是絕對的霸主,我們以螞蟻區塊鏈運算機DR5 35T版本為例,其算力為35THash/s,功耗為1610W,算力功耗比約為21739MHash/sW,這是我們的FPGA運算機的100多倍,

綜上,從算力和功耗的角度分析,ASIC >> FPGA >> GPU,這是芯片的設計初衷所導致的,ASIC專為特定加密演算法的區塊鏈而設計,不能實作其他功能;FPGA相比于ASIC具有可編程性,犧牲了一些性能;GPU本身是做圖形處理的,只是因為核多和并行計算,才用來搭建區塊鏈,
從硬體成本的角度講,ASIC和GPU都具有很完整的產品供應鏈,性價比都很高,而FPGA在區塊鏈運算這個行業,更多是技術驗證,沒有形成完整的產品供應鏈,所以性價比要低很多,沒有任何“曲線救卡”的可能性的,但我們認為技術驗證才是FPGA的定位,所以前面才說是“一種充滿希望的嘗試”,
我們希望以多篇連載的方式分享整個區塊鏈運算機的搭建程序,一個是因為我們的業余時間都很少,另一個是我在給小伙伴講解其中的設計思路時,發現有很多問題不是一兩句能說明白的,如果我們力爭用一篇萬字長文,把演算法原理、設計思路和搭建實作都和大家說清楚是不可能的,所以也希望感興趣的朋友可以保持關注,像對區塊鏈運算非常感興趣,已經按耐不住的朋友,我們也提前將FPGA區塊鏈運算機的開源工程連接放在了這里(https://github.com/WF-2021/BTC_FPGA_MINER),它僅需符合BSD開源協議即可被二次開發,
后面我們會從區塊鏈演算法原理、FPGA設計實作(主要)、Python3上位機設計實作和集成聯調這幾方面,和大家分享,敬請期待,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/294544.html
標籤:區塊鏈
