M1芯片下Fabric测试网络环境配置
系统配置
系统:Ubuntu 20.04 LTS
内核:Arm64
硬盘大小:10GB
1.技术框架环境搭建
安装Vim
sudo apt install -y vim
安装Git
# 更新库文件
sudo apt update
# 安装文件
sudo apt install -y git
# 解决ping不通git导致git clone拉取项目慢的问题
# 安装网络工具查看本地ip地址
sudo apt install -y net-tools
# 查看本地ip地址
ifconfig
# 修改hosts文件
sudo vim /etc/hosts
# 在文件后面添加以下信息
{本地IP} github.com git
140.82.114.4 github.com
199.232.69.194 github.global.ssl.fastly.net
185.199.108.153 assets-cdn.github.com
# 测试
ping www.github.com
安装cURL
sudo apt install -y curl
安装Docker
sudo apt install -y docker.io
# 使用sudo安装完docker以后在普通用户下使用docker命令会报错,要将当前用户添加到docker用户组
sudo gpasswd -a ${USER} docker
# 查看用户组下用户,检查添加是否成功
cat /etc/group | grep docker
# 重启docker服务
sudo service docker restart
# 切换当前会话到新组【group】或重启会话
newgrp - docker
# 启动docker服务
sudo sytemctl start docker
# 设置为开机自启
sudo systemctl enable docker
安装Docker-compose
sudo apt install -y docker-compose
安装GO
# 根据自己的系统选择对应的版本,go版本1.6以上都可
wget https://go.dev/dl/go1.17.6.linux-arm64.tar.gz
# 解压文件
sudo tar -zxvf go1.17.6.linux-arm64.tar.gz -C /usr/local/
# 配置环境变量,打开文件
sudo vim /etc/profile
# 添加以下内容
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
# 重新加载环境变量
source /etc/profile
# ps:重新启动之后才会永久生效
2.下载Fabric和Fabric-ca源码编译生成二进制文件
PS:由于官方并未提供arm64架构相关的二进制文件,所以arm64的需要自己手动编译生成。系统内核为amd64的可直接跳过本部分,直接阅读第3小节,
下载Fabric源码
# 创建目录
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
# 用git克隆fabric到文件夹中
git clone https://github.com/hyperledger/fabric.git
编译Fabric源码
# 进到fabric目录下
cd fabric
# 编译生成二进制文件
make peer
make orderer
make asnadmin
make ledgerutil
make discover
make cryptogen
make configtxlator
make configtxgen
# 编译生成的二进制文件会保存在/bulid/bin文件中
cd bulid/bin
# 将文件保存下来
下载Fabric-ca源码
cd $GOPATH/src/github.com/hyperledger
# 用git克隆Fabric-ca到文件夹中
git clone https://github.com/hyperledger/fabric-ca.git
# 编译Fabric-ca源码
cd fabric-ca
make fabric-ca-server
make fabric-ca-client
# 编译生成的二进制文件保存在bin文件夹中
# 将bin文件夹中的文件复制到fabric中bin文件中即完成了二进制文件的生成
3.下载Fabric-samplse与相对的二进制文件
自动下载文件
mkdir hyfa || cd hyfa
vim bootstrap.sh
将https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh 中的内容复制、保存后退出。
# 对文件赋予可执行权
sudo chmod +x bootstrap.sh
# 启动脚本
sudo ./bootstrap.sh 版本号
# 脚本会自动下载Fabric-samplse文件和对应的二进制文件以及拉取相关的docker镜像下载过程较慢需要耐心等待。
手动下载二进制文件
https://github.com/hyperledger/fabric/releases/download/v2.4.2/hyperledger-fabric-linux-amd64-2.4.2.tar.gz
https://github.com/hyperledger/fabric-ca/releases/download/v1.5.2/hyperledger-fabric-ca-linux-amd64-1.5.2.tar.gz
PS:将下载好的文件解压放在Fabric-samplse文件夹下,架构师arm64的将生成的二进制文件替换到bin目录后在放在Fabric-samplse文件夹下。
# 下载二进制文件后修改bootstrap.sh文件
# 将以下代码注释掉就避免下载二进制文件,直接拉取相关docker镜像文件
download() {
# local BINARY_FILE=$1
# local URL=$2
# echo "===> Downloading: " "${URL}"
# curl -L --retry 5 --retry-delay 3 "${URL}" | tar xz || rc=$?
# if [ -n "$rc" ]; then
# echo "==> There was an error downloading the binary file."
# return 22
# else
echo "==> Done."
# fi
}
4.测试网络
cd hyfa/fabric-samplse/test-network
./network down
./network up
更多教程可参考官方文档
https://hyperledger-fabric.readthedocs.io/zh_CN/release-2.2/whatis.html