Hyperledger Fabric学习笔记——3.测试网络的启动分析

1. 启动网络

执行以下指令均要以管理员身份运行,请首先执行su root命令

  1. 查看目录
    cd /home/gopath/src/github.com/hyperledger/fabric-samples/first-network
    .env:存储一些环境变量
    base:存储docker-compose的一些公共服务
    byfn.sh:执行脚本
    configtx.yaml和crypto-config.yaml:根据之前生成的2个工具,生成相应的配置文件,用来启动网络,放到当前目录的channel-artifacts和crypto-config里面
    docker-compose:用来启动网络
    scripts:存放测试脚本,做的事:创建通道、加入通道、安装链码、实例化链码、链码交互
  2. 生成配置 ./byfn.sh -m generate -i 1.0.0

注意!!!!
一定要记得把gopath中的bin目录添加到环境变量中,否则可能无法调用刚才编译好的configtxgen和cryptogen工具
可以通过 export PATH=$PATH:/home/gopath/bin 来临时添加或者使用vim ~/.bash_profile修改PATH 一行,之后使用source ~/.bash_profile生效。

  1. 启动网络 ./byfn.sh -m up -i 1.0.0
  2. 关闭网络,自动清除配置和docker进程 ./byfn.sh -m down -i 1.0.0

2.分析网络

  1. 查看crypto-config配置
    peer与order分离
    在这里插入图片描述
    peer又按照组织或主体分离
    在这里插入图片描述
    每个组织生成ca(存储证书和私钥),msp(存储管理员证书和中间证书),peers(存储每一个peer相关的证书),users(存储每一个用户的证书)
    在这里插入图片描述
    users的内容,最少包含两个用户——你创建的用户和admin用户
    在这里插入图片描述
    peers的内容,组织1中存储的peer0和peer1
    在这里插入图片描述

  2. 查看channel-artifacts配置
    genesis.block:整个网络的创世区块
    channel.tx:创建的通道的配置
    Org1MSPanchors.tx和Org2MSPanchors.tx:两个主体的锚节点的配置
    在这里插入图片描述

  3. 启动网络,分析日志
    ./byfn.sh -m up -i 1.0.0

  4. 启动网络
    在这里插入图片描述

  5. 指定通道名称和一些变量,通道创建完成
    在这里插入图片描述

  6. 4个peer加入通道
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  7. 组织中的锚节点在通道update成功
    在这里插入图片描述在这里插入图片描述

  8. 链码安装到peer
    在这里插入图片描述在这里插入图片描述

  9. 链码实例化
    在这里插入图片描述

  10. 在peer0进行查询操作,成功,查询结果为100
    在这里插入图片描述

  11. 进行修改操作,返回200,修改成功
    在这里插入图片描述

  12. 再次查询结果为90
    在这里插入图片描述

  13. 查看docker容器,3个dev开头的就是链码,4个peer开头的就是每一个peer
    在这里插入图片描述
    3个链码会生成3个image
    在这里插入图片描述

  14. 查看脚本
    在这里插入图片描述在这里插入图片描述
    找到脚本对应位置的链码
    在这里插入图片描述

  15. 查看go的代码
    实现了Init和Invoke接口,就代表是一个fabric智能合约
    Init:首先获取参数,不为4就报错,然后把参数存入数据库中
    Invoke:设置了3个方法(invoke,delete,query)
    invoke:转账操作
    delete:从数据库删除
    query:查询操作,以JSON形式返回

  16. 查看脚本
    a初始有100元,b初始有200元
    在这里插入图片描述
    查询a有多少钱,所以打印了100
    在这里插入图片描述
    a给b转10元
    在这里插入图片描述

  17. 总结
    根据下面配置运行一个网络
    在这里插入图片描述
    网络执行了一个链码,实现了初始化、查询、删除、转账等操作
    在这里插入图片描述按照下面的脚本执行,首先进行初始化,然后查询a账户余额,然后a给b转账10元,然后再执行一个查询a账户余额的操作
    在这里插入图片描述

  18. 关闭网络,清除image和容器
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shn111/article/details/124500086