Fabric 智能合约
- 执行环境:以太坊虚拟智能合约执行环境EVM,fabric执行环境是docker。
- 链码:
- 是应用层和区块链底层的中间点。
- 每一个链码执行环境是一个独立的docker
- 使用GPRC协议与背书节点通信,只有背书节点才能运行智能合约
- 链码得到生命周期
- 打包,智能合约的编写和编译。
- 安装,将打包好的文件,上传到背书节点。
- 实例化,实际的安装了,执行Init方法,只执行一次,类似于构造函数。
- 升级,升级和修复链码。
- 交互,自己定义的方法的调用。
- 链码的交互流程
网络搭建配置的实现
- crypto-config.yaml :用于配置组织节点的个数,参考firstnetwork去编写
- configtx.yaml:用于区块联盟中的组织信息,配置名字和证书等的位置,参考firstnetwork去编写。编写完后,传到linux对应目录。
- 进入deploy目录,设置工作目录为当前目录。
- 按照这个yaml文件生成配置。
- 创建用于存放配置的目录
- 生成系统连的创世区块
- -profile指定联盟配置,outputBlock指定存放的位置。
- 生成通道的创世交易
- profile指定业务联盟,outputCreateChannelTx存放的路径,创建的名字叫mychannel:
- 生成两个组织锚节点的交易信息
- 将docker-compose.yaml拖进deploy目录
启动网络
- 启动docker,后台运行
- 查看orderer节点的运行日志
- 与客户端交互操作
- 创建通道
- -o指定与哪个orderer节点通信,-c指定创建的通道名称,-f指定使用的文件
- 加入通道
- 查看peer加入的通道列表
- 指定主节点
基本的网络搞定了
安装链码
-n 是安装的名字,-v是version,-l是使用语言
- 克隆一个会话,交互执行peer0,查看安装的链码
- 链码实例化
- 链码交互执行
- 多次执行查询,得到的结果不用,因为invoke()中使用了随机数,不要这么做