使用Vagrant和AWS挖比特币
Vagrant提供了易于配置、重现和可移植的工作环境,能够在团队成员之间提供统一和灵活的配置管理环境。Vagrant具有如下优点:
1.开发人员:可以隔离环境的依赖和配置差异,实现统一开发环境的配置
2.网管运维:可以在本地环境中测试各项配置和脚本,安装环境就绪后方便的发布到AWS或者RackSpace上。
3.设计人员:可以自动化配置Webapp需要的所有系统,让设计人员能够最快的进入工作状态
Vagrant支持主流的虚拟机系统,在本地开发时可以使用VirtualBox,部署在远端时可以使用AWS,它的安装也非常简单,在它的官方网站:http://www.vagrantup.com(需翻墙)下载对应平台的安装包即可。安装成功后,系统路径会增加Vagrant命令。这个工具的子命令不多,很容易掌握,例如:
- vagrant up: 开启虚拟机(首次开启会完成初始化工作)
- vagrant ssh: 登入虚拟机
- vagrant halt: 正常关闭虚拟机
- vagrant destroy: 关闭并移除虚拟机
- vagrant suspend: 让虚拟机进入睡眠状态
每个Vagrant的项目都有一个Vagrantfile的配置文件,它负责配置虚拟机的环境和初始化脚本。今天我们利用Vagrant演示下如何使用Amazon的EC2主机进行比特币的挖掘。 Amazon的EC2类型中有一种内置双GPU的实例(http://aws.amazon.com/cn/ec2/instance-types/
CG1实例采用2颗 Intel Xeon X5570,四核心并支持超线程,连同2颗NVIDIA Tesla M2050 GPU。我们就使用这个类型来挖掘比特币。 挖掘之前还要做些准备工作,包括:
- 推荐注册一个比特币的挖掘池账号:https://mining.bitcoin.cz/accounts/register/,记录自己的worker名称和密码
- 注册一个Amazon的云服务账号(具体步骤请参见Amazon的官方文档)
- 登录进入Amazon的Console,选择EC2服务,选择Virginia或者Ireland区,这里推荐使用Virginia
之所以选择这两个区是因为CG1只能在这两个区之一使用,而且这个CG1每小时的租用价格为$2.10。
- 创建一组keypair,并保存pem文件到本地路径
- 创建一个Security Group,开放22端口和80端口即可
- 记录自己的登录账号的access_id和access_key
好了,准备工作到此结束,下面是开始配置Vagrant环境
- 首先导出我创建的Vagrant工程
git clone https://github.com/wangqi/bitcoinminer.git
- 进入bitcoinminer目录,用编辑器打开Vagrantfile文件,需要对画黄线的部分进行个性化修改
- 其中的“ami-7f5d7016”也许不能直接使用,那么可以访问“https://aws.amazon.com/marketplace/pp /B00CIYTAUW/ref=srh_res_product_title?ie=UTF8&sr=0-4& qid=1386259113205#product-details”创建一个自己的ami文件即可。第一次使用付费的AMI需要先同意一个使用许可。
- 修改setup.sh初始化脚本,将自己创建的worker名称和密码替换进去
- 运行"vagrant up"命令,这个命令会读取所有的配置文件,并远程启动一个CG1实例。启动完毕后可以通过Amazon Console看到新的实例
- 运行"vagrant ssh"命令可以登录进入这台主机,进入home目录,setup.sh脚本应该已经安装好了所有需要的软件和脚本。~/poclbm是通过opencl和GPU进行挖矿,~/cpuminer是通过CPU进行挖矿
- 检查"miner.sh"脚本设置,如果worker的账号正常,那么直接执行这个文件就可以开始挖矿。
- 登录bitcoin.cz的账号可以查看挖矿的速度,这台EC2主机每秒95Mhash
比特币的兑换价格是$950兑换1比特币左右,但是EC2的挖矿速度相对于硬件矿机(https://en.bitcoin.it/wiki /Mining_hardware_comparison)来说太慢了,而每秒$2.1的费用并不便宜。我挖两个小时获得的比特币数量为: