fabric示例e2e_cli中network_setup.sh流程是怎么样的

免费建站   2024年05月07日 3:15  

这篇文章主要介绍了fabric示例e2e_cli中network_setup.sh流程是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

fabric示例e2e_cli中network_setup.sh流程分析network_setup.sh流程图

调用generateArtifacts.

docker-compose up启动cli

cli容器执行script.sh脚本

network_setup.sh函数分析validateArgs分析functionvalidateArgs(){#如果参数为空,报错退出if[-z"${UP_DOWN}"];thenecho"Optionup/down/restartnotmentioned"printHelpexit1fiif[-z"${CH_NAME}"];then#如果第二个参数为空,创建默认名称为'mychannel'的channelecho"settingtodefaultchannel'mychannel'"CH_NAME=mychannelfi}函数networkUp分析

调用generateArtifacts.sh

调用docker-compose启动容器

functionnetworkUp(){#判断是否存在crypto-config,如果存在,表示#如果不存在,则执行generateArtifacts.sh脚本if[-f"./crypto-config"];thenecho"crypto-configdirectoryalreadyexists."else#Generatealltheartifactsthatincludesorgcerts,orderergenesisblock,#channelconfigurationtransactionsourcegenerateArtifacts.sh$CH_NAMEfi#是否传入了第4个参数为couchdb,如果是启动参数带上couchdb对应的docker-compose模板文件#实际命令:CHANNEL_NAME=mychannelTIMEOUT=10000docker-compose-fdocker-compose-cli.yaml-fCOMPOSE_FILE_COUCH=docker-compose-couch.yamlup-d2>&1#如果不是couchdb,则不带上couchdb对应的yaml#实际命令为:CHANNEL_NAME=mychannelTIMEOUT=10000docker-compose-fdocker-compose-cli.yamlup-d2>&1if["${IF_COUCHDB}"=="couchdb"];thenCHANNEL_NAME=$CH_NAMETIMEOUT=$CLI_TIMEOUTdocker-compose-f$COMPOSE_FILE-f$COMPOSE_FILE_COUCHup-d2>&1elseCHANNEL_NAME=$CH_NAMETIMEOUT=$CLI_TIMEOUTdocker-compose-f$COMPOSE_FILEup-d2>&1fi#判断执行的返回值,如果不为0,输出错误,并且退出if[$?-ne0];thenecho"ERROR!!!!Unabletopulltheimages"exit1fi#查看容器cli的实时日志dockerlogs-fcli}generateArtifacts.sh函数分析

generateCerts replacePrivateKey generateChannelArtifacts

函数generateCerts分析##GeneratesOrgcertsusingcryptogentoolfunctiongenerateCerts(){#ubuntu上OS_ARCH为linux-amd64#OSX上OS_ARCH为darwin-amd64#fabric目录对应的子目录查找文件cryptogen#如果该文件存在#如果不存在执行make命令生成。不过这个makeCRYPTOGEN=$_ROOT/release/$OS_ARCH/bin/cryptogenif[-f"$CRYPTOGEN"];thenecho"Usingcryptogen->$CRYPTOGEN"elseecho"Buildingcryptogen"make-C$_ROOTreleasefi#实际命令cryptogengenerate--config=./crypto-config.yaml#TODO待完善echoecho"##########################################################"echo"#####Generatecertificatesusingcryptogentool#########"echo"##########################################################"$CRYPTOGENgenerate--config=./crypto-config.yamlecho}replacePrivateKey##Usingdocker-composetemplatereplaceprivatekeyfilenameswithconstantsfunctionreplacePrivateKey(){#如果是OSX系统参数为-it,否则为-i#或者-i前面加上""-i也可以避免在OSX上报错ARCH=`uname-s|grepDarwin`if["$ARCH"=="Darwin"];thenOPTS="-it"elseOPTS="-i"fi#拷贝docker-compose-e2e-template.yaml文件,并且新文件命名为docker-compose-e2e.yamlcpdocker-compose-e2e-template.yamldocker-compose-e2e.yaml#获取crypto-config/peerOrganizations/org1.example.com/ca/目录下_sk结尾的文件名#把上述文件中的CA1_PRIVATE_KEY替换成上述文件名#-i直接修改文本文件内容#s替换指定字符,使用后缀/g标记会替换每一行中的所有匹配CURRENT_DIR=$PWDcdcrypto-config/peerOrganizations/org1.example.com/ca/PRIV_KEY=$(ls*_sk)cd$CURRENT_DIRsed$OPTS"s/CA1_PRIVATE_KEY/${PRIV_KEY}/g"docker-compose-e2e.yamlcdcrypto-config/peerOrganizations/org2.example.com/ca/PRIV_KEY=$(ls*_sk)cd$CURRENT_DIRsed$OPTS"s/CA2_PRIVATE_KEY/${PRIV_KEY}/g"docker-compose-e2e.yaml}generateChannelArtifacts##Generateorderergenesisblock,channelconfigurationtransactionandanchorpeerupdatetransactionsfunctiongenerateChannelArtifacts(){#ubuntu上OS_ARCH为linux-amd64#OSX上OS_ARCH为darwin-amd64#fabric目录对应的子目录查找文件cryptogen#如果该文件存在#如果不存在执行make命令生成CONFIGTXGEN=$_ROOT/release/$OS_ARCH/bin/configtxgenif[-f"$CONFIGTXGEN"];thenecho"Usingconfigtxgen->$CONFIGTXGEN"elseecho"Buildingconfigtxgen"make-C$_ROOTreleasefi#使用工具configtxgen生成创世区块##profile指定configtx.yaml中的配置项##outputBlock执行生成文件路径,protobuf序列化格式##可以用工具以json格式查看,configtxgen-inspectBlockgenesis.blockecho"##########################################################"echo"#########GeneratingOrdererGenesisblock##############"echo"##########################################################"#Note:Forsomeunknownreason(atleastfornow)theblockfilecan'tbe#namedorderer.genesis.blockortheordererwillfailtolaunch!$CONFIGTXGEN-profileTwoOrgsOrdererGenesis-outputBlock./channel-artifacts/genesis.block##使用工具configtxgen生成channel.tx##outputCreateChannelTx指定生成的文件路径,protobuf序列化格式##可以用工具以json格式查看,configtxgen-inspectChannelCreateTxchannel.txechoecho"#################################################################"echo"###Generatingchannelconfigurationtransaction'channel.tx'###"echo"#################################################################"$CONFIGTXGEN-profileTwoOrgsChannel-outputCreateChannelTx./channel-artifacts/channel.tx-channelID$CHANNEL_NAME#使用工具configtxgen生成Org1MSPanchors.txechoecho"#################################################################"echo"#######GeneratinganchorpeerupdateforOrg1MSP##########"echo"#################################################################"$CONFIGTXGEN-profileTwoOrgsChannel-outputAnchorPeersUpdate./channel-artifacts/Org1MSPanchors.tx-channelID$CHANNEL_NAME-asOrgOrg1MSP#使用工具configtxgen生成Org2MSPanchors.txechoecho"#################################################################"echo"#######GeneratinganchorpeerupdateforOrg2MSP##########"echo"#################################################################"$CONFIGTXGEN-profileTwoOrgsChannel-outputAnchorPeersUpdate./channel-artifacts/Org2MSPanchors.tx-channelID$CHANNEL_NAME-asOrgOrg2MSPecho}docker-compose启动容器启动命令CHANNEL_NAME=mychannelTIMEOUT=10000docker-compose-fdocker-compose-cli.yamlup-d2>&1script.sh分析

创建通道

加入通道

设置anchor

安装chaincode

实例化chaincode

查询/调用 chaincode

感谢你能够认真阅读完这篇文章,希望小编分享的“fabric示例e2e_cli中network_setup.sh流程是怎么样的”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部