作者:
Alexander Standridge 理学硕士研究生
加州大学北岭分校astandridge@gmail.com
Calvin Ho 理学硕士研究生
加州大学北岭分校calvin.ho.67@my.csun.edu
Shahnam Mirzaei 助理教授
加州大学北岭分校 shahnam.mirzaei@csun.edu
Ramin Roosta 教授
加州大学北岭分校ramin.roosta@csun.edu
将可编程逻辑与处理器子系统集成在单个器件中,开发出适应性强、经济适用的比特币矿机。
比特币是一种虚拟货币,在过去几年里逐渐流行开来。由此,比特币的追随者通过采购或者“挖矿”比特币的形式,投入其部分资产来支持这种货币。挖矿是指使用计算机硬件为比特币网络执行数学计算的过程。提供服务的比特币矿工可以得到一笔报酬(目前是25比特币)以及任何内含的交易费用。由于网络报酬是按照所有矿工完成的计算量进行分配的,故挖矿的竞争异常激烈。
比特币挖矿开始是在CPU和GPU这样的低成本硬件上运行的一个软件进程。但随着比特币流行开来,挖矿过程发生了戏剧性转变。早期的矿工必须使用高功耗处理器才能实现令人满意的“哈希速度”,也就是挖矿速度。虽然使用CPU/GPU挖矿效率十分低下,但其灵活度足以适应比特币协议的变化。近年来,挖矿活动的重心慢慢转移到专用或半专用ASIC硬件上,以优化和实现高效“哈希速度”。转用这种硬件提高了挖矿效率,但其代价是降低了适应挖矿协议变化的灵活性。
ASIC是一种在特定应用中用来高效执行某些特定任务的专用硬件。虽然ASIC比特币矿机成本相对较低,且得到的“哈希速度”也相当优异,但其代价是降低了灵活性,难以适应协议的变化。
与ASIC相似,FPGA可也用作高效矿机系统,而且成本也相对较低。此外,FPGA与ASIC相比灵活性更强,能够适应比特币协议的变化。目前的难题是需要设计出一款不依靠PC主机或中继装置就能连接到比特币网络的完全高效且相当灵活的挖矿系统。我们团队使用赛灵思Zynq-7000 All Programmable SoC顺利完成了这一任务。
总体思路
要设计出一个由可行的比特币节点和高效灵活的矿机等组成的完整挖矿系统,我们需要某种功能强大的FPGA芯片,来同时满足灵活性和性能要求。除FPGA外,我们还需要使用处理引擎来提高效率。
在这个完整的片上系统(SoC)上,我们需要经优化的内核来运行包括网络维护和交易处理在内的所有要求的比特币任务。能满足所有这些条件的硬件就是位于ZedBoard开发板上的Zynq-7020 SoC。 ZedBoard售价大约在300到400美元,与同类产品相比,价格相当便宜(参见 http://www.zedboard.org/buy)。
Zynq-7020 SoC芯片集成有两个ARM® Cortex™-A9处理器和85,000个Artix®-7 FPGA逻辑单元。ZedBoard开发板还内置有512MB DDR3存储器,能够让我们更快速地运行SoC设计。最后,ZedBoard还提供一个用于海量存储的SD卡槽,以便于我们把整个更新后的比特币程序存放在SD卡上。
我们使用ZedBoard实现了我们的SoC比特币矿机。它由主机、中继器、驱动程序和矿机组成。我们使用原始比特币客户端的非图形化界面作为主机,与比特币网络进行互动。中继器使用驱动程序从主机向矿机传递工作。
图1 – 矿机系统的基本数据流显示了各组件与比特币网络之间的关系