ubuntu22.04 搭建hyperledger fabric环境
“最近老头儿发力了催项目,但是无奈Hyperledger Fabric的项目教程在各站基本没有,从github直接copy就更下头了(导入也很麻烦,教程要么收米要么不全要么版本不匹配要么断更,因此记录一下安装+建项的一些过程。
参考笔记:https://szu_ryan.gitee.io/2021/03/16/qu-kuai-lian-bi-ji-1-fabric1.4-wan-zheng-da-jian-guo-cheng/
参考公众号:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5OTI2NDMwMg==&action=getalbum&album_id=2235755495636697089&scene=173&from_msgid=2247484856&from_itemidx=1&count=3&nolastread=1#wechat_redirect
1.4版本中文手册:https://hyperledger-fabric.readthedocs.io/zh_CN/release-1.4/
虚拟机 Ubuntu 22.04.2 LTS
GNOME版本 42.5
源 https://mirrors.tuna.tsinghua.edu.cn/ubuntu
物理机 Windows 11 家庭中文版
处理器 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 2.59 GHz
1.简述
区块链是一个透明的,基于不可变模式的去中心化系统,核心就是一个分布式账本,记录网络上发生的所有交易。
区块链网络主要有三种类型:公共区块链、联盟区块链,以及私有区块链;最早熟知的比特币、以太坊这些数字货币其实就是属于公共区块链平台;
Fabric
属于联盟链类型,是一个企业级的分布式账本技术平台,也是目前应用最广泛的区块链项目。
2.环境搭建
2.1安装docker&docker-composer
不再安装yum,直接使用apt安装docker
mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com"] } EOF #重新加载配置信息及重启 Docker 服务 sudo systemctl daemon-reload # 重新启动 docker sudo systemctl restart docker
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # 将可执行权限应用于该二进制文件 sudo chmod +x /usr/local/bin/docker-compose #测试 docker-compose --version #卸载 sudo rm /usr/local/bin/docker-compose
2.2安装go语言环境
安装包下载网站:https://studygolang.com
#下载 # cd /opt # mkdir golang # cd golang # yum install wget # wget https://studygolang.com/dl/golang/go1.20.1.linux-amd64.tar.gz # tar -zxvf go1.14.3.linux-amd64.tar.gz #配置 vi /etc/profile #添加如下内容到/etc/profile后面 export GOPATH=/opt/gopath export GOROOT=/opt/golang/go export PATH=$GOROOT/bin:$PATH #生效配置文件 source /etc/profile
2.3安装git
apt-get install git
2.4安装Fabric
#在 GOPATH 目录下创建 Fabric 的文件夹 mkdir -p $GOPATH/src/github.com/hyperledger #下载源码,这里使用国内的码云的镜像仓库 cd $GOPATH/src/github.com/hyperledger git clone https://gitee.com/hyperledger/fabric.git
下载报错:
error: RPC 失败。curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
error: 预期仍然需要 2338 个字节的正文
fetch-pack: unexpected disconnect while reading sideband packet
fatal: 过早的文件结束符(EOF)
fatal: fetch-pack:无效的 index-pack 输出
因为项目过大,需要重新设置一个更大的MTU:ifconfig ens32 mtu 1400
#修改安装脚本 vim $GOPATH/src/github.com/hyperledger/fabric/scripts/bootstrap.sh
①把 https://github.com/hyperledger/fabric-samples.git 修改为 https://gitee.com/hyperledger/fabric-samples.git
#执行安装脚本 ./bootstrap.sh
执行成功之后会下载一个 fabric-samples
工程和一堆fabric的docker镜像:
由于码云镜像仓库的发布包只有源码,需要编译后的所以只能想办法去github下载。
https://github.com/hyperledger/fabric/releases/download/v2.4.7/hyperledger-fabric-linux-amd64-2.4.1.tar.gz
https://github.com/hyperledger/fabric-ca/releases/download/v1.5.5/hyperledger-fabric-ca-linux-amd64-1.5.2.tar.gz
此处版本号应与上文安装的版本一致
#压缩压缩包,得到 bin 与 config 两个文件夹: tar -zxvf hyperledger-fabric-linux-amd64-2.4.7.tar.gz tar -zxvf hyperledger-fabric-ca-linux-amd64-1.5.5.tar.gz #执行以下命令复制 fabric-samples 目录中 cp -r bin fabric-samples/ cp -r config fabric-samples/