Hyperledger fabric 工程结构

一,bccsp 
----------
区块链加密服务提供者(Blockchain Crypto Service Provider),提供一些密码学相关操作的实现,包括 Hash、签名、校验、加解密等。

主要支持 MSP 的相关调用。


二,bddtests
----------
行为驱动测试(Behaviour Driven Development)相关代码。主要是关于各种测试,线下peer节点部署等相关的操作。

三,common
----------
一些通用的功能模块。包括常用的配置config、加密签名的crypto、ledger设置,工具包含协议设置等等。

四,core 
----------
大部分核心实现代码都在本包下。其它包的代码封装上层接口,最终调用本包内代码。包含区块链操作Chaincode代码实现、peer节点消息处理及行为的实现、容器container的实现如docker交互实现、策略实现policy及预处理endorser等等。

五,devenv
----------
主要是方便本地搭建开发平台的一些脚本。主要包含了CouchDB设置、golang编译脚本、64位ubantu配置脚本等等。

六,docs
----------
项目相关的所有文档。包含客户定制主题以及一些工具的源代码。

七,events 
----------
EventHub 服务处理相关的模块。主要是包含了消费者,生产者的实现代码。另外,Even服务其包含了四种类型定义如下:REGISTER = 0;BLOCK = 1;CHAINCODE = 2;REJECTION = 3。

八,examples
----------
示例文件夹,包括一些 chaincode 示例和监听事件的示例。

九,gossip 
----------

流言算法--gossip算法。一个基于pull的gossip算法的实现。最终确保状态一致。 该协议大致如下:
1)A发起者发送Hello(B唯一标识,nonce)消息到B远程节点(多个)。
2)收Hello信息后发送SendDigest到A节点,其中包含nonce
3)A收到SendDigest,校验数据和nonce,把B作为待发送节点,并封装想要pull的数据SendReq到B节点
4)B收到SendReq发送SendRes到A节点,数据为SendReq不包含的数据

十,gotools
----------
go 相关的开发工具的安装脚本:golint、govendor、goimports、protoc-gen-go、ginkgo、gocov、gocov-xml 等。

十一,images
----------
一些跟 Docker 镜像生成相关的配置和脚本。主要包括各个镜像的 Dockerfile.in 文件。这些文件是生成 Dockerfile 的模板。

十二,msp 
----------
成员服务提供者(Member Service Provider),提供一组认证相关的密码学机制和协议,用来负责对网络提供证书分发、校验,身份认证管理等。一些成员管理的实现代码等。

十三,orderer 
----------
在 fabric 1.0 架构中,共识功能被抽取出来,作为单独的 fabric-orderer 模块来实现,完成核心的排序功能。最核心的功能是实现从客户端过来的 broadcast 请求,和从 orderer 发送到 peer 节点的 deliver 接口。同时,orderer 需要支持多 channel 的维护。主要包含Solo、kafka及bft三个方法。

十四,peer 
----------
peer节点的相关主命令模块。
作为服务端时候,支持 node 子命令;作为命令行时候,支持 chaincode、channel 等子命令。其中包含一些命令操作的实现等等。

十五,proposals
----------

一些建议,包含现在对区块的结构优化建议及时序图的呈现。还有其他方面的一些建议文件。


十六,protos 
----------
Protobuf 格式的数据结构和消息协议。都在同一个 protos 包内。
这里面是所有基本的数据结构(message)定义和 GRPC 的服务(service)接口声明。

十七,release
----------
关于如何从dockerhub中拉取docker镜像的相关操作及脚本代码。

十八,release_notes
----------
关于最新2017年6月8日beta版本更新的相关资讯。主要包括release笔记内容及版本变根日志。

十九,sampleconfig
----------
提供了一些样例证书文件和配置文件。pem格式,通过openssl来查看内容。内容基于BASE64来进行编码。

二十,scripts
----------
一些辅助脚本,多数为外部 Makefile 调用。比如一些依赖环境的安装如python-pip、然后pip的安装包中的一些依赖环境等。还有一些配置,如让容器永不退出等。

二十一,test
----------
用于测试的一些脚本。 主要包含chaincode、回归测试脚本、容器关联order节点及peer节点测试脚本、环境构筑测试相关脚本如channel、以及一部分的工具LTE、OTE、PTE。

二十二,unit-test
----------
单点docker配置测试脚本

二十三,vendor
----------

关于部分提供商的内容及管理依赖,包含github.com、golang.org、google系列及gopkg.in相关内容。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值