HyperLedger Fabric 1.2 官方End

  • 时间:
  • 浏览:1
  • 来源:彩神大发UU直播现场_神彩大发UU直播现场官方

8. Cli配置



存放生成的通道和创世纪块等文件,包括有channel.tx、genesis.block、Org1MSPanchors.tx和Org2MSPanchors.tx

图:End-2-End刚现在现在开始运行

删除镜像:



文件说明:

只1个script.sh文件,该文件是案例的运行功能的集合,运行总要自动执行完整功能,直到完成

       所有的配置也有docker-compose-cli.yaml文件里,配置顺序分别为zookeeper、kafka、orderer、peer和cli,先运行zookeeper集群、再运行kafka集群,最后运行orderer和peer,需用按照以上运行顺序;实现的功能集中写在script.sh文件里,自动运行完整功能,直到显示成功,具体功能如下:   1. 验证排序(orderer)服务与否可用,函数:checkOSNAvailability   2. 创建通道,函数:createChannel   3. 加入通道,函数:checkOSNAvailability   4. 更新组织1的锚节点,函数:updateAnchorPeers   5. 更新组织2的锚节点,函数:updateAnchorPeers   6. 在组织1的节点0上安装智能合约,函数:installChaincode   7. 在组织2的节点0上安装智能合约,函数:installChaincode   8. 在组织2的节点0上实例化智能合约,函数:instantiateChaincode   9. 在组织1的节点0上查询智能合约,函数:chaincodeQuery   10. 从组织1的节点0向组织2的节点0转移数据10的交易,函数:chaincodeInvoke   11. 在组织2的节点1上安装智能合约,函数:installChaincode   12. 在组织2的节点1上查询智能合约,函数:chaincodeQuery8.3.2 文件型态      End-2-End案例的完整文件在fabric/examples/e2e_cli目录下,文件型态如下所示:

案例运行的入口文件

5. Kafka配置

generateArtifacts.sh

4. 运行e2e_cli



图:End-2-End运行成功

存放生成的公私钥和证书等文件

还可不都都都后能 通过以下网址直接访问下载,地址:https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/,本书使用V1.2版本,对应文件为hyperledger-fabric-linux-amd64-1.2.0.tar.gz,下载完成后解压,获取bin目录。

scripts

download-dockerimages.sh

8.3 End-2-End案例分析8.3.1 案例架构       End-2-End案例由5个zookeeper、1个kafka和1个orderer实现排序,包括1个组织,分别为Org1和Org2,每个组织中1个节点,分别为peer0和peer1,型态图如下所示:

下载Fabric镜像执行文件

显示start-e2e表示刚现在现在开始运行,如下图所示:

通道配置文件

7. Peer配置

文件(或目录)名称

存放配置提炼的公有每项,1个文件,分别为docker-compose-base.yaml和peer-base.yaml

生成的公私钥和证书的配置文件



8.3.3 执行流程

        Fabric基础环境搭建完成后,End-2-End案例的运行先从network_setup.sh文件执行,执行过程中调用generateArtifacts.sh生成公私钥和证书等文件,再根据docker-compose-cli.yaml的配置内容通过docker运行zookeeper、kafka、orderer、peer和cli,最后在cli中运行script.sh文件,批量执行创建通道、加入通道、安装智能合约、实例化智能合约、执行交易和执行查询等功能,以上过程在这么错误的状态下,自动执行逐行执行,直到提示END-E2E表示成功。执行完整流程如下:

8.2 End-2-End案例运行

1. 配置加速镜像

生成公私钥和证书的执行文件



图:完整流程图

crypto-config

3. 基础配置:

1) docker-compose-base.yaml:

network_setup.sh

2. 下载加速镜像



图:文件型态

流程说明:1. 在e2e_cli目录执行network_setup.sh up表示刚现在现在开始执行,network_setup.sh down表示刚现在现在开始执行;2. 执行network_setup.sh up后先判断与否位于crypto-config目录,你会 不位于,则调用generateArtifacts.sh文件生成公私钥和证书;你会 通过命令docker-compose -f $COMPOSE_FILE up -d刚现在现在开始启动Fabric网络;3. Fabric网络启动成功后,自动执行script.sh文件,按照代码顺序,分别执行如下代码:    1) 显示start-e2e:显示将刚现在现在开始执行案例;     2) checkOSNAvailability:执行peer channel fetch 0 0_block.pb -o orderer.example.com:7030 -c "$ORDERER_SYSCHAN_ID" --tls --cafile $ORDERER_CA >&log.txt命令,验证排序(orderer)服务与否可用;    3) createChannel:执行peer channel create -o orderer.example.com:7030 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile $ORDERER_CA >&log.txt命令创建通道;    4) joinChannel:执行peer channel join -b $CHANNEL_NAME.block >&log.txt命令5个peer节点加入到通道中;    5) updateAnchorPeers 0 1:执行peer channel update -o orderer.example.com:7030 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls --cafile $ORDERER_CA >&log.txt命令更新组织1的锚节点0;    6) updateAnchorPeers 0 2:执行peer channel update -o orderer.example.com:7030 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls --cafile $ORDERER_CA >&log.txt命令更新组织2的锚节点0;    7) installChaincode 0 1:执行peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/example02/cmd >&log.txt命令在组织1的节点0上安装智能合约;    8) installChaincode 0 2:执行peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/example02/cmd >&log.txt命令在组织2的节点0上安装智能合约;    9) instantiateChaincode 0 2:执行peer chaincode instantiate -o orderer.example.com:7030 --tls --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","30","b","30"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')" >&log.txt在组织2的节点0上实例化智能合约,初始化a值为30和b值为30;    10) chaincodeQuery 0 1 30:执行peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt命令在组织1的节点0上查询a值,并判断与否为30;    11) chaincodeInvoke 0 1 0 2:执行peer chaincode invoke -o orderer.example.com:7030 --tls --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc $PEER_CONN_PARMS -c '{"Args":["invoke","a","b","10"]}' >&log.txt命令从a值中转称10到a值中;    12) installChaincode 1 2:执行peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/example02/cmd >&log.txt命令在组织2的节点1上安装智能合约;    13) chaincodeQuery 1 2 90:执行peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt命令在组织2的节点1上查询a值,并判断与否为90;    14) chaincodeQuery 1 3 90:执行peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt命令在组织3的节点1上查询a值,并判断与否为90;    15) 显示end-e2e:以上代码执行这么经常出现错误,则显示end-e2e表示成功执行;8.3.4 智能合约介绍      智能合约通过Go语言编写,实现存储a和b值,并在a和b之间数据交易转移,主要包括Init(初始化)、Invoke(交易)、delete(删除)和query(查询)5个函数,具体代码如下:

crypto-config.yaml

删除完整镜像

4. Zookeeper配置

2. 通道配置:

configtx.yaml:

说明

Fabric网络Docker运行配置文件

channel-artifacts

base

       1个工具可不都都都后能 通过如下命令法律措施生成,在该End-2-End例子中已集成到generateArtifacts.sh这个 文件,运行后自动生成,不让手动命令操作,1个文件生成到$GOPATH/src/github.com/hyperledger /release/linux-amd64/bin这个 目录。

显示END-E2E表示运行成功,如下图所示:



图:End-2-End型态图

docker-compose-cli.yaml

8.1 End-2-End案例简介

        Fabric官方提供了实现点对点的Fabric网络示例,该网络1个组织(organizations),1个组织一种生活生活节点(Peer),通过Kafka法律措施实现排序(Orderer)服务。End-2-End案例的运行需用“cryptogen”和“configtxgen”1个工具,用于Fabric网络所需的数字证书验证和访问控制功能。

3. 查看下载镜像

configtx.yaml

8.3.5 配置介绍

1. 证书配置:crypto-config.yaml: