fabric示例e2e_cli中network_setup.sh流程是怎么样的
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了fabric示例e2e_cli中network_setup.sh流程是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了
千家信息网最后更新 2026年11月02日fabric示例e2e_cli中network_setup.sh流程是怎么样的
这篇文章主要介绍了fabric示例e2e_cli中network_setup.sh流程是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
fabric示例e2e_cli中network_setup.sh流程分析
network_setup.sh流程图
调用generateArtifacts.sh
docker-compose up启动cli
cli容器执行script.sh脚本
network_setup.sh函数分析
validateArgs分析
function validateArgs () { #如果参数为空,报错退出 if [ -z "${UP_DOWN}" ]; then echo "Option up / down / restart not mentioned" printHelp exit 1 fi if [ -z "${CH_NAME}" ]; then #如果第二个参数为空,创建默认名称为'mychannel'的channel echo "setting to default channel 'mychannel'" CH_NAME=mychannel fi}函数networkUp分析
调用generateArtifacts.sh
调用docker-compose启动容器
function networkUp () { #判断是否存在crypto-config,如果存在,表示 #如果不存在,则执行generateArtifacts.sh脚本 if [ -f "./crypto-config" ]; then echo "crypto-config directory already exists." else #Generate all the artifacts that includes org certs, orderer genesis block, # channel configuration transaction source generateArtifacts.sh $CH_NAME fi #是否传入了第4个参数为couchdb,如果是启动参数带上couchdb对应的docker-compose模板文件 #实际命令:CHANNEL_NAME=mychannel TIMEOUT=10000 docker-compose -f docker-compose-cli.yaml -f COMPOSE_FILE_COUCH=docker-compose-couch.yaml up -d 2>&1 #如果不是couchdb,则不带上couchdb对应的yaml #实际命令为:CHANNEL_NAME=mychannel TIMEOUT=10000 docker-compose -f docker-compose-cli.yaml up -d 2>&1 if [ "${IF_COUCHDB}" == "couchdb" ]; then CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE -f $COMPOSE_FILE_COUCH up -d 2>&1 else CHANNEL_NAME=$CH_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE up -d 2>&1 fi #判断执行的返回值,如果不为0,输出错误,并且退出 if [ $? -ne 0 ]; then echo "ERROR !!!! Unable to pull the images " exit 1 fi #查看容器cli的实时日志 docker logs -f cli}generateArtifacts.sh函数分析
generateCerts replacePrivateKey generateChannelArtifacts
函数generateCerts分析
## Generates Org certs using cryptogen toolfunction generateCerts (){ #ubuntu上OS_ARCH为linux-amd64 #OS X上OS_ARCH为darwin-amd64 #fabric目录对应的子目录查找文件cryptogen #如果该文件存在 #如果不存在执行make命令生成。不过这个make CRYPTOGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/cryptogen if [ -f "$CRYPTOGEN" ]; then echo "Using cryptogen -> $CRYPTOGEN" else echo "Building cryptogen" make -C $FABRIC_ROOT release fi #实际命令cryptogen generate --config=./crypto-config.yaml #TODO待完善 echo echo "##########################################################" echo "##### Generate certificates using cryptogen tool #########" echo "##########################################################" $CRYPTOGEN generate --config=./crypto-config.yaml echo}replacePrivateKey
## Using docker-compose template replace private key file names with constantsfunction replacePrivateKey () { #如果是OS X系统参数为-it,否则为-i #或者-i前面加上"" -i也可以避免在OS X上报错 ARCH=`uname -s | grep Darwin` if [ "$ARCH" == "Darwin" ]; then OPTS="-it" else OPTS="-i" fi #拷贝docker-compose-e2e-template.yaml文件,并且新文件命名为docker-compose-e2e.yaml cp docker-compose-e2e-template.yaml docker-compose-e2e.yaml #获取crypto-config/peerOrganizations/org1.example.com/ca/目录下_sk结尾的文件名 #把上述文件中的CA1_PRIVATE_KEY替换成上述文件名 #-i直接修改文本文件内容 #s替换指定字符,使用后缀 /g 标记会替换每一行中的所有匹配 CURRENT_DIR=$PWD cd crypto-config/peerOrganizations/org1.example.com/ca/ PRIV_KEY=$(ls *_sk) cd $CURRENT_DIR sed $OPTS "s/CA1_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml cd crypto-config/peerOrganizations/org2.example.com/ca/ PRIV_KEY=$(ls *_sk) cd $CURRENT_DIR sed $OPTS "s/CA2_PRIVATE_KEY/${PRIV_KEY}/g" docker-compose-e2e.yaml}generateChannelArtifacts
## Generate orderer genesis block , channel configuration transaction and anchor peer update transactionsfunction generateChannelArtifacts() { #ubuntu上OS_ARCH为linux-amd64 #OS X上OS_ARCH为darwin-amd64 #fabric目录对应的子目录查找文件cryptogen #如果该文件存在 #如果不存在执行make命令生成 CONFIGTXGEN=$FABRIC_ROOT/release/$OS_ARCH/bin/configtxgen if [ -f "$CONFIGTXGEN" ]; then echo "Using configtxgen -> $CONFIGTXGEN" else echo "Building configtxgen" make -C $FABRIC_ROOT release fi #使用工具configtxgen生成创世区块 ##profile指定configtx.yaml中的配置项 ##outputBlock执行生成文件路径,protobuf序列化格式 ##可以用工具以json格式查看,configtxgen -inspectBlock genesis.block echo "##########################################################" echo "######### Generating Orderer Genesis block ##############" echo "##########################################################" # Note: For some unknown reason (at least for now) the block file can't be # named orderer.genesis.block or the orderer will fail to launch! $CONFIGTXGEN -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block ##使用工具configtxgen生成channel.tx ##outputCreateChannelTx指定生成的文件路径,protobuf序列化格式 ##可以用工具以json格式查看,configtxgen -inspectChannelCreateTx channel.tx echo echo "#################################################################" echo "### Generating channel configuration transaction 'channel.tx' ###" echo "#################################################################" $CONFIGTXGEN -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME #使用工具configtxgen生成Org1MSPanchors.tx echo echo "#################################################################" echo "####### Generating anchor peer update for Org1MSP ##########" echo "#################################################################" $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP #使用工具configtxgen生成Org2MSPanchors.tx echo echo "#################################################################" echo "####### Generating anchor peer update for Org2MSP ##########" echo "#################################################################" $CONFIGTXGEN -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP echo}docker-compose启动容器
启动命令
CHANNEL_NAME=mychannel TIMEOUT=10000 docker-compose -f docker-compose-cli.yaml up -d 2>&1
script.sh分析
创建通道
加入通道
设置anchor
安装chaincode
实例化chaincode
查询/调用 chaincode
感谢你能够认真阅读完这篇文章,希望小编分享的"fabric示例e2e_cli中network_setup.sh流程是怎么样的"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
文件
生成
分析
命令
工具
参数
流程
函数
容器
格式
篇文章
示例
实际
目录
子目
子目录
序列
文件名
脚本
路径
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
互联网科技公司起名
互联网科技工作委员会
重生之互联网科技帝国
互联网和科技技术
金融科技创新监管互联网金融
与互联网科技公司
以房互联网科技
狮子座互联网科技有限公司
伴你行互联网科技有限公司
苏州大垚互联网科技
互联网科技公司的市场部门
小米互联网科技园设置
恒生互联网科技指数跳水
米聚互联网科技南京有限公司排面
互联网科技研发水平
智帮互联网科技公司最近动向
广州互联网高科技取餐柜
互联网时代科技型公司的机会
求路客互联网科技电话
互联网黑科技
苏州找大状互联网科技有限公司
金融科技 互联网金融
互联网科技股有哪些
博兴的互联网电子科技公司
互联网对科技的发展
郑州欣桑互联网科技有限公司
西安有哪些互联网高科技企业
抖集互联网科技技术咨询
青岛易易互联网科技