Fabric智能合约:创建通道,链码部署及测试网络交互(windows系统)
我们可以通过命令了调用之前部署的asset-transfer(basic)链码中的InitLedger方法来进行数据初始化,它会赋予一些账本初始化资产。其中CORE_PEER_TLS_ROOTCERT_FILE和CORE_PEER_MSPCONFIGPATH变量环境指向Org1身份加密信息。下面的链码所在路径是fabric-samples仓库中另一个子项目,是已经编译好的链码,当前命令选择go语言
1.创建一个通道:
测试网络示例项目中的脚本可以帮助我们创建网络:
./network.sh createChannel
以上命令会创建默认名为muchannel的通道,若需自定义名称,则加上:
-c <ChanName>
在同一个Fabric网络中,允许创建多个通道;此外通道创建也可以和网络一起启动,组合命令:
./network.sh up createChannel
2.部署链码:
测试网络示例项目中的脚本可以帮助我们部署链码:
-ccn 连码名称 -ccp 链码所在路径 -ccl 链码编写语言 -c 指定通道名称(默认mychannel)
下面的链码所在路径是fabric-samples仓库中另一个子项目,是已经编译好的链码,当前命令选择go语言版本的链码做演示。
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
3.与测试网络交互一
我们可以通过CLI攻击(即安装的二进制文件)与Fabric测试网络进行交互,在开始之前需要做一些准备("${PWD}"表示当前路径,所以要先进入test-network目录):在windows中可能这个./bashrc里面什么都没有,直接添加配置就行了。
vim ~/.bashrc
1.将二进制文件添加到系统路径中:
export PATH=${PWD}/../bin:$PATH
2.配置FABRIC_CFG_PATH:
export FABRIC_CFG_PATH=${PWD}/../config
4.与测试网络交互二:
由于Fabric是许可网络,我们还需要配置允许操作Org1相关节点,同样是在终端配置文件中加入以下系统变量的配置:
其中CORE_PEER_TLS_ROOTCERT_FILE和CORE_PEER_MSPCONFIGPATH变量环境指向Org1身份加密信息。
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
添加完后刷新一下:
source ~/.bashrc
5.与测试网络交互三:
我们可以通过命令了调用之前部署的asset-transfer(basic)链码中的InitLedger方法来进行数据初始化,它会赋予一些账本初始化资产。
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 basic --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":[]}'
6.与测试网络交互四:
进行资产列表的查询以验证前面步骤是否出错。用一个查询初始化资产列表的命令:
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
7.关停测试网络:
当使用以下的命令,所有创建的容器,所有网络启动产生的数据全部会被清除,当再开启网络时要重新进行创建通道,链码部署。
./network.sh down
更多推荐
所有评论(0)