我们之前已经把示例都弄完了
现在我们来更新一下chaincode
首先,重新安装并验证提交的这个过程是可以更新chaincode的
这是第一种方法
第二种是用upgrade process更新流程
我们之前是用go语言的chaincode,现在假设我们觉得js的更好用
那么我们现在把js的更新上去
如果之前是用js的,也可以把go的更新上去
第一步.npm安装
之前看了下chaincode示例代码
然后精简了一下
我们写好了js代码,那么就要用npm安装一下
npm install
第二步.打包链码
先设置一下环境变量,使用peer CLI
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
然后打包链码
这里我们要修改一下包名
peer lifecycle chaincode package howger.tar.gz --path ../asset-transfer-basic/cc-howger/ --lang node --label howger_5.5
这里我们要修改一下包名
第三步.操作Org01
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
第四步.安装链码
peer lifecycle chaincode install howger.tar.gz
第五步.检查是否安装成功
peer lifecycle chaincode queryinstalled
第六步.设置链码ID环境变量
export NEW_CC_PACKAGE_ID=howger_5.5:f14333df0b0e4657c15f6fd5ed7668f3ec280f1c938b9216b8297a2977128e3d
第七步.验证链码
注意这里我们的版本是5.5,然后是第三个版本,所以序列是3
也就是--version 5.5 --sequence 3
peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name basic --version 5.5 --package-id $NEW_CC_PACKAGE_ID --sequence 3 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
第八步.切换环境变量指向Org02
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_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
第九步.为Org02安装链码
peer lifecycle chaincode install howger.tar.gz
第十步.为Org02验证链码
注意这里我们的版本是5.5,然后是第三个版本,所以序列是3
也就是--version 5.5 --sequence 3
peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name basic --version 5.5 --package-id $NEW_CC_PACKAGE_ID --sequence 3 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
第十一步.检查Org01和Org02的提交状态
peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name basic --version 5.5 --sequence 3 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --output json
第十二步.提交链码
注意这里版本是5.5,序列是3
peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name basic --version 5.5 --sequence 3 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --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
第十三步.唤醒链码
如果想要初始化账本的话,那么就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":[]}'
不然的话就随便加个也行,或者调用其他的方法
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":"CreateAsset","Args":["asset8","blue","16","Kelley","750"]}'
第十四步.查询所有
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
END