Hyperledger Fabric官方End

  • 时间:
  • 浏览:0
  • 来源:大发彩神幸运飞艇_大发神彩幸运飞艇官方

流程说明: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:701000 -c "$ORDERER_SYSCHAN_ID" --tls --cafile $ORDERER_CA >&log.txt命令,验证排序(orderer)服务否有有可用;    3) createChannel:执行peer channel create -o orderer.example.com:701000 -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命令八个peer节点加入到通道中;    5) updateAnchorPeers 0 1:执行peer channel update -o orderer.example.com:701000 -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:701000 -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:701000 --tls --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","1000","b","1000"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')" >&log.txt在组织2的节点0上实例化智能合约,初始化a值为1000和b值为1000;    10) chaincodeQuery 0 1 1000:执行peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}' >&log.txt命令在组织1的节点0上查询a值,并判断否有有为1000;    11) chaincodeInvoke 0 1 0 2:执行peer chaincode invoke -o orderer.example.com:701000 --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(查询)八个函数,具体代码如下:

文件(或目录)名称

8.2 End-2-End案例运行

1. 配置加速镜像

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

channel-artifacts

说明



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表示成功。执行完正流程如下:

3. 基础配置:

1) docker-compose-base.yaml:

5. Kafka配置

       所有的配置都是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目录下,文件社会形态如下所示:

       一八个多多工具也能通过如下命令最好的方式生成,在该End-2-End例子中已集成到generateArtifacts.sh三种 文件,运行后自动生成,不让手动命令操作,一八个多多文件生成到$GOPATH/src/github.com/hyperledger /release/linux-amd64/bin三种 目录。

删除完正镜像

2. 通道配置:

configtx.yaml:

Fabric网络Docker运行配置文件

scripts

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



图:文件社会形态

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

案例运行的入口文件

8.3 End-2-End案例分析8.3.1 案例架构       End-2-End案例由八个zookeeper、一八个多多kafka和一八个多多orderer实现排序,包括一八个多多组织,分别为Org1和Org2,每个组织含有一八个多多节点,分别为peer0和peer1,社会形态图如下所示:

2. 下载加速镜像

通道配置文件



图:End-2-End社会形态图

删除镜像:

generateArtifacts.sh

docker-compose-cli.yaml

8.3.5 配置介绍

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

base

download-dockerimages.sh

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



图:End-2-End运行成功

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

8.1 End-2-End案例简介

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

network_setup.sh



4. 运行e2e_cli

configtx.yaml

也能了一八个多多script.sh文件,该文件是案例的运行功能的集合,运行总要自动执行完正功能,直到完成

存放配置提炼的公有主次,有一八个多多文件,分别为docker-compose-base.yaml和peer-base.yaml

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

下载Fabric镜像执行文件

4. Zookeeper配置

crypto-config

3. 查看下载镜像



图:完正流程图

8. Cli配置



文件说明:

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

crypto-config.yaml

7. Peer配置

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