Mini Fabric (一)Windows上安装教程

一、介绍

如果您想学习Hyperledger Fabric或开发智能合约,或者只是想了解 Hyperledger Fabric,Mini Fabric是让您快速开始的良好工具。Mini Fabric可以用来在配置很低的电脑像VirtualBox上的一个虚机上为 您搭建Fabric网络,但也可以在多个大型机器上部署多节点Fabric网络。

二、功能特性

Mini Fabric虽然轻量,但它可以让您体验Hyperledger Fabric的全部 功能

  • 通道创建和更新
  • 节点加入通道
  • 链码安装,审批,提交定义,初始化
  • 链码调用,查询
    • [可选项] 私有数据集
  • 区块查询

三、运行环境

3.1 docker(windows版)

  • docker(18.03或更高版本) 下载安装。 官网 : https://www.docker.com/
  • 安装完成后,启动docker桌面程序,然后执行
docker version
  • 如下图所示,表示docker成功安装并启动。

在这里插入图片描述

  • 如果缺失 Server: Docker Desktop 4.12.0 (85629) 部分,则docker启动存在问题,解决方案:https://blog.csdn.net/qq_42102911/article/details/127028097

3.2 curl 工具

  • 安装教程:https://blog.csdn.net/qq_42102911/article/details/127172463

四、搭建mini fabric

4.1 下载工具

  • 新建一个空的文件夹:mywork,进入该目录后,鼠标点击红色标记部分,然后键盘输入 cmd,按enter键,进入dos界面(命令行界面)。
    在这里插入图片描述
    在这里插入图片描述
  • 执行命令,下载 minifab.cmd 脚本
curl -o minifab.cmd -sL https://tinyurl.com/y3gupzby

4.2 启动mini fabric

  • 前提条件:已经启动了docker桌面软件。
1. 配置 spec.yaml 文件
  • 可以在gitee上下载该文件,但需要修改如下:去掉 goproxy 注释。或者直接复制以下内容;
  • gitee链接: https://gitee.com/shuang112/minifabric
  • 文件所在位置:
    在这里插入图片描述
fabric:
  cas:
  - "ca1.org0.example.com"
  - "ca1.org1.example.com"
  peers: 
  - "peer1.org0.example.com"
  - "peer2.org0.example.com"
  - "peer1.org1.example.com"
  - "peer2.org1.example.com"
  orderers:
  - "orderer1.example.com"
  - "orderer2.example.com"
  - "orderer3.example.com"
  settings:
    ca:
      FABRIC_LOGGING_SPEC: DEBUG
    peer:
      FABRIC_LOGGING_SPEC: DEBUG
    orderer:
      FABRIC_LOGGING_SPEC: DEBUG
  ### use go proxy when default go proxy is restricted in some of the regions.
  ### the default goproxy
  # goproxy: "https://proxy.golang.org,direct"
  ### the goproxy in China area
  goproxy: "https://goproxy.cn,direct"
  ### set the endpoint address to override the automatically detected IP address
 # endpoint_address: 104.196.45.144
  ### set the docker network name to override the automatically generated name.
  netname: "mysite"
  ### set the extra optins for docker run command
  # container_options: "--restart=always --log-opt max-size=10m --log-opt max-file=3"

2. 搭建fabric网络
minifab up
  • 如果不报错,则表示启动成功。(出现报错,可以在文末查看问题及解决方法)
  • 进行链码测试:
minifab invoke -n simple -p \"invoke\",\"a\",\"b\",\"24\"
  • 结果如下:
    在这里插入图片描述
  • 查询账户的世界状态资产
minifab invoke -p \"query\",\"b\"
  • 查询结果如下
    在这里插入图片描述
3.关闭fabric 网络,并不会删除节点和运行时的文件
minifab down
4. 关闭网络后,重新开启网络(用于minifab down关闭的网络)
minifab netup
5. 删除所有节点并清理运行时文件(再次启动mini fabric时,需要执行minifab up 命令)
minifab cleanup
6. 其他功能命令
Usage:
  minifab <mode> [options]
    <mode> - one of operations or combination of operations separated by comma

      - 'up' - 打开网络并执行所有默认的通道和链码操作
      - 'netup' - 仅启动网络
      - 'down' - 关闭网络
      - 'restart' - 重启网络
      - 'generate' - 生成所需的证书和创生块
      - 'profilegen' - 生成基于通道的配置文件
      - 'install'  - 安装链码
      - 'approve'  - 批准链码
      - 'instantiate'  - 实例化链码 fabric release < 2.0
      - 'initialize'  - 实例化链码 fabric release >= 2.0
      - 'commit'  - 提交链码 fabric releases greater or equal to 2.0
      - 'invoke'  - 运行链码调用方法
      - 'query'  - 运行链码的查询方法
      - 'create'  - 创建应用程序通道
      - 'join'  - 将当前网络中的所有对等点连接到一个通道
      - 'blockquery'  - 执行通道块查询并生成通道 tx json 文件
      - 'channelquery'  - 执行通道查询并生成通道configuration json 文件
      - 'channelsign'  - 执行通道配置更新签核
      - 'channelupdate'  - 通道更新与给定新的通道 configuration json 文件
      - 'anchorupdate'  - 进行通道更新,使所有对等节点成为所有组织的锚点。
      - 'nodeimport' - 导入外部节点证书和端点
      - 'discover' - 发现通道背书策略
      - 'cleanup'  - 删除所有节点并清理运行时文件
      - 'stats'  - 列出所有节点和状态
      - 'explorerup'  - 启动超级账本浏览器
      - 'explorerdown'  - 关闭超级账本浏览器
      - 'portainerup'  - 启动容器网络管理
      - 'portainerdown'  - 关闭容器网络管理
      - 'ccup'  - 更新或强制重新安装指定版本的Chaincode (即install,approve,commit,instantiate/initialize).
      - 'apprun'  - (experimental) 运行Chaincode应用程序
      - 'caliperrun'  - (experimental) 运行 caliper 测试
      - 'orgjoin'  - (experimental) 加入一个组织到当前通道
      - 'update'  - (experimental) 更新minifabric到最新版本

    options:
    -c|--channel-name         - 要使用的频道名称  (默认 "mychannel")
    -s|--database-type        - 要使用的数据库后端: goleveldb (默认) or couchdb
    -l|--chaincode-language   - 编码的语言: go (default), node, or java
    -i|--fabric-release       - 用来启动网络的fabric版本 (defaults to "2.1")
    -n|--chaincode-name       - 要installed/instantiated/approved 链码名称
    -b|--block-number         - 要查询的区块号码
    -v|--chaincode-version    - 要安装的Chaincode版本
    -p|--chaincode-parameters - Chaincode的实例化和调用参数
    -t|--transient-parameters - Chaincode实例化和调用瞬态参数
    -r|--chaincode-private    - Chaincode处理私人数据的flag, 默认 false
    -e|--expose-endpoints     - 节点的端点应该被暴露出来的flag,默认 false
    -o|--organization         - 用于组织特定业务的组织
    -y|--chaincode-policy     - 链码策略
    -d|--init-required        - Chaincode初始化标志, 默认 true
    -f|--run-output           - minifabric运行时输出回调,可以是'minifab'(默认), 'default', 'dense'
    -h|--help                 - print this message

五、问题解决

在执行 minifab up 命令时,如果报错,显示无法连接order节点时,这表示无法从远程下载docker镜像,可以通过以下方式解决:
  • 你可以从 https://share.weiyun.com/5Updupi 下载(需要登录你自己在微云上的账户)压缩的docker镜像,然后使用下列命令在本地生成docker镜像

docker load < fabric_2.1.tar.gz
docker load < minifab.tar.gz

  • 然后再次执行 minifab up 命令。

猜你喜欢

转载自blog.csdn.net/qq_42102911/article/details/127171969