搭建fabric测试网络

虚拟机环境:ubuntu-24.04.1-desktop-amd64.iso

docker版本:24.0.7

docker-compose版本:1.29.2

go版本:go1.23.2.linux-amd64.tar.gz

docker镜像版本:

环境版本仅供参考

docker安装

docker安装参考:Prerequisites — Hyperledger Fabric Docs main documentation

使用超级用户权限安装 git、curl和 docker-compose,-y 表示自动确认所有提示

sudo apt-get install git curl  docker-compose -y

 启动 Docker 服务

sudo systemctl start docker

查看docker状态

sudo systemctl status docker

将指定用户添加到 Docker 组,用户可以运行 Docker 命令而无需使用 sudo

 sudo usermod -a -G docker <username>      #<username>替换为自己的用户名

 检查已安装的 Docker 版本

docker --version

检查已安装的 Docker Compose 版本

 docker-compose --version

这里我报错了

错误的具体内容是 ModuleNotFoundError: No module named 'distutils',表明系统缺少 Python 的 distutils 模块

distutils 包含在 Python 的标准库中,通过安装完整的 Python 解决这个问题

sudo apt-get install python3 python3-pip

再次检查版本

docker-compose --version

 设置 Docker 服务为开机自启,确保每次系统启动时 Docker 都会自动运行

sudo systemctl enable docker

GO 

go参考地址:Download and install - The Go Programming Language

(如果在ubuntu浏览器中不能打开国内链接,如百度,可能是虚拟机没网,如果不能打开国外网站,如github,可能是没有设置vpn代理,这一过程也很重要,也比较简单,网络上有很多教程,完成网络设置可以更好的进行后续步骤)

在ubuntu浏览器中打开链接Download and install - The Go Programming Language

下载go

打开到文件所在位置

右键打开终端

 切换到root下

sudo su

将文件解压到/usr/local/下,为避免冲突需要保证此目录下没有go文件夹

rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz

可以看到/usr/local/下的go文件

安装 gedit编辑器

sudo apt-get install gedit

 使用gedit编辑器设置go的环境变量

gedit /etc/profile

 将export PATH=$PATH:/usr/local/go/bin复制到编辑器下方,保存退出

 warning不用担心,可以忽略

重新加载系统的环境变量配置文件

source /etc/profile

查看go的版本,验证是否已安装 Go

go version

为使每次打开新的终端会话时,系统范围的环境变量设置能够自动生效进行如下设置

打开编辑器

gedit ~/.bashrc

在编辑器中写入

source /etc/profile

保存退出

关闭这个窗口,再打开一个终端

sudo su
go version

 图中kk用户下没有go的版本信息,root中有相关信息,下一步回到kk用户进行设置

su kk

打开编辑器

gedit ~/.bashrc

在编辑器中写入

source /etc/profile

保存退出 

 这时再关闭窗口,打开新终端,在kk和root下分别go version可以看到对应信息

fabric 

参考地址:Install Fabric and Fabric Samples — Hyperledger Fabric Docs main documentation

在用户目录下创建文件夹go

进入go目录

cd go

 获取安装脚本

curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh

介绍:

  • docker使用 Docker 下载 Fabric 容器镜像
  • binary下载 Fabric 二进制文件
  • samples将 fabric-samples github repo 克隆到当前目录

拉取 Docker 容器并克隆示例存储库(下载时间过长可以中断,一般结果都是失败,也浪费时间)

./install-fabric.sh docker samples binary

如果fabric-samples没拉取成功,那么使用git拉取

sudo apt update
sudo apt install git -y
git clone https://github.com/hyperledger/fabric-samples.git

二进制文件下载失败,这里我们进行手动下载解压

在ubuntu浏览器中打开

 https://github.com/hyperledger/fabric/releases

下载后打开文件所在目录,右键打开终端

解压到usr/local下

sudo su
 tar -xvzf hyperledger-fabric-linux-amd64-2.5.10.tar.gz -C /usr/local

docker镜像下载

试了很多镜像加速器,下载都失败了,最终使用的加速器地址:https://github.com/DaoCloud/public-image-mirror

打开编辑器

cd
gedit /etc/docker/daemon.json

文件内容:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io"
  ]
}

保存退出后重启docker

sudo systemctl restart docker

执行一下命令拉取镜像

docker pull hyperledger/fabric-peer:2.5.9
docker pull hyperledger/fabric-orderer:2.5.9
docker pull hyperledger/fabric-tools:2.5.9

启动测试网络

参考地址:https://hyperledger-fabric.readthedocs.io/en/latest/test_network.html

cd fabric-samples/test-network
cd test-network
./network.sh up

失败了......

找教程中......

打开文件管理器,右键打开终端

再次解压下hyperledger-fabric-linux-amd64-2.5.10.tar.gz到fabric-samples

sudo su
tar -zxvf hyperledger-fabric-linux-amd64-2.5.10.tar.gz -C /home/kk/go/fabric-samples

 进入到test-network中再次尝试启动测试

创建通道

创建一个默认名称为的通道mychannel1

./network.sh createChannel

如果命令执行成功,您可以在日志中看到消息:Channel 'mychannel' joined 

也有出现如下失败情况

 解决:

输入命令

sudo apt-get install jq

然后关闭测试网,再打开测试网,进行创建通道即可

./network.sh down
./network.sh up
./network.sh createChannel

部署链码:

./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

链码部署成功

这里可能会遇到如下图的错

设置go代理即可解决:

go env -w GOPROXY=https://goproxy.io,direct 
go env -w GO111MODULE=on 
go mod vendor

或者重启网络:

./network.sh down
./network.sh up
./network.sh createChannel
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

到这里我们搭建好了fabric测试网络,最后通过./network.sh down命令停止测试网络

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值