网站建设怎么找客源,做网站 什么后缀,新北建设局网站,网站负责人照片本文使用的Fabric版本#xff1a;V2.5.4 Ubuntu系统#xff1a;16.04LTS 前序文章已经详细介绍了如何安装部署Hyperledger Fabric系统#xff0c;这里不再赘述。本篇文章主要介绍如何使用Fabric的测试网络。在正式开始之前#xff0c;有一点需要说明#xff1a;
Hyperled… 本文使用的Fabric版本V2.5.4 Ubuntu系统16.04LTS 前序文章已经详细介绍了如何安装部署Hyperledger Fabric系统这里不再赘述。本篇文章主要介绍如何使用Fabric的测试网络。在正式开始之前有一点需要说明
Hyperledger Fabric的完整安装路径如下
$HOME/go/src/github.com/hyperledger/fabric为了方便下文cd命令中的路径从fabric开始书写fabric之前的省略。
1 启动/关闭测试网络 为了方便开发人员学习及测试智能合约和DAppfabric-samples文件中提供了一个测试网络test-network。
1.1 启动测试网络
进入fabric/scripts/fabric-samples/test-network可以执行如下命令启动测试网络
cd fabric/scripts/fabric-samples/test-network
./network.sh up如果命令在执行过程中遇到“permission denied提示则使用sudo权限执行第二条命令
sudo ./network.sh up执行成功将看到以下提示信息 从图中可以看到这个测试网络包括一个Orderer节点、两个Peer节点和一个CLI客户端(这些都部署在docker容器中)其中这两个Peer节点分属两个组织Org1和Org2。
1.2 关闭测试网络
可以使用以下命令关闭测试网络
sudo ./network.sh downTips:测试网络关闭之后创建的通道、部署的链码以及配置的环境变量都会失效都要重新设置。
1.3 重启测试网络
可以使用如下命令重启测试网络
sudo ./network.sh restart2 创建通道 通道提供一种通信机制将指定的Peer和Orderer连接在一起形成一个具有保密性的通信链路进行数据隔离(区块数据只能存储在已加入到通道中的成员节点内)。 测试网络成功启动之后就可以创建通道了。创建命令如下
sudo ./network.sh createChannel命令会默认创建一个名为mychannel的通道并且将两个Peer节点加入该通道中。 Anchor peer set for org ‘Org1MSP’ on channel ‘mychannel’ Anchor peer set for org ‘Org2MSP’ on channel ‘mychannel’ Channel ‘mychannel’ joined 创建通道时还可以指定通道的名字。命令如下
//创建一个名为first_channel的通道
sudo ./network.sh crateChannel -c first_channel通道名称遵循以下规则
由小写字母、点(.)和短横线(-)构成并且字母开头长度小于250字符
Hyperledger Fabric中通道、节点、组织之间的关系
通道、节点和组织之间的关系可以用以下方式概括每个参与方组织可以拥有一个或多个节点节点可以属于一个或多个组织而不同的组织可以通过一个或多个通道进行隔离和交互。每个通道的参与方可以通过Peer节点之间的共享账本实现数据的一致性和交易的隐私性。同时Orderer节点作为整个网络的协调者负责交易的排序和共识。
3 安装部署链码 链码(Chaincode)就是Hyperledger Fabric中的智能合约是一个可以对账本数据进行操作的可开发的组件程序。调用链码之前需要先安装部署链码也部署在容器中。部署命令如下
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go该命令将会部署一个使用go语言编写的链码。其中
ccn:表示链码的名字ccp:表示链码文件的地址这是fabric-samples提供的链码案例。ccl: 表示链码文件使用的语言
链码部署的命令一定不能用sudo来执行。但如果在执行上述命令的时候出现如下错误 go executable file not found in $PATH 权限不够错误 可以通过修改/go文件的权限来解决。具体如下
sudo chmod -R 777 ~/go4 peer CLI 创建了网络之后可以使用peer CLI操作网络包括安装部署智能合约、调用智能合约以及更新通道等。只需要配置环境变量就可以使用peer CLI。具体如下
4.1 配置peer CLI
(1) 将/fabric/scripts/fabric-samples/bin目录加入到环境变量PATH中。 第一种方法通过/etc/profile文件配置 第二种方法通过export命令 网络上很多资料给出的使用export配置环境变量的命令如下
export PATH${PWD}/../bin:$PATH但是这里并不推荐这种写法。原因有以下两点
这个命令当中用到了PWD变量即用户当前的工作路径。如果你当前的路径不是/fabric/scripts/fabric-samples/test-network 的话那么最终添加到PATH中的路径就是错的。即使当前的工作路径为/fabric/scripts/fabric-samples/test-network有些系统也无法映射到正确的路径。比如
如果想要使用export方法配置该环境变量的话建议使用如下命令
//先跳转到fabric-samples文件所在的地址
cd /fabric/scripts/fabric-samples
export PATH$PWD/bin:$PATH(2) 配置FABRIC_CFG_PATH
//先跳转到fabric-samples文件所在的地址
cd /fabric/scripts/fabric-samples
export FABRIC_CFG_PATH${PWD}/config/(3) 配置Org1环境变量
要先进入test-network文件目录:
cd /fabric/scripts/fabric-samples/test-network然后用命令行部署环境变量
export CORE_PEER_TLS_ENABLEDtrue
export CORE_PEER_LOCALMSPIDOrg1MSP
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/Adminorg1.example.com/msp
export CORE_PEER_ADDRESSlocalhost:7051接下来就可以使用peer CLI了。可以输入如下命令验证是否正确配置
peer channel list如果能返回刚才创建的“mychannel信息(如下图)则说明peer CLI已经正确配置。 如果出现如下错误 Error: error getting endorser client for invoke: endorser client failed to connect to localhost:7051: failed to create new connection: context deadline exceeded. 这是因为前面创建的Orderer、Peer节点都不存在了可以使用docker ps -a查看一下。需要重新启动网络、创建通道、部署链码和配置环境变量。
4.2 说明
关于peer CLI有以下几点需要说明(后续补充)
peer CLI是用于与Fabric网络中的peer节点进行交互的命令行工具。上文示例中的peer CLI绑定的是Org1中的peer节点。如果需要绑定Org2中的peer节点则需要重新配置环境变量。 到目前为止测试网络已经搭建完成。至于如何使用peer CLI调用智能合约留待下一篇博客。
参考资料
https://hyperledger-fabric.readthedocs.io/en/release-2.5/test_network.htmlhttps://blog.51cto.com/zhuxianzhong/7241974?articleABtest0https://blog.51cto.com/zhuxianzhong/7242582?articleABtest0https://blog.51cto.com/zhuxianzhong/7246193?articleABtest0https://blog.csdn.net/qq_45179762/article/details/122217058https://blog.csdn.net/wybnmsl/article/details/113743268https://blog.csdn.net/Blockchain210/article/details/127707353