手把手教你hyperledger fabric2.4测试网络安装链码

1.打包

1.1安装依赖

  进入文件夹运行命令,生成vendor文件夹

GO111MODULE=on go mod vendor

1.2配置环境

export PATH=${
    
    PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/

  如果运行sudo peer或是后面export失效可以按照下面的步骤进行调整:
  首先是输入sudo vim /etc/sudoers,修改为Defaults !env_reset,然后再secure_path里添加fabric-samples/bin的位置。

1.3打包

peer lifecycle chaincode package fa.tar.gz --path ../chaincode/fabcar/go/ --lang golang --label fa_1.2

  成功后再test-network文件夹下生成下面文件:
在这里插入图片描述

2.安装

使用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

安装链码:

sudo peer lifecycle chaincode install fa.tar.gz

查看安装情况

sudo peer lifecycle chaincode queryinstalled

结果如图:
在这里插入图片描述

3.提交修改

seq是指智能合约安装的次数,我这是第三此安装,所以设置为3。其它的设置容易理解不在这里解释了。

sudo peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem --channelID mychannel --name fa --version 1.2 --package-id fa_1.2:c4605ff9cab07eef6912c45e4f507a91b44906bdd879f531cf939da9ce88cf83 --sequence 3

结果如图所示:
在这里插入图片描述
提交同意:

sudo peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fa --version 1.2 --sequence 3 --output json

可以看到Org1以及同意
在这里插入图片描述
接下来切换到Org2

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP" 
export CORE_PEER_TLS_ROOTCERT_FILE=${
    
    PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${
    
    PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051

运行:

sudo peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem --channelID mychannel --name fa --version 1.2 --package-id fa_1.2:c4605ff9cab07eef6912c45e4f507a91b44906bdd879f531cf939da9ce88cf83 --sequence 3
sudo peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fa --version 1.2 --sequence 3 --output json

结果如图所示:
在这里插入图片描述
Ps.sudo peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fa --version 1.2 --sequence 3可以查询哪个组织同意了哪个没有。
然后重新提交合约定义(同意比例达标后,满足提交条件):

sudo peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem --channelID mychannel --name fa --peerAddresses localhost:7051 --tlsRootCertFiles /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem --peerAddresses localhost:9051 --tlsRootCertFiles /home/junze/Desktop/goproject/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem --version 1.2 --sequence 3

  使用sudo peer lifecycle chaincode querycommitted --channelID mychannel --name fa查询结果

猜你喜欢

转载自blog.csdn.net/u012421101/article/details/128586346