Fabric2.2.0网络搭建_自动化脚本实现

1.Fabric源码及镜像文件处理:fabric源码,fabric-samples源码的下载
下载 fabric 源码是因为要用到源码中的例子和工具,工具编译需要用到 go 语言环境
(1)fabric源码下载
可以使用 Git 命令下载源码(耗时会比较长)
进入指定目录:cd /home/lijiangtao/go/src/github.com/hyperledger/2.2.0
下载fabric版本:git clone https://github.com/hyperledger/fabric.git,若是报错可以使用git clone git://github.com/hyperledger/fabric.git
查看fabric分支版本:git branch
切换到fabric2.2.0分支版本:git checkout v2.2.0
注:如果没有 git 命令,需要先执行如下命令,构建 git 环境:yum install git

(2)fabric-samples源码下载
复制/home/lijiangtao/go/src/github.com/hyperledger/2.2.0/fabric/scripts中的bootstrap.sh文件到/home/lijiangtao/go/src/github.com/hyperledger/2.2.0,执行./bootstrap.sh,等待下载完成即可。
注:
*这一步会下载官方的例子以及所需要的Docker镜像
*下载是比较慢的,如果出现错误或者长时间没有速度只需要重新运行就可以了

至此,Fabric源码,fabric-samples 源码、fabric 镜像的工作已经完成
【参考】Hyperledger fabric 2.2.0 环境搭建

2.config文件和bin文件的下载
(1)config文件夹
进入fabric文件夹,会发现sampleconfig,其实就是fabric-samples的config文件夹
将sampleconfig文件夹移动到fabric-samples中,并且重命名为config:mv sampleconfig config

(2)生成bin文件夹(编译生成二进制文件)
回到fabric目录下,使用命令make all进行源码编译,请耐心等待很长一段时间。
在fabric文件夹下会生成build文件夹,里面含有bin和images(images镜像通过docker images能看到)。
在bin目录中有如下二进制文件:configtxgen,configtxlator,cryptogen,discover,idemixgen,orderer,peer。
在config目录中有镜像文件:baseos,ccenv,orderer,peer,tools。
【参考】Fabric(二)部署Fabric2.2.0

3.将bin目录复制到fabric-sample 文件夹中

4.设置环境变量
使用命令:sudo vim /etc/profile

#fabric 2.2.0 export PATH= P A T H : PATH: PATH:HOME/go/src/github.com/hyperledger/fabric-samples/2.2.0/bin:$HOME/go/src/github.com/hyperledger/fabric-samples/2.2.0/config

生效source /etc/profile

5.运行test-work网络进行测试
*启动网络:./network.sh up
*建立通道:./network.sh createChannel(默认通道名为mychannel), [指定通道名称创建: ./network.sh createChannel -c channel1]
*在通道上启动链码(下面链码三选一):
basic链码:

./network.sh deployCC -ccn basic -ccv 1 -cci initLedger -ccp ../asset-transfer-basic/chaincode-go -ccl go

fabcar链码:

#未设置背书策略
./network.sh deployCC -ccn fabcar -ccv 1 -cci initLedger -ccp ../chaincode/fabcar/go -ccl go
#设置背书策略
./network.sh deployCC -ccn fabcar -ccv 1 -cci initLedger -ccep "OR('Org1MSP.peer','Org2MSP.peer')" -ccp ../chaincode/fabcar/go -ccl go

sacc链码:

./network.sh deployCC -ccn sacc -ccv 1 -cci init -ccp ../chaincode/sacc22 -ccl go

./network.sh deployCC参数说明

-c <channel name> - Name of channel to deploy chaincode to
-ccn <name> - Chaincode name.
-ccl <language> - Programming language of the chaincode to deploy: go, java, javascript, typescript
-ccv <version>  - Chaincode version. 1.0 (default), v2, version3.x, etc
-ccs <sequence>  - Chaincode definition sequence. Must be an integer, 1 (default), 2, 3, etc
-ccp <path>  - File path to the chaincode.
-ccep <policy>  - (Optional) Chaincode endorsement policy using signature policy syntax. The default policy requires an endorsement from Org1 and Org2
-cccg <collection-config>  - (Optional) File path to private data collections configuration file
-cci <fcn name>  - (Optional) Name of chaincode initialization function. When a function is provided, the execution of init will be requested and the function will be invoked.

*关闭网络:./network.sh down

6.终端直接执行peer等命令的配置
由于在我搭建环境中,fabric和fabric-ca编译的时候,已经安装可执行的二进制文件,fabric-samples底下有个bin目录,比如peer、orderer、configtxgen、fabric-server、fabric-client等等都复制到了/usr/local/bin目录底下,并授权权限,如下图所示,可以执行peer等相关命令:
在这里插入图片描述

7.设置临时环境变量关掉终端命令窗口便失效)

export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
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/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051

如:export FABRIC_CFG_PATH=$PWD/../config/指向fabric-samples目录中config配置的core.yaml
注意:
PWD必须是 /home/lijiangtao2/go/src/github.com/hyperledger/2.2.0/fabric-samples/test-network,
然后echo $FABRIC_CFG_PATH,可以查看到:
/home/lijiangtao2/go/src/github.com/hyperledger/2.2.0/fabric-samples/test-network/../config/
执行命令:
cd /home/lijiangtao2/go/src/github.com/hyperledger/2.2.0/fabric-samples/test-network/../config/
进入到config目录下
【参考】fabric2.2.0内部链码安装及调用(生产环境)

8.query链码信息
临时环境变量设置完成后,在linux终端执行如下命令,查询链码

peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'

9.invoke链码信息

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabcar --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'

10.其他命令

#查看已安装的链码的 ID 
peer lifecycle chaincode queryinstalled

【参考】
1.fabric2.2安装使用文档
2.Fabric开发(三)ubuntu下启动Fabric2.2.0网络,并测试一个Fabcar的demo
3.使用Fabric的测试网络
4.Fabric命令手册

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值