一、环境准备

1.1、docker环境安装

这里采用官方脚本自动安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装完成后,使用一下命令启动docker服务

sudo systemctl start docker

1.2、Docker Compose环境安装

Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。

运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

将可执行权限应用于二进制文件:

sudo chmod +x /usr/local/bin/docker-compose

创建软链:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:

docker-compose --version

二、安装fabric

2.1、下载fabric源码

下载fabric源码到本地/Users/XXX/GolandProjects目录下

cd /Users/wanghongjie/GolandProjects
git clone "https://github.com/hyperledger/fabric.git"

下载完成后,进入到fabric/scripts/目录中,并运行bootstrap.sh文件

cd fabric/scripts/
./bootstrap.sh

这里hyperledger-fabric-ca-darwin-amd64-1.5.2.tar.gzhyperledger-fabric-darwin-amd64-2.4.0.tar.gz下载非常慢。我们可以提前下载好,放到和bootstrap.sh同级目录下,解压到当前目录。解压后bin和config文件。

修改bootstrap.sh文件,将

 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
 }

改为

 download() {
         echo "==> Done."
 }

执行./bootstrap.sh,此时会下载镜像该过程较慢。

WX20211222-133511@2x

WX20211222-133511@2x

如出现以上内容,则安装完成。

安装完成后,我们将解压后得到的bin、config目录复制到fabric-samples文件夹中。

2.2、运行测试案例

我们运行官方提供的一个案例test-network-nano-bash

首先进入test-network-nano-bash目录中,我们可以看到一下文件内容。

1、首先运行./generate_artifacts.sh

2、开始3个控制台页面,分别运行./orderer1.sh, ./orderer2.sh, ./orderer3.sh

3、开启4个控制台,分别运行`./peer1.sh, ./peer2.sh, ./peer3.sh, ./peer4.sh

4、再次运行source peer1admin.sh, source peer2admin.sh, source peer3admin.sh, source peer4admin.sh

5、打包默认go代码。

peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-go --lang golang --label basic_1

6、安装打包好的智能合约

peer lifecycle chaincode install basic.tar.gz

我这里之前执行过该命令,它提示chaincode already successfully。记录下package ID basic_1:d54015a12fa19e018a12c0bd69e3392c3abe89f0ff8972d38a8b8991ddd10550

7、将PackageID 设置到环境变量中

export CC_PACKAGE_ID=basic_1:d54015a12fa19e018a12c0bd69e3392c3abe89f0ff8972d38a8b8991ddd10550

8、chaincode的审批和提交

peer lifecycle chaincode approveformyorg -o 127.0.0.1:6050 --channelID mychannel --name basic --version 1 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile ${PWD}/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt

peer lifecycle chaincode commit -o 127.0.0.1:6050 --channelID mychannel --name basic --version 1 --sequence 1 --tls --cafile "${PWD}"/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt

9、调用链代码来创建一个资产(根据任何组织的默认背书策略,只需要一个背书人)。然后查询资产,更新它,并再次查询,以查看总账上产生的资产更改。

创建

peer chaincode invoke -o 127.0.0.1:6050 -C mychannel -n basic -c '{"Args":["CreateAsset","2","blue","50","julywhj","2000"]}' --tls --cafile "${PWD}"/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt

查询

peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","2"]}'

修改

peer chaincode invoke -o 127.0.0.1:6050 -C mychannel -n basic -c '{"Args":["UpdateAsset","2","blue","100","julywhj","1000"]}' --tls --cafile "${PWD}"/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt

祝贺您,您已经部署了一个最小的Fabric网络!如果希望查看部署网络所需的最小命令集,请检查脚本。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐