由于疫情,只能乖乖滚回家了。回到家休息了几天,整理了一下家里的资源,找到一台win10老台式机,重装了Ubuntu18.04系统勉强够用。之前在实验室搭建过一次环境,这次希望少踩一些坑。
惯例,先附上hyperledger fabric的官方文档
更换镜像源(阿里云)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bat
sudo vim /etc/apt/sources.list
# 阿里镜像源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
正式安装环境前,咱先把权限打开,顺便更新apt包索引
sudo su
apt-get update
安装git(git version 2.17.1)
话说,最近一直在区块链这里没什么动静,是因为前阵子在企业找了个活,去写c++玩了(这是不是意味着,我c++系列可以更新了…)。然后因为在企业,项目都是托管在gitlab上,所以也学了一些git的指令,有机会也可以做个番外。
apt-get install git
安装docker
关于docker的使用,后面应该会专门拉个模块写,这边只记录安装的过程。为了和实验室docker版本保持一直,这里采取手动安装docker的模式。
附上docker官方安装文档
- 设置仓库
# 安装软件包以允许apt通过HTTPS使用存储库
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 确保现在系统已经拥有密钥指纹的后八个字符串:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ 未知 ] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
# 安装稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- 安装docker-ce
# 在仓库中列出可用版本
apt-cache madison docker-ce
docker-ce | 5:20.10.12~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:20.10.11~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:20.10.10~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
...
# 选择需要的版本进行安装
# <VERSION_STRING> 替换成所需版本,例如:5:19.03.6~3-0~ubuntu-bionic,其中19.03.6是docker的版本号,Ubuntu-bionic代表Ubuntu18.04
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
- 查询docker的版本
docker -v
Docker version 19.03.6, build 369ce74a3c
- 配置修改阿里云镜像仓库
由于docker的仓库在国外,拉取镜像的速度非常慢,而阿里云提供免费的容器镜像加速器。
进入阿里云官网,并登陆。
进入阿里云控制台,找到容器镜像服务。
关于加速器的地址,您登录容器镜像服务控制台后,在左侧导航栏选择镜像工具 > 镜像加速器,在镜像加速器页面就会显示为您独立分配的加速器地址。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 安装docker-compose
# 下载docker-compose1.25.4
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 将可执行权限应用于二进制文件
chmod +x /usr/local/bin/docker-compose
# 创建软链
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 查询版本号
docker-compose -v
docker-compose version 1.25.4, build 8d51620a
安装cURL
sudo apt-get install curl
安装go
附上golang官方安装文档
go官网好像需要翻墙,可以使用https://studygolang.com/dl里的包进行下载。
# 下载go语言安装包
wget https://studygolang.com/dl/golang/go1.15.5.linux-amd64.tar.gz
# 解压
tar -C /usr/local -xzf go1.15.5.linux-amd64.tar.gz
# 配置
## 创建go目录
mkdir $HOME/go
## 设置环境变量
vi ~/.bashrc
## 在文末加上,其中GOPATH 是存放 Go 项目的目录;GOROOT 是 Go 的安装包所在目录。
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
## 使配置的环境变量生效
source ~/.bashrc
# 查看go的版本
go version
go version go1.15.5 linux/amd64
# 构建go项目目录
## src:存放源代码的目录。
## bin:存放生成后的可执行文件和 Go 相关的工具。
## pkg:存放编译后的包文件。
下载fabric和fabric-ca
在fabric官方文档中,给出一条curl -sSL https://bit.ly/2ysbOFE | bash -s命令,可以运行这个脚本文件直接下载所需的文件。但是进入https://bit.ly/2ysbOFE需要翻墙。这时候,如果不采取直接运行脚本的方式,我们还是可以采取三步走,达到一样的效果。
- 克隆fabric-samples
# 创建存放源代码的目录,并进入
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
# 从gitee上克隆代码
git clone https://gitee.com/hyperledger/fabric-samples.git
# 进入目录,切换分支
cd fabric-samples
git branch -a
git checkout master
- 拉取fabric二进制文件
fabric二进制文件链接
fabric-ca二进制文件链接
注:笔者在下载文件的时候,遇到【段错误】的提示,后通过扩大系统下栈空间解决。
# 将栈大小扩展到100M
ulimit -s 102400
# 下载所需的二进制文件
## 要注意版本的兼容性,这边下载的是fabric 2.4.0和fabric-ca 1.5.0
wget https://github.com/hyperledger/fabric/releases/download/v2.4.0-alpha/hyperledger-fabric-linux-amd64-2.4.0-alpha.tar.gz
wget https://github.com/hyperledger/fabric-ca/releases/download/v1.5.0/hyperledger-fabric-ca-darwin-amd64-1.5.0.tar.gz
# 解压二进制文件,并放入fabric-sample目录下
tar -C $GOPATH/src/github.com/hyperledger/fabric-samples -xzf hyperledger-fabric-linux-amd64-2.4.0-alpha.tar.gz
tar -C $GOPATH/src/github.com/hyperledger/fabric-samples -xzf hyperledger-fabric-ca-darwin-amd64-1.5.0.tar.gz
- 拉取fabric所需的镜像
官方bootstrap脚本
# 在hyperledger目录下新建bootstrap.sh
cd $GOPATH/src/github.com/hyperledger
touch bootstrap.sh
# 将官方脚本中拉取镜像的部分复制进来
vim bootstrap.sh
## 162行到最后
# 运行脚本文件
chmod +x bootstrap.sh
测试用例
cd $GOPATH/src/github.com/hyperledger/fabric-samples/test-network
./network.sh up
# 成功后关闭网络
./network.sh down