hyperledger fabric 2.0(一)环境搭建以及测试网络部署

一、基础环境整理(可参照:https://blog.csdn.net/tianshuhao521/article/details/83892178

https://blog.csdn.net/tianshuhao521/article/details/83894142

1、安装curl:

# yum install curl

安装成功后查看版本:

# curl --version

2、安装wget。

3、安装docker和docker compose。安装成功后查看版本:# docker -version

4、go语言环境。安装后查看版本:# go version

5、node.js运行环境以及npm。安装完后查看版本:

--------------------------------------------------------------------------------------------------------

二、fabric 2.0源码安装:

1、创建放置fabric的文件夹:

# mkdir -p $GOPATH/src/github.com/hyperledger

2、下载fabric源码:

# cd $GOPATH/src/github.com/hyperledger

# git clone https://github.com/hyperledger/fabric.git

# cd fabric/scripts

查看bootstrap.sh: # bootstrap.sh

能看到version为2.0.0,ca_version为1.4.6,thirdparty_image_version为0.4.18

执行bootstrap.sh下载镜像和二进制文件:

# ./bootstrap.sh

执行完如图,另外在scripts目录下会多出来一个fabric-samples目录:

3、启动test-network测试网络:

# cd /opt/gopath/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network

# ./network.sh up

如图,表示启动成功,已启动一个orderer节点和两个peer节点。

查看docker容器:

# docker ps

如图:

至此,fabric测试网络test-network部署成功。

---------------------------------------------------------------------------------------------------------------------------------

三、使用测试网络

1、创建channel,使用network.sh脚本创建来创建一个连接org1和org2组织并加入他们peer的通道,命令如下:

#  ./network.sh createChannel

如图,创建成功(默认通道名为mychannel)。

也可以带上channel标签,命令如下(-c channelName):

# ./network.sh createChannel -c channel1

如果要在一个步骤中启动网络并创建频道,可以同时使用up和create channel模式:

# ./network.sh up createChannel

2、在通道上启动链码。

(1)使用network.sh创建通道之后,可以使用以下命令在通道上启动链码(默认使用go语言):

# ./network.sh deployCC

可以指定语言,加-l ,比如我用java,命令如下:

# ./network.sh deployCC -l java

如图,启动成功:

3、与网络互动

网络启动之后,可以使用peer cli客户端去操作网络,可以通过cli客户端去调用部署智能合约,更新通道,或者安装和部署新的智能合约。

首先确保操作目录为test-network目录,比如我的目录是:

/opt/gopath/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network

使用以下命令将二进制文件添加到cli路径:

# export PATH=${PWD}/../bin:${PWD}:$PATH

还需要设置FABRIC_CFG_PATH路径指向fabric-samples中的core.yaml文件,命令如下:

# export FABRIC_CFG_PATH=$PWD/../config/

设置允许org1操作peer cli的环境变量:

# Environment variables for Org1
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp
export CORE_PEER_ADDRESS=localhost:7051

如上,CORE_PEER_TLS_ROOTCERT_FILE和CORE_PEER_MSPCONFIGPATH环境变量指向organizations文件夹中的org1的加密文件。

使用以下命令获取汽车资产列表:

# peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'

如图:

同理,设置org2的环境变量:

# Environment variables for Org2
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/[email protected]/msp
export CORE_PEER_ADDRESS=localhost:9051

peer0.org2.example.com上调用链码查询fabcar列表:

关闭网络:

# ./network.sh down

------------------------------------------------------------------------------------------------------------------

四、使用证书颁发机构启动网络

1、执行以下命令确保关闭其他fabric网络:

# ./network.sh down

2、标志并启动网络(ca为网络的标志):

# ./network.sh up -ca

如图,启动成功:

发布了52 篇原创文章 · 获赞 19 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/tianshuhao521/article/details/104695687