2.08 hyperledger fabric完整案例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010986776/article/details/84840240

1.fabric开发流程

  • 需求整理
  • 合约编写
  • 合约部署
  • 合约交互
  • 外部服务编写
    在这里插入图片描述

2.需求分析

  • 开发一个资产转让功能模块
  • 平台功能
    • 用户开户和销户
    • 资产登记,解决资产上链和用户绑定资产
    • 资产转让,资产所有权的变更
    • 查询功能,用户查询、资产查询、资产变更历史查询

3.合约编写

  • assetsExchange.go

4.合约部署

  • 关闭docker
    在这里插入图片描述
  • 生成通道的创世交易
    在这里插入图片描述
  • 查看生成的交易文件
    在这里插入图片描述
  • 启动网络
    在这里插入图片描述
  • 登录到client会话操作
    在这里插入图片描述
  • 创建通道
    在这里插入图片描述
  • 查看通道
    在这里插入图片描述
  • 加入通道
    在这里插入图片描述
  • 创建mychannel
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 安装智能合约
    在这里插入图片描述
  • 链码实例化
    在这里插入图片描述
    在这里插入图片描述
  • 注册用户
    在这里插入图片描述
  • 查询用户
    在这里插入图片描述
  • 资产登记
    在这里插入图片描述
  • 资产查询
    在这里插入图片描述
  • 注册第二个用户
    在这里插入图片描述
  • 查询第二个用户
    在这里插入图片描述
  • 资产转让
    在这里插入图片描述
  • 查看用户2的资产信息,已经有资产1的Id了
    在这里插入图片描述
  • 查询资产1的历史
    在这里插入图片描述
  • 查询所有资产的变更历史
    在这里插入图片描述
  • 注销用户
    在这里插入图片描述
  • 查询用户是否存在
    在这里插入图片描述

5.链码开发者模式

  • 特殊配置
    • 使用dev模式启动peer节点
    • 方法一:peer node start --peer-chaincodedev=true
    • 方法二(给peer节点注入环境变量):CORE_CHAINCODE_MODE=dev
  • 删除之前的网络
    在这里插入图片描述
  • 修改文件
    在这里插入图片描述
  • 启动网络
    在这里插入图片描述
  • 运行代码
    在这里插入图片描述
  • 进入cli
    在这里插入图片描述
  • 创建通道
    在这里插入图片描述
  • 加入通道
    在这里插入图片描述
  • 安装链码
    在这里插入图片描述
  • 实例化链码
    在这里插入图片描述
  • 注册用户
    在这里插入图片描述
  • 查询用户
    在这里插入图片描述
  • 修改方法
    在这里插入图片描述
  • 再次运行,就可以生效
    在这里插入图片描述
  • 关闭docker
    在这里插入图片描述

6.外部服务分析

  • 如何提供服务,决定于应用场景,也就是决定于终端用户
    • 智能硬件:提供socket或tcp服务,主流是还是socket服务,例如太阳能发电终端
    • 游戏、电商、社交:web或手机app,提供http服务(接下来例子采用http)
    • 企业内部:rpc或grpc服务
  • 如何选择SDK
    • node.js
    • java
    • python
    • golang
  • SDK的模块
    • 区块链管理:例如通道的创建和加入、链码的安装、实例化和升级等(区块链和管理员或者云服务提供商去用)
    • 数据查询:区块(区块浏览器)和交易的查询
    • 区块链交互:发起交易(invoke或query)
    • 事件监听:业务事件(SendEvent)、系统事件(block/trancastion)

7.SDK下载和配置

  • 搜fabric-sdk
    在这里插入图片描述
  • 可以查看4个SDK的release
    在这里插入图片描述
  • 这里选用第三个版本
    在这里插入图片描述
  • 下载SDK
    在这里插入图片描述
  • 切换版本
    在这里插入图片描述
  • 查看日志
    在这里插入图片描述
    在这里插入图片描述

8.外部服务编写和部署

  • 编写main.go
  • 编译文件
    在这里插入图片描述
    在这里插入图片描述
  • 运行外部服务
    在这里插入图片描述
    在这里插入图片描述

9.外部服务调用

  • 进入目录
    在这里插入图片描述
  • 启动网络
    在这里插入图片描述
  • 登录到client会话操作
    在这里插入图片描述
  • 创建通道
    在这里插入图片描述
  • 加入通道
    在这里插入图片描述
  • 安装智能合约
    在这里插入图片描述
  • 链码实例化
    在这里插入图片描述
  • 用户注册
    在这里插入图片描述
  • 可以去linux中查询用户
    在这里插入图片描述
  • 用户查询,目前user2的资产还没有登记
    在这里插入图片描述
  • 为user2资产登记
    在这里插入图片描述
  • 再次查询user2,此时已经有资产了
    在这里插入图片描述
  • 也可以单独查询资产
    在这里插入图片描述
  • 创建user3用户,测试资产转让
    在这里插入图片描述
  • user2的asset2资产,转让给user3
    在这里插入图片描述
  • 查看user2和user3,资产已经被转让给了user3
    在这里插入图片描述
    在这里插入图片描述
  • 查询资产变更历史
    在这里插入图片描述
  • 删除user3
    在这里插入图片描述
  • 查看用户和资产,都没有了
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010986776/article/details/84840240
今日推荐