1. 从Ubuntu官网下载22.04.4 LTS镜像,然后使用VMware安装Ubuntu系统
2. 更新系统安装ssh
可选,需要通过远程终端(xshell等)链接必选
sudo apt update # 更新系统中已安装软件包的列表
sudo apt install openssh-server # 安装 OpenSSH 服务器软件包 OpenSSH 服务器允许你通过 SSH(Secure Shell)协议远程访问和管理你的计算机。安装后,你可以使用 SSH 客户端连接到这台计算机,进行远程命令执行、文件传输等操作
sudo systemctl status ssh # 查看ssh状态
3. 安装 Git、cURL、docker、docker-compose、jq
sudo apt-get install git curl docker.io docker-compose jq
4. 安装Golang (可选,使用golang链码必选)
cd ~ && mkdir go && cd go
wget https://golang.google.cn/dl/go1.22.4.linux-amd64.tar.gz # 下载golang
tar xvf go1.22.4.linux-amd64.tar.gz # 解压
vi .bashrc # 配置环境变量,修改.bashrc文件,添加下面两行的命令
export GOROOT=$HOME/go/go/bin
export PATH=$PATH:$GOROOT
# 在 Linux 系统中,`.bashrc` 文件是一个用来初始化新终端会话的脚本文件。它包含了用户环境的配置,如路径、别名、环境变量等。使用 `source .bashrc` 命令可以手动加载或重新加载这些配置,而不必重新启动终端
source .bashrc
go version # 查看golang版本
# 配置goproxy 可选
go env -w GOPROXY=https://goproxy.cn,direct
下载golang安装包
解压安装包
切换到用户根目录 设置GOROOT
5. 安装JDK (可选,使用JAVA 链码必选)
sudo apt install default-jdk # ubuntu 22.04.4 默认jdk为11
6. 安装 Hyperledger fabric
Install Fabric and Fabric Samples — Hyperledger Fabric Docs main documentation
cd ~ && mkdir fabric && cd fabric # 创建fabric文件夹
# 使用github安装 可以访问github则使用github安装
curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh # 下载安装脚本
./install-fabric.sh samples binary # 安装
# 使用gitee安装 github 安装失败后尝试
wget https://gitee.com/snowrain_wjh/fabric/raw/main/install-fabric.sh && chmod +x install-fabric.sh # 下载安装脚本
./install-fabric.sh samples binary # 安装
7. 启动test-network
Using the Fabric test network — Hyperledger Fabric Docs main documentation
# 输出脚本使用方法
./network.sh
# 启动链 第一次启动需要下载镜像,镜像下载失败需要配置网络代理或者仓库镜像
./network.sh up
# 创建频道 频道名默认为 mychannel
./network.sh createChannel
# 重启区块链 会清空区块链原有数据
./network.sh restart
# 关闭区块链 清空数据
./network.sh stop
脚本使用方法
切换到test-network目录
启动区块链
启动区块链成功如下图所示
创建频道
创建频道成功如下图所示,如果失败需要重新启动区块链,避免异常数据影响
8. golang链码部署
# 部署链码。 go版本 -ccn 链码名称 -ccp 链码路径 -ccl 链码语言
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
部署链码失败,一般是链码没有被成功打包,如果组织结构过多,也有可能虚拟机内存不足,导致部署失败,下图为打包失败,需要检查打包失败原因
出现如下图所示情况,直接重启链码,重新创建频道,重新部署
部署成功如下图所示
9. java链码部署
# 部署链码。 java版本 -ccn 链码名称 -ccp 链码路径 -ccl 链码语言
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-java -ccl java
部署成功如下图
10. 测试链码是否部署成功
# 输出脚本使用方法
./network.sh cc -h
# invoke 对应增删改,
./network.sh cc invoke -c mychannel -ccic '{"Args":["InitLedger"]}'
# query 对应查询
./network.sh cc query -c mychannel -ccqc '{"Args":["GetAllAssets"]}'
异常问题
docker 无权限
添加当前用户到 docker组
sudo usermod -aG docker $USER # 重新启动你的计算机或注销并重新登录,以使组更改生效
通过github下载fabric安装脚本失败
改为使用 gitee安装脚本
docker 镜像下载失败
配置docker网络代理,错误截图如下
jd未安装
需按照jq
sudo apt-get install jq
创建频道失败
需重新启动区块链 清楚异常数据
golang 下载依赖失败
配置goprxy