当前位置:网站首页>从开源项目探讨“FPGA挖矿”的本质
从开源项目探讨“FPGA挖矿”的本质
2022-06-30 10:36:00 【碎碎思】

挖矿(下称WK)一直是2020~2021的热点话题,一直持续到今天,今天我们想聊聊用FPGA进行WK的核心是什么,以及为什么会现在鲜有用FPGA进行挖矿的了?
WK在挖什么?
大家都在聊WK,那么这个矿是什么?这个其实很多人都了解的,就是虚拟数字“币”,最著名的就是Bitcoin。

今天我们的主题并不是Bitcoin,也不是区块链这些,而是WK(以Bitcoin为例)。
WK实际上就是通过一系列算法,计算出符合要求的哈希值(HASH),从而争取到记账权。这个过程实际上就是试错的过程,一台计算机每秒产生的随机HASH碰撞次数越多,先计算出正确HASH的概率就越大。
这就是WK的本质。
关于比特币WK与HASH
今天第一个项目是一个介绍类项目,关于比特币WK与HASH。
https://github.com/ray33ee/BitcoinHash-Verilog
项目关于HASH组成以及在WK中的应用,作者很用心的手绘了很多框图帮助我们理解,同时也有Verilog描述。

关于比特币任务生成器
在使用FPGA集群进行挖矿需要使用CPU接收任务,所以需要一个任务接收的FPGA,现在一般使用ZYNQ,以前也有软核,下面这个项目就是关于比特币任务生成器。
https://github.com/Canaan-Creative/MM
Miner Manager 是一个比特币任务生成器固件,适合 FPGA 和更快的矿机,它内部有 LM32 CPU,适合 XC6SLX16 等小型 FPGA。
关于比特币矿工
一
https://github.com/teknohog/Xilinx-Serial-Miner
https://github.com/teknohog/Open-Source-FPGA-Bitcoin-Miner
这个是已经应用并淘汰的比特币WK程序,一个使用Xilinx FPGA实现,一个使用Altera实现的。
二
https://github.com/kmod/bitcoin_mining
一个简单的比特币挖掘系统,用于 Digilent Nexys 3 fpga 板上.
https://github.com/fpgaminer/fpgaminer-vanitygen
一个功能性的,实验性的项目,性能较低。
https://github.com/byingyang/mojo-miner
为 mojo fpga 开发板开发的比特币矿工

https://github.com/jackproudfoot/fpga-bitcoin-miner
ECE350 最终项目
https://github.com/dawood95/BitcoinMinerFPGA
ECE350 最终项目
https://github.com/jkiv/shapool-core
针对 Lattice iCE40 比特币矿工
https://github.com/xtrinch/fpga-bitcoin-miner
针对 Lattice ECP5
https://github.com/dawood95/BitcoinMinerFPGA
ECE 337 最终项目
https://github.com/ivandavid14/Bitcoin
EE454 最终项目
https://github.com/jesstherobot/llbitcoin
https://github.com/ailuropoda0/BitcoinMiningAlgorithm
三
https://github.com/WebKingdom/bitcoin_asic
这个就是今天的第三个主角ASIC,这是一个ASIC比特币矿工。
GPU、ASIC和FPGA算力对比
上面介绍的项目大家不用太在意,大部分都是落后的架构和算力(不然我也不敢介绍),主要是大家可以学习比特币SHA256算法实现原理,之前有个比较火的网站(https://fpga.guide/)现在也封掉了,FPGA挖矿基本也处于淘汰的状态了,所以我们再回头看看为什么FPGA被淘汰了?
通过以上的项目在Vivado中在XC7A200T上的算力及功耗如下:

功耗约为0.5W,算力功耗比约为200MHash/sW。
而GPU呢?
在https://technical.city/en/video/bitcoin-rating 算力榜很容易得到数据:

(较老的数据)算力功耗比最高不会超过6MHash/sW。
最后就是ASIC,以蚂蚁区块链运算机DR5 35T版本为例,其算力为35THash/s,功耗为1610W,算力功耗比约为21739MHash/sW。

经过以上对比,高下立判,不解释。
PS:GPU挖矿是最简单易行的,插上显卡,下载个软件就可以了。
总结一下:虽然ASIC已经淘汰了FPGA,但是FPGA真的一无是处吗?
通过对比我们发现FPGA其实在某些方面还是优于GPU的,但是为什么现在鲜有用FPGA WK呢?其实这是一个误区,一些好的币种肯定被ASIC取代了(第一个用FPGA挖矿的矿机是中国人制造的,创造者是中国人南瓜张(张楠赓,嘉楠耘智创始人))。在一些小众的币种里FPGA还是有一席之地的。
FPGA矿机的几个特点:
1、通过上面的对比,FPGA的算力功耗比比GPU低很多;
2、FPGA可以通过升级让矿机挖取不同算法的POW币种;
3、优化得当,算力比GPU高很多;
4、当算法内存需求小、并行性较高时,其优势较GPU更高;
5、风险较ASIC低,每个币种都有不同算法,ASIC更新周期较慢,而且一旦“币潮”前期的投入基本没了,对于一个小公司可能就GG了。
(上面的对比反正就是拿我的优势对比你的劣势,XX对比法则!@)
最后点缀一下主题:“FPGA WK”的本质是什么?
通过上面一些Bitcoin的WK算法,我们能看出WK的本质其实就是并行实现挖取不同币种所需要的算法,比如SHA256或者Scrypt等。不能说在WK领域FPGA被淘汰了,而是在受欢迎的币种里被淘汰了,在小币种里还是受欢迎的,由于其“可重构”的特点更适合在不同币种之间进行切换,硬件成本也低,或许哪一天这个领域突然就火起来了。或许你也可以先制作一个可以用FPGA进行WK的币种,让全世界为你疯狂~\
免责声明:本文观点仅代表个人观点,如有错误欢迎指正,同时本文只是简单的介绍一些WK原理,由此产生的任何经济损失,本公众号概不负责~
边栏推荐
- LeetCode Algorithm 86. 分隔鏈錶
- LVGL 8.2 Checkboxes as radio buttons
- Pytorch notes torch nn. BatchNorm1d
- China will force a unified charging interface. If Apple does not bow its head, iPhone will be kicked out of the Chinese market
- Agile Development: super easy to use bucket estimation system
- matplotlib 笔记: contourf & contour
- LeetCode Algorithm 86. 分隔链表
- Google 辟谣放弃 TensorFlow,它还活着!
- 焕发青春的戴尔和苹果夹击,两大老牌PC企业极速衰败
- OceanBase 安装 yum 源配置错误及解决办法
猜你喜欢
时间复杂度与空间复杂度
第一届中国数字藏品大会即将召开
Qt之实现动效导航栏
Every time I look at my colleagues' interface documents, I get confused and have a lot of problems...
China will force a unified charging interface. If Apple does not bow its head, iPhone will be kicked out of the Chinese market
在 sCrypt 中实现高效的椭圆曲线点加法和乘法
LVGL 8.2 Image
Go zero micro Service Practice Series (VIII. How to handle tens of thousands of order requests per second)
Pytorch Notebook. Nn. Batchnorm1d
pytorch 笔记 torch.nn.BatchNorm1d
随机推荐
ArrayList与顺序表
Pytorch notes: validation, model eval V.S torch. no_ grad
Classic interview question: responsible modules, how do you design test cases for these function points? [Hangzhou multi surveyors] [Hangzhou multi surveyors \wang Sir]
Mysql database foundation: TCL transaction control language
基于HAL库的LED驱动库
Google 辟谣放弃 TensorFlow,它还活着!
The intelligent DNA molecular nano robot model is coming
同事的接口文档我每次看着就头大,毛病多多。。。
LVGL 8.2 Simple Drop down list
List介绍
内存逃逸分析
LVGL8.2 Simple Checkboxes
LVGL 8.2 Simple Image button
LVGL 8.2 menu from a drop-down list
go-zero微服务实战系列(八、如何处理每秒上万次的下单请求)
LeetCode Algorithm 86. Separate linked list
[STL source code analysis] iterator
Deep dive kotlin Xie Cheng (17): Actor
05_ Node JS file management module FS
MySQL从入门到精通50讲(三十二)-ScyllaDB生产环境集群搭建