Hyperledger Fabric 2.x 動態更新智慧合約
一、說明
在上一篇文章中分享了智慧合約的安裝與使用,如果業務有變更程式碼需要修改怎麼辦呢?本文分享如何對已安裝的合約進行版本更新。
二、環境準備
執行以下命令,可以看到已安裝的合約資訊:
peer lifecycle chaincode queryinstalled
三、重新打包程式碼
重新把最新的合約原始碼打包:
peer lifecycle chaincode package mycc.tar.gz --path /opt/app/my-fabric-chaincode-java --lang java --label mycc
四、重新安裝合約
再次分別為
peer0.org1
和
peer0.org2
兩個機構安裝合約:
peer lifecycle chaincode install mycc.tar.gz
執行以下命令,重新檢視已安裝的合約資訊:
peer lifecycle chaincode queryinstalled
可以發現新增加了一條 Label 名稱相同 Package ID 不一樣的記錄:
五、重新審批
再次分別為
peer0.org1
和
peer0.org2
兩個機構審批合約:
peer lifecycle chaincode approveformyorg \ -o localhost:7050 \ --ordererTLSHostnameOverride orderer.example.com \ --tls \ --cafile ${MSP_PATH}/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem \ --channelID mychannel \ --name mycc \ --version 1.1 \ --package-id mycc:ecd2abc60ea098508aeefc135d8838787e9c1e3b8e411386a23ca56b7dfed758 \ --sequence 2
package-id:需填入新安裝的
Package ID
sequence:因為是審批第二個合約,所以需要填2
version:只是識別符號,可改可不改
執行以下命令,檢查節點審批狀態:
peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name mycc --version 1.1 --sequence 2 --output json
返回:
{ "approvals": { "Org1MSP": true, "Org2MSP": true } }
六、重新提交
執行以下命令,向通道提交合約:
peer lifecycle chaincode commit \ -o localhost:7050 \ --ordererTLSHostnameOverride orderer.example.com \ --tls \ --cafile ${MSP_PATH}/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem \ --channelID mychannel \ --name mycc \ --peerAddresses localhost:7051 \ --tlsRootCertFiles ${MSP_PATH}/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt \ --peerAddresses localhost:9051 \ --tlsRootCertFiles ${MSP_PATH}/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt \ --version 1.1 \ --sequence 2
需要把 sequence 和 version 改為審批時的值
七、檢視已提交合約
執行一下命令:
peer lifecycle chaincode querycommitted --channelID mychannel --name mycc --output json
可以看到現在通道
mychannel
名字為
mycc
的合約已經更新為
1.1
版本:
{ "sequence": 2, "version": "1.1", "endorsement_plugin": "escc", "validation_plugin": "vscc", "validation_parameter": "EiAvQ2hhbm5lbC9BcHBsaWNhdGlvbi9FbmRvcnNlbWVudA==", "collections": {}, "approvals": { "Org1MSP": true, "Org2MSP": true } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019616/viewspace-2905333/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hyperledger Fabric 2.x 自定義智慧合約
- 區塊鏈Hyperledger Fabric 2.x 自定義智慧合約區塊鏈
- 2.06 hyperledger fabric智慧合約
- Hyperledger Fabric 中智慧合約的基本元件概述元件
- Fabric 2.x 智慧合約開發記錄
- Hyperledger Fabric 智慧合約開發及 fabric-sdk-go/fabric-gateway 使用示例GoGateway
- Hyperledger Fabric Node.js 智慧合約鏈碼開發Node.js
- Hyperledger Fabric 使用 CouchDB 和複雜智慧合約開發
- Hyperledger Fabric Node.js 智慧合約即鏈碼開發Node.js
- Hyperledger Fabric 2.x 環境搭建
- 區塊鏈100講:Hyperledger Fabric 中的鏈碼(智慧合約)區塊鏈
- Hyperledger Fabric(Hyperledger Fabric模型)模型
- Hyperledger Fabric 2.x Java 區塊鏈應用Java區塊鏈
- Hyperledger Fabric 2.x Java區塊鏈應用Java區塊鏈
- Hyperledger Fabric部署的坑(更新中)
- 【Hyperledger Fabric】Fabric 2.2 手動安裝
- Hyperledger Fabric組織的動態新增和刪除
- Hyperledger Fabric節點的動態新增和刪除
- Hyperledger Fabric 核心概念
- 【乾貨乾貨】hyperledger fabric 之動態新增組織/修改配置 (Fabric-java-sdk) 下Java
- Hyperledger Fabric on SAP Cloud PlatformCloudPlatform
- fabric sdk : org.hyperledger.fabric.sdk.exception.ProposalExceptionException
- Hyperledger Fabric 2.0 Alpha釋出了!
- 2.02 hyperledger fabric入門
- 2.04 hyperledger fabric共識排序排序
- Hyperledger Fabric 手動搭建【區塊鏈學習三】區塊鏈
- 1-Hyperledger Fabric概念詳解
- 2.03 hyperledger fabric系統架構架構
- 2.05 hyperledger fabric賬本儲存
- Hyperledger Fabric命令詳解之 up
- Hyperledger fabric 鏈碼篇GO(四)Go
- Hyperledger Fabric部署與測試(Ubuntu)Ubuntu
- HyperLedger/Fabric SDK使用Docker容器映象快Docker
- 在Ubuntu上部署Hyperledger Fabric環境Ubuntu
- Hyperledger Fabric系統鏈碼介紹
- Hyperledger Fabric開發(二):建立網路
- HyperLedger Fabric 1.0的Transaction處理流程
- Mac OS搭建Hyperledger Fabric官方Demo一Mac