Hyperledger Fabric 在 1.0 中,架构已经解耦为三部分:
fabric-ca:即原先的 membersrvc,独立成一个新的项目
fabric-peer: 主要起到peer作用,包括 endorser committer
fabric-order: 起到共识排序作用
实现 fabric 功能的核心代码,包括:
bccsp 包:实现对加解密算法和机制的支持。
common 包:一些通用的模块;
core 包:大部分核心实现代码都在本包下。其它包的代码封装上层接口,最终调用本包内代码;
events 包:支持 event 框架;
examples 包:包括一些示例的 chaincode 代码;
gossip 包:实现 gossip 协议;
msp 包:Member Service Provider 包;
order 包:order 服务相关的入口和框架代码;
peer 包:peer 的入口和框架代码;
protos 包:包括各种协议和消息的 protobuf 定义文件和生成的 go 文件。
源码相关工具, 一些辅助代码包,包括:
bddtests:测试包,含有大量 bdd 测试用例;
gotools:golang 开发相关工具安装;
vendor 包:管理依赖;
安装部署
busybox:busybox 环境,精简的 linux;
devenv:配置开发环境;
images:镜像生成模板等。
scripts:各种安装配置脚本;
User Chaincode启动运行(docker中)
用户链码(User Chaincode,UCC),对应用开发者来说十分重要,
它提供了基于区块链分布式账本的状态处理逻辑,基于它可以开发出多种复杂的应用。
Hyperledger Fabric 中,Chaincode 默认运行在 Docker 容器中。Peer 通过调用 Docker API
来创建和启动 Chaincode 容器。Chaincode 容器启动后跟 Peer 之间创建 gRPC 连接,双方
通过发送 ChaincodeMessage 来进行交互通信。Chaincode 容器利用 core.chaincode.shim
包提供的接口来向 Peer 发起请求。