hyperledger fabric v1.1学习

hyperledger fabric v1.1源码学习

  • 学习区块链
    • Getting Start
    • bootstrap.sh
    • Key Concept
    • 教程
      • 建立第一个网络
      • 运行first-network
      • fabcar应用
      • 向频道(channel)添加新的组织(Org)

学习区块链

希望能通过一步步学习hyperledger fabric来深入认识区块链。这篇文章将记录学习足迹

Getting Start

根据官方文档做好环境搭建准备
hyperledger fabric的官方文档
hyperledger fabric v1.1学习_第1张图片

从main函数开始入手
main函数功能

bootstrap.sh

Fabric 环境搭建时bootstrap.sh帮我们做了什么?

Key Concept

官方文档中的关键概念

教程

建立第一个网络

先下载fabric-samples
fabric-samples

切换成git {tag}:v1.1.0(版本正确很重要,是tag不是branch)

运行first-network

同样要现在目录下下载好二进制文件,然后在运行目录下byfn.sh脚本
如何运行first-network

运行脚本

fabcar应用

./byfn.sh -m down关闭所有存在的区块链网络,在fabric-samples中进入fabcar文件夹。
在这里插入图片描述
docker rm -f $(docker ps -aq)终止旧的或者正在活动状态的容器;
docker network prune清除缓存网络
详情:
fabcar应用

注:npm与node的版本须特别留意,否则用node运行js文件时会出现各种node_module模块缺失

这是我成功运行的npm与node版本:
在这里插入图片描述

注册管理员用户
hyperledger fabric v1.1学习_第2张图片

在这里插入图片描述
登记注册用户1
在这里插入图片描述
hyperledger fabric v1.1学习_第3张图片

hyperledger fabric v1.1学习_第4张图片
请求账本

hyperledger fabric v1.1学习_第5张图片
发现有趣的地方,请求用户1的车记录,服务器方没有相应的信息打印,屏幕依然停留在注册用户1的画面,应该是作为sample没有把log打印出来。

修改账本

添加车辆:在invoke.js中的request模块里填入要操作的函数(fcn中),可操作的函数已经在chaincode中编写好(即smart contract),参数也按照格式填好。
在这里插入图片描述

向频道(channel)添加新的组织(Org)

Adding an Org to a Channel

建立环境
hyperledger fabric v1.1学习_第6张图片

手动添加组织3

docker-compose-cli.yaml:
hyperledger fabric v1.1学习_第7张图片
docker-compose-org3.yaml:
hyperledger fabric v1.1学习_第8张图片

生成org3加密材料

准备cli环境

在这里插入图片描述
hyperledger fabric v1.1学习_第9张图片
获取配置

将配置转换为JSON并进行修整

在这里插入图片描述
注意这里的config.json文件并不是在first-network的文件夹中,而是在进入CLI容器后的peer目录下

添加Org3的加密材料

仔细思考教程我们可以知道,教程是一直使用configtxlator tool,先把Org1和Org2的protobuf格式文件转换成config.json,再以json格式添加Org3后生成modified_config.json,然后分别把config.json和modified_config.json转换回config.pb和modified_config.pb, 最后用configtxlator计算这两个配置协议之间的差异。此命令将输出一个新的protobuf二进制文件,名为org3_update.pb.

hyperledger fabric v1.1学习_第10张图片
签名并提交配置更新

请记住,CLI容器是由Org1 MSP材料引导的,因此我们只需要发出以下命令: peer channel signconfigtx

hyperledger fabric v1.1学习_第11张图片
最后一步是切换CLI容器的身份以反映Org2 Admin用户

hyperledger fabric v1.1学习_第12张图片

hyperledger fabric v1.1学习_第13张图片

使用动态领导者选举

在这里插入图片描述
添加Org3到频道(channel)

新开的terminal:
hyperledger fabric v1.1学习_第14张图片
hyperledger fabric v1.1学习_第15张图片
hyperledger fabric v1.1学习_第16张图片
hyperledger fabric v1.1学习_第17张图片
hyperledger fabric v1.1学习_第18张图片

升级和调用链码

仍然是在刚才新开的terminal中:

hyperledger fabric v1.1学习_第19张图片

现在回到原来的terminal中:

现在是在Org2中
hyperledger fabric v1.1学习_第20张图片

跳转回Org1
hyperledger fabric v1.1学习_第21张图片
hyperledger fabric v1.1学习_第22张图片

跳回Org3所在的terminal中
hyperledger fabric v1.1学习_第23张图片

总结:

通道配置更新过程确实涉及很多,但是各个步骤都有一个逻辑方法。最终的结果是形成一个以protobuf二进制格式表示的增量交易对象,然后获取必要数量的管理员签名,以使频道配置更新交易满足频道的修改策略。

更新网络组件

你可能感兴趣的:(区块链,hyperledger,fabric,官方教程解析)