比特币挖矿——控制器与矿机

#区块链

1. 介绍

只要把矿机插电、插网, 开启电源,它就可以 24 小时源源不断的生产虚拟货币。听起来热血沸腾吧!下面就来看看矿机怎么连网和挖矿的.矿机有很多种,有的集成很多显卡.有的看起来像台电脑,有的像个U盘.

图片.png

无论哪种矿机,至少都包含连网和计算两个部分.连网部分负责收发计算数据和证明挖矿者身份,计算部分负责具体的挖矿.这里我们来考虑最常见的一个控制板带多个矿机,连接他人矿池的情况.矿工只在设置的时候需要电脑或者手机连接到控制器的 web 界面,其余时候只要启动控制板和矿机即可挖矿(有些矿机和控制板是一体的)。当然这里指的是连他人的矿池,如果自己做矿池,矿池也是需要机器的.

2. 控制器(与网络相连部分)

下面以树莓派控制板为例分析,控制内部如何运作,以及如何与上下层交互。一般树莓派都自带再 dhcp 客户端,连上网线就能自动获取 IP 地址,其上运行一个 WebServer,外加 miner-web 工具,即可支持矿机的 Web 设置界面。矿工通过路由器看找到分给控制器的 IP 地址,然后用 http 连接的方式来设置它,此时需要设置矿池的具体信息,以及钱包的地址,地址从矿池得到。通过 usb 连接的矿机 (可通过 hub 连多台),直接映射成/dev 下的设备,树莓派上运行的挖矿程序 miner 控制设备完成具体计算,miner 的参数通过 web 设置得到。如果没有控制器,用电脑也可以完成上述工作,只是像树莓派这种微型电脑功耗低,出售者又已把挖矿等相关功能做好,相对省时,省力,省电.控制器的核心就是 miner 程序,也可以在电脑上运行 minerd 控制矿机,如果还没买矿机,也可以用电脑上的 CPU/GPU 挖,只是算力有限挖不出来。不过用该方法,在搭建矿池时,就可以用一台机器来模拟矿池整个运行逻辑。下面介绍几种常用的挖矿工具:

1) cpuminer(可以云端模拟,不需要 gpu,矿机等设备)

1
2
3
4
5
6
$ git clone https://github.com/pooler/cpuminer.git
$ cd cpuminer/
$ ./autogen.sh
$ ./configure
$ make;make install
$ minerd --url=矿池地址 --user=用户名 --pass=密码

2) cpu/gpuminer(需要矿机,无法在云端测试)

1
2
$ apt-get install cgminer
$ cgminer -o 矿坑地址 -u 用户名 -p 密码

3) bfgminer(需要矿机,无法在云端测试)

1
2
$ apt-get install bfgminer
$ bfgminer

不指定参数,也可以找到本机上开启的矿池,并搜索与本机相连的矿机硬件.

3. 矿机(计算部分)

早期使用电脑挖矿,现在都是专用矿机:显卡,FPGA(现场可编程门阵列)、ASIC(专用集成电路)矿机的面世,使算力级别大幅提升、计算时间减小。

图片.png

1) 显卡

显卡的组件模块是乘法器、加法器。可并行计算,但是功耗大。

2) FPGA 矿机

FPGA(Field-Programmable Gate Array) 现场可编程门阵列。它是一系列通过可编程互连的可编程模块。FPGA 犹如乐高,其灵活性高,可根据实际应用的需求,构建所需的硬件组件。但是乐高本身就是一种浪费:其功耗性能比,可变布线资源、多余的逻辑资源,其实都是浪费。虽然比显卡省电,但效果不如显卡,只是过渡时期的产品。

3) ASIC 矿机

ASIC(ApplicationSpecific Integrated Circuits)是为专门目的而设计的集成电路.它不能修改,所以前期开发周期长,成本高。像蚂蚁矿机,烤猫矿机都是 ASIC 矿机。ASIC 的能效也是最高的,现在卖的矿机基本都是这种.