第十章 九析带你轻松完爆 hyperledger fabric - chaincode 生命周期介绍

本系列文章:


第一章:九析带你完爆 hyperledger fabric - 快速上手 basic-network 样例

第二章:九析带你完爆 hyperledger fabric - 快速搭建 GO 环境

第三章:九析带你完爆 hyperledger fabric - 快速上手 first-network 样例

第四章:九析带你完爆 hyperledger fabric - 系统逻辑架构篇

第五章:九析带你完爆 hyperledger fabirc - 网络节点介绍

第六章:  九析带你轻松完爆 hyperledger fabric - 区块和区块链介绍

第七章:  九析带你轻松完爆 hyperledger fabric - 区块链防篡改机制

第八章:九析带你轻松完爆 hyperledger fabric - Couchdb 安装

第九章:九析带你轻松完爆 hyperledger fabric - NVM 和 Nodejs 安装

第十章:九析带你轻松完爆 hyperledger fabric - chaincode 生命周期介绍

目录

1 前言

2 chaincode 生命周期

    2.1 安装 (install)

    2.2 实例化(instantiate)

    2.3 调用(invoke)

    2.4 升级(upgrade)


1 前言

        chaincode,又称链码,是 fabric 区块链中的智能合约。但是智能合约名不副实,因为并不智能,并没有你想当然认为具有任何 AI 能力,它本质就是业务逻辑代码,跟你平时写一段增删改查没任何区别,只是因为它是区块链,所以让人觉得屌一点而已,但是,仅此而已。

        IT 公司的经典技术分工是 “前端 + 后端 + 运维”,对应 fabric 应用开发,那就是 “chaincode 调用者 + chaincode + fabric”。由此可知,chaincode 本质就是业务核心逻辑,它是 fabric 中生成交易(区块数据)的唯一方式,我们开发 fabric 应用,其实也就是在编写 chaincode。


2 chaincode 生命周期

        chaincode 生命周期大致有这么几个阶段:安装、实例化、调用、升级。

2.1 安装 (install)

        安装 chaincode 的过程就是将 chaincode 部署到区块链的过程。在以前的教程中,我们曾介绍过 fabric 区块链中有多种节点,安装 chaincode,则只能安装在 peer 节点之上,而且在安装的过程中,要指定一个名称和版本。就像我们平时发布项目时要指定项目名称和发布版本一样。例如:

peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

2.2 实例化(instantiate)

        就像你把代码部署在服务器,如果不启动就不会产生任何作用一样;chaincode 安装完,还需要进行实例化操作才可以被外界真正的访问。chaincode 实例化就是将代码打包成镜像然后启动容器运行的过程。每个 chaincode 只会被实例化一次,但是实例化过程可以在任何一个安装了 chaincode 的 peer 上进行。 例如:

peer chaincode instantiate -o orderer.example.com:7050 -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR        ('Org1MSP.member','Org2MSP.member')"

2.3 调用(invoke)

        安装并初始化后的 chaincode,就像你结识又确定关系的女朋友一样,你可以那个了,是不是很兴奋,很想尖叫?操作 chaincode 的客户端有很多类型,比如 java、python、nodejs 等。chaincode 提供统一的调用接口 invoke。客户端可以通过调用 chaincode 来达到查询、变更账本信息的目的。例如:

peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'

2.4 升级(upgrade)

        就像系统升级一样,chaincode 也会有升级的需求。在升级 chaincode 的过程中,需要把新的 chaincode 安装(install)到正在运行该 chaincode 的 peer 节点上,而且在安装时需要指定比原先更高的版本。安装完毕后,只需向该 peer 节点发送 upgrade 操作,就可以顺利升级 chaincode 了。

peer chaincode install -n mycc -v 1.1 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

peer chaincode upgrade -n mycc -v 1.1 -c '{"Args": ["init","a","100","b","200"]}' -C mychannel

        自此,九析带你轻松完爆 chaincode 的生命周期。

猜你喜欢

转载自blog.51cto.com/14625168/2469816