博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fabric智能合约(chaincode)升级版本
阅读量:2198 次
发布时间:2019-05-02

本文共 3528 字,大约阅读时间需要 11 分钟。

基于fabric-sdk-go

1.安装chaincode对应版本func

/**  安裝 */func InstallPackage(client *channel.Client, sdk *fabsdk.FabricSDK, version string) {    adminContext := sdk.Context(fabsdk.WithUser(OrgAdmin), fabsdk.WithOrg(OrgName))    // Org resource management client    orgResMgmt, err := resmgmt.New(adminContext)    if err != nil {        fmt.Println("error", err)    }    //chaincodeexample 相对路径如果设置错误就无法找到    ccPkg, err := packager.NewCCPackage("github.com/example_cc", "chaincodeexample")    if err != nil {        fmt.Println(err)    }    // Install example cc to org peers    installCCReq := resmgmt.InstallCCRequest{Name: CcID, Path: "github.com/example_cc", Version: version, Package: ccPkg}    res, err := orgResMgmt.InstallCC(installCCReq)    if err != nil {        fmt.Println(err)    }    fmt.Println(" ==================== ", res)}

2.更新chaincode对应版本func

func UpdateCC(sdk *fabsdk.FabricSDK, version string, args [][]byte) {    adminContext := sdk.Context(fabsdk.WithUser(OrgAdmin), fabsdk.WithOrg(OrgName))    // Org resource management client    orgResMgmt, err := resmgmt.New(adminContext)    if err != nil {        fmt.Println("error", err)    }    ccPolicy := cauthdsl.SignedByAnyMember([]string{
"Org1MSP"}) req := resmgmt.UpgradeCCRequest{Name: CcID, Version: version, Path: "github.com/example_cc", Policy: ccPolicy, Args: args} res, err := orgResMgmt.UpgradeCC(ChannelID, req) if err != nil { fmt.Println(err) } else{ fmt.Println(" ========== UpdateCC ========== ", res) }}

3.调用

InstallPackage(client, sdk,"2")UpdateCC(sdk, "2", [][]byte{[]byte("init"), []byte("a"), []byte("100"), []byte("b"), []byte("200")})

docker ps 结果

CONTAINER ID        IMAGE                                                                                                        COMMAND                  CREATED             STATUS              PORTS                                            NAMES5ddd8a57f280        dev-peer0.org1.example.com-e2eexamplecc-2-78de0b9a1866ca9f8a20d7fd9c922fd22a08a70365f165cf32d68490dd04f837   "chaincode -peer.a..."   2 minutes ago       Up 2 minutes                                                         dev-peer0.org1.example.com-e2eExampleCC-22fcc07b3633e        hyperledger/fabric-peer                                                                                      "peer node start"        5 hours ago         Up 5 hours          0.0.0.0:7055->7051/tcp, 0.0.0.0:7056->7053/tcp   peer1.org1.example.com8c3db56a9164        hyperledger/fabric-peer                                                                                      "peer node start"        5 hours ago         Up 5 hours          0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp   peer0.org1.example.comeb865ef8f10d        hyperledger/fabric-couchdb                                                                                   "tini -- /docker-e..."   5 hours ago         Up 5 hours          4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp       couchdb0be71c923b02        hyperledger/fabric-ca                                                                                        "sh -c 'fabric-ca-..."   5 hours ago         Up 5 hours          0.0.0.0:7054->7054/tcp                           ca.example.com47b76dbf1583        hyperledger/fabric-orderer                                                                                   "orderer"                5 hours ago         Up 5 hours          0.0.0.0:7050->7050/tcp                           orderer.example.com

现在调用如query或invoke都会执行chaincode版本2

这里写图片描述

你可能感兴趣的文章
后端技术杂谈5:云计算的前世今生
查看>>
后端技术杂谈6:白话虚拟化技术
查看>>
后端技术杂谈7:OpenStack的基石KVM
查看>>
后端技术杂谈8:OpenStack架构设计
查看>>
后端技术杂谈9:先搞懂Docker核心概念吧
查看>>
后端技术杂谈10:Docker 核心技术与实现原理
查看>>
夯实Java基础系列2:Java自动拆装箱里隐藏的秘密
查看>>
夯实Java基础系列1:Java面向对象三大特性(基础篇)
查看>>
夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
查看>>
夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
查看>>
Java 未来行情到底如何,来看看各界人士是怎么说的
查看>>
IntelliJ 平台 2020 年路线图
查看>>
走进JavaWeb技术世界8:浅析Tomcat9请求处理流程与启动部署过程
查看>>
微软宣布加入 OpenJDK,打不过就改变 Java 未来!
查看>>
MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
查看>>
为什么强烈推荐 Java 程序员使用 Google Guava 编程!
查看>>
先搞清楚这些问题,简历上再写你熟悉Java!
查看>>
【数据库】关系数据库和非关系数据库的优缺点
查看>>
【数据结构】动态顺序表
查看>>
Markdown的基础使用
查看>>