linux下安装Btcd和btcwallet
前言
入坑区块链了,最近在帮实验室的师兄做论文实验,论文的内容是实现一种新的公链共识算法。
实验内容是 打算更改Btcd共识层的代码,然后在simnet环境下进行多节点的测试。
Golang之前没有接触过,只知道是一门比较适合写分布式的编译型语言,正好趁着这次机会学习一下。
本文介绍btcd和btcwallet的安装
环境搭建
配置git环境
略
配置Golang环境 (版本 1.11.5)
-
从官网下载go1.11.5版本的安装包
wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
-
解压安装至/usr/local
tar xzf go1.11.5.linux-amd64.tar.gz -C /usr/local
-
配置Golang工作目录
#把目录放置在用户目录下 mkdir $HOME/go mkdir $HOME/go/src mkdir $HOME/go/bin
-
配置Golang环境变量
vim ~/.zshrc # 因为我安装了zsh,所以更改环境变量的地方是~/.zshrc,如果使用的是默认的bash的话,那么修改的是~/.bashrc # 在文件末尾添加 export GOPATH=$HOME/go export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export GOTOOLS=$GOROOT/pkg/tool export PATH=$PATH:$GOBIN:$GOTOOLS
-
使配置生效
source ~/.zshrc
-
验证环境是否安装正确
go env
安装Go的包管理工具glide
- 通过go安装
go get -u github.com/Masterminds/glide
- 验证glide是否安装成功
glide --veriosn
拷贝btcd源码
- 使用git拷贝源码
git clone https://github.com/btcsuite/btcd $GOPATH/src/github.com/btcsuite/btcd
使用glide安装btcd所需依赖
-
切换目录
cd $GOPATH/src/github.com/btcsuite/btcd
-
生成glide所需要的依赖文件
glide init
-
下载依赖
glide install
注意
1. 这里首先需要glide init一下,网上文章一大抄很多都把这步漏了,glide init之后会生成glide install所需要的依赖文件
2. ok 没错,glide install 会出错 因为有库被墙了。所以为了以后实验的便捷性,我这里使用了外网的服务器,所以不会报错。如果不愿意租外网的服务器,我后续再出一个手动拉源码的教程,经测试也是可以用的
编译btcd及相关组件
- 利用go install编译btcd 以及 cmd下操作组件
cd $GOPATH/src/github.com/btcsuite/btcd go install . ./cmd/...
拷贝btcwallet源码
这里值得注意的是Golang版本的比特币客户端btcd是没有集成钱包功能的,所以为了使用完整的比特币客户端我们还需要另外下载和编译btcwallet的组件
- 使用git下载btcwallet源码
git clone https://github.com/btcsuite/btcwallet $GOPATH/src/github.com/btcsuite/btcwallet
使用glide安装btcwallet依赖
- 切换到btcwallet目录
cd $GOPATH/src/github.com/btcsuite/btcwallet
- 初始化glide需要的依赖文件
glide init
- 安装所需依赖
glide install
编译btcwallet及相关组件
- 利用go install编译btcwallet 以及 cmd下操作组件
cd $GOPATH/src/github.com/btcsuite/btcwallet go install . ./cmd/...
给btcd和btcwallet加入默认的配置文件
这里将代码包中的配置文件加入到 btcd 和 btcwallet的启动文件夹去,这两个文件都是注释过的,所以没有对配置起什么作用,但是必须执行这两步,不然后面启动程序的时候会报缺少文件的错误。
后续启动的时候也可以写配置文件来代替在命令行中写参数,两者没有什么区别
- 添加btcd配置文件
cd ~ mkdir .btcwd cp $GOPATH/src/github.com/btcsuite/btcd/sample-btcd.conf ~/.btcd/btcd.conf
- 添加btcwallet配置文件
cd ~ mkdir .btcwallet cp $GOPATH/src/github.com/btcsuite/btcwallet/sample-btcwallet.conf ~/.btcwallet/btcwallet.conf
结语
到这里我们就安装好了btcd和btcwallet的代码和所有需要的库,也进行了初步的配置。
下一篇文章我会介绍simnet环境(模拟环境)下,单节点比特币节点的运行和rpc的使用方法。
结尾处我建议,如果真想体验整个btcd的流程,还是给linux安装一个zsh(然后配置一下oh-my-zsh)吧,后续使用btcd和btcwallet还有用btcctl进行交互的时候需要在命令中指明很多的参数,基于zsh的历史补全功能可以大大加快实验速度