Alan Hou的个人博客

Golang开发Hyperledger Fabric 2.x链码

安装

脚本基于 Ubuntu,本文中使用的是 Ubuntu 18.04。

配套代码地址:https://github.com/alanhou/blockchain/tree/main/fabric-chaincode-development

考虑国情,有时 github 的连接并不稳定,比如在出现Failed to connect to raw.githubusercontent.com port 443: Connection refused时在/etc/hosts中添加类似如下内容(相应的 ip 可通过https://www.ipaddress.com/等地址查询):

环境安装及 Fabric 安装

基础概念

分布式账本:追踪资产的状态

交易:管理资产状态

链码(chaincode):暴露一个或多个函数,Fabric 中的智能合约

客户端主要有两大api:invoke 和 query,区别在于前者会作为交易记入账本

链码生命周期

  1. 由组织Admin 在 peer 节点上独立安装
    • peer chaincode install
    • 读取 chaincode
    • 将链码发到运行中的 peer 节点
    • 验证、写入

  2. 通过交易在通道进行一次实例化
    1. Peer 节点链码实例化
    2. Peer(Endorser)读取
    3. 初始化链码
    4. 请求事务的广播
    5. 在区块中发送交易

  3. 通过交易进行升级
  4. 独立(手动)从 peer 节点上删除

实例化策略

链码 Docker 容器

开发环境配置脚本

dev-init.sh 初始化开发配置

dev-validate.sh :安装示例链码、实例化,对 peer 节点进行调用、查询操作;已安装链码添加 skip 参数进行验证

dev-stop.sh:删除容器,但在容器系统中保留账本数据

dev-start.sh:重新启动容器并添加保留的账本数据

dev-mode.sh:在控制台打印启动模式,如Peer Launch Mode=net

设置、显示组织上下文:

启动浏览器

链码执行工具

安装链码

日志

net 模式:链码由peer 节点启动

dev 模式:链码由开发者启动

 

退出移动版