Bootstrap

Hyperledger Fabric学习路线

写在前面:

Hyperledger Fabric 这个项目很大,又涉及一些具体实现上的技术选择,Fabric 本身又涉及非常多的概念。面对这种大型项目时,我们初学者往往容易感到迷茫。

我个人觉得最好的学习方式是带着问题去学习,不断地解决主线问题,先把框架搭起来,对 Fabric 有个整体的认识,学有余力可以去深入研究某个支线。

我也是结合很多大佬的学习过程总结了如下的学习路线,希望可以帮助到大家。

一、基础

  1. (了解基础的密码学知识:哈希、非对称加密、公钥基础设施)

  2. 理解 Fabric 的关键概念

  • 什么是 peer、endorser、orderer?

  • 什么时 anchor peer、leading peer?

  • 什么是 智能合约、链码?

  • 什么是 通道(channel)?

  • 什么是 Execute-Order-Validation?与Order-Execute 有什么不同?各有什么好处?

  • 初步了解一个 transaction 的生命周期:从 client 发起,到最终上链。

  1. 学习 Linux 的基本操作

  2. 学习 Docker 即 Docker Composer 的使用

  3. 在单机上使用现成的脚本搭建一个简单的区块链网络(比如经典的 BYFN,主要是为了验证环境配置成功)

  4. 去分步弄清楚第四步中部署的区块链网络是如何启动的

  5. 在区块链网络上部署一个智能合约,并进行简单测试

二、进阶

  1. 去弄明白第四步启动网络时的参数,比如
  • Dockerfile 文件里那些变量的意义

  • 如何修改参数启动更多的 Org 和加入更多的 peer

  1. 将 Solo 单节点共识替换成其它生产环境下使用的共识机制,比如 Raft

  2. 了解 MSP:弄明白 Fabric 如何管理区块链网络中的身份

  3. 了解 背书策略(Endorsement Policy)

  4. 了解 private collection

  5. 了解 validation 阶段的 MVCC 做了什么,为什么会有 transaction 验证失败被标记为无效

  6. 学习如何编写智能合约(即开发应用)

  7. 学习如何多机器分布式部署(关键在于 Docker 网络配置)

  8. 学习使用 Caliper 测试 Fabric 的性能,并尝试调整 Fabric 的核心参数观察性能的变化

  9. 将 Raft 共识机制替换成 拜占庭共识(比如 BFT-SMaRt)

三、高阶

高阶主要是一些源码的东西
18. 学习 cryptogen 这个工具,知道 Fabric 里的CA系统是如何工作的

  1. 学习 Fabric 是如何注册、部署、启动链码的,链码容器如何与peer交互的

  2. 学习 MSP 和 Endorsement Policy 是如何工作的

  3. 学习 Gossip 模块

  4. 学习 VSCC 是如何工作的

  5. 学习如何进行冲突检测的,即 MVCC 模块是如何工作的

  6. 学习底层存储机制:

  • block 和 world state 是如何存储的?

  • 多通道的数据底层是如何隔离的?

  • 不同链码访问数据结构底层是如何隔离的?

自己也是还在学习之中,欢迎交流,peace~

;