Fabric 链码Chaincode 的安装、初始化、调用、升级
上一篇文章,我们启动了一个Fabric网络,这篇文章来看看在Fabric网络进行应用的开发。
上一篇文章,我们启动了一个 Fabric 网络,这篇文章来看看在 Fabric 网络进行应用的开发。
什么是 chaincode
chaincode 是 fabric 的智能合约,又叫做链码。Chaincode 是生成交易 transacton 的唯一方式,是外界与区块链系统交互的唯一渠道,开发 Fabric 区块链应用就是要编写 Chaincode, Chaincode 就是业务逻辑实现。
chaincode 生命周期
-
Install 安装
chaincode 要在 Fabric 网络上运行,必须要先安装在网络中的节点 peer 上(可以理解为部署代码),安装同时注明版本号保证应用的版本控制。
-
Instantiate 实例化
在 peer 上安装 chaincode 后,还需要实例化才能真正激活该 chaincode 。在实例化的过程中,chaincode 就会被编译并打包成 docker 容器镜像,然后启动运行。每个应用只能被实例化一次,实例化可在任意一个已安装该 chaincode 的 peer 上进行。
-
Invoke 调用,Query 查询
chaincode 在实例化后,用户就能与它进行交互,其中 query 查询与应用相关的状态(即只读),而 invoke 则可能会改变其状态。
-
Upgrade 升级
在 chaincode 更新代码后,需要把新的代码通过 install 交易安装到正在运行该 chaincode 的 peer 上,安装时需注明比先前版本更高的版本号,接下来向任意一个安装了新代码的 peer 发送 upgrade 交易就能更新 chaincode,chaincode 在更新前的状态也会得到保留。
first network 示例
现在,我们在 first network 的环境中,重新部署一个新的应用,应用逻辑是插入一个学生的成绩(学生姓名,语文成绩,数学成绩),然后计算总成绩记录到链上,通过学生姓名查询学生的总成绩,链码路径放到fabric-samples/chaincode/win_test/src/fabric-chaincode目录下,链码下载地址是:https://gitee.com/zh5715615/fabric-chaincode.git。
先关掉 TLS
为了减少参数输入,在这里不引入 TLS(安全传输层协议)功能,后面再进行讲解,我们关掉 tls 开关:
- 修改
first-network/docker-compose-cli.yaml
找到CORE_PEER_TLS

本文详述Hyperledger Fabric链码的安装、初始化、调用、升级全流程,演示如何在Fabric网络中部署、管理和更新链码,实现智能合约的生命周期管理。

2107

被折叠的 条评论
为什么被折叠?



