整体结构

Hyperledger Fabric 在 1.0 中,架构已经解耦为三部分:

  • fabric-peer:主要起到 peer 作用,包括 endorser、committer 两种角色;
  • fabric-ca:即原先的 membersrvc,独立成一个新的项目。
  • fabric-order:起到 order 作用。

其中,fabric-peer 和 fabric-order 代码暂时都在 fabric 项目中,未来可能进一步拆分。

核心代码

fabric 项目中主要包括代码、工具、脚本等部分,核心源代码目前约为 430 个文件,80K 行。

$ cd fabric
$ find bccsp common core events gossip msp orderer peer protos \
-not -path "*/vendor/*" \
-name "*.go" \
-not -name "*_test.go" \
| wc -l $ find bccsp common core events gossip msp orderer peer protos \
-not -path "*/vendor/*" \
-name "*.go" \
-not -name "*_test.go" \
| xargs cat | wc -l

源代码

实现 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:各种安装配置脚本;

其它工具

其他工具,包括:

配置、脚本和文档

除了些目录外,还包括一些说明文档、安装需求说明、License 信息文件等。

Docker 相关文件

  • .baseimage-release:生成 baseimage 时候的版本号。
  • .dockerignore:生成 Docker 镜像时忽略一些目录,包括 .git 目录。

git 相关文件

  • .gitattributes:git 代码管理时候的属性文件,带有不同类型文件中换行符的规则,默认都为 linux 格式,即 \n
  • .gitignore:git 代码管理时候忽略的文件和目录,包括 build 和 bin 等中间生成路径。
  • .gitreview:使用 git review 时候的配置,带有项目的仓库地址信息。
  • README.md:项目的说明文件,包括一些有用的链接等。

travis 相关文件

  • .travis.yml:travis 配置文件,目前是使用 golang 1.6 编辑,运行了三种测试:unit-test、behave、node-sdk-unit-tests。

其它

  • LICENSE:Apache 2 许可文件。
  • docker-env.mk:被 Makefile 引用,生成 Docker 镜像时的环节变量。
  • Makefile:执行测试、格式检查、安装依赖、生成镜像等操作。
  • mkdocs.yml:生成 http://hyperledger-fabric.readthedocs.io 在线文档的配置文件。
  • TravisCI_Readme.md

来源:https://github.com/yeasy/hyperledger_code_fabric/blob/master/overview.md

Hyperledger Fabric1.0 整体结构的更多相关文章

  1. Hyperledger Fabric1.0.0搭建

    系统环境: 阿里云新装的Centos7.2 yum -y update yum install -y openssl openssl-devel gcc gcc-c++ zlib zlib-devel ...

  2. Hyperledger Fabric1.0环境搭建

    一.准备CentOS系统,本文使用的是CentOS7.0 二.安装Docker 执行命令 yum -y install docker 验证是否安装成功 docker --version 三.安装Doc ...

  3. 安装部署hyperledger fabric1.0

    安装环境 CentOS7 1.安装Docker Docker Hub在国外,安装会较慢,可用国内镜像DaoCloud.可执行以下命令安装Docker. sudo yum install -y yum- ...

  4. Hyperledger Fabric1.4 安装

    Hyperledger Fabric 依赖的软件版本查看官方 github 地址 https://github.com/hyperledger/fabric 下文件 /docs/source/prer ...

  5. 006-基于hyperledger fabric1.4( 官方文档)编写第一个应用【外部nodejs调用】

    一.概述 官方原文地址 Writing Your First Application如果对fabric网络的基本运行机制不熟悉的话,请看这里. 注意:本教程是对fabric应用以及如何使用智能合约的简 ...

  6. 在Ubuntu中部署并测试HyperLedger Fabric 0.6

    最近开始研究区块链,对这个新兴的技术有了基本概念上的了解,所以打算基于一个开源项目做做实验.如果是做数字货币,那么比特币的源代码是最好的了,不过这算是区块链1.0吧,已经有很多改进的竞争币和山寨币出来 ...

  7. Hyperledger fablic 0.6 在centos7环境下的安装与部署

    原文:http://blog.csdn.net/zhaoliang1131/article/details/54617274 Hyperledger Fabric超级账本 项目约定共同遵守的 基本原则 ...

  8. Hyperledger Fabric1.4的多机部署

    之前的文章深入解析Hyperledger Fabric启动的全过程主要讲解了Fabric的网络搭建,以及启动的整体流程,但是都是通过单机完成的.而区块链本身就是去中心化的,所以最终还是要完成Fabri ...

  9. Hyperledger Fabric1.4 手动搭建过程

    1.生成证书: #路径需要更改为自己的路径 cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network ...

随机推荐

  1. bzoj 4555 求和

    求 $\sum\limits_{i=0}^n\sum\limits_{j=0}^n Stirling2(i,j) \times 2^j \times j!$ $n \leq 100000$ sol: ...

  2. Sublimetext3的下载与安装

    https://www.sublimetext.com/ Sublimetext价格不菲,但是作者允许无限期的免费试用,请不要下载破解版 使用国内汉化版的很有可能感染病毒,请善待电脑 百度搜索找到官网 ...

  3. 有状态与无状态 cookie session

    服务器所维护的与客户交互活动的信息称为状态信息.不保存任何状态信息的服务器称为无状态服务器(stateless server),反之则称为有状态服务器(stateful server). 面向连接对应 ...

  4. PING分组网间探测 ICMP协议

      1.Ping的基础知识 Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中Ping 是一个十分好用的TCP/IP工具.它主要的功能是用来检测网络的连通情况和分析网络速度.是ICMP的一个 ...

  5. Quartz数据库脚本

    QRTZ_CALENDARS 以 Blob 类型存储 Quartz 的 Calendar 信息 QRTZ_CRON_TRIGGERS 存储 Cron Trigger,包括 Cron表达式和时区信息  ...

  6. RbbitMQ基础知识

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间 ...

  7. 【ecmall】解决无法上传店铺logo和banner照片问题 (转)

    问题描述:在ecmall个人用户登录,点击用户中心-店铺设置-更换店标,上传一个jpg图像(图像符合规范)后,不能预览,而且在页面底部点击提交后没有上传成功.banner店铺条幅也是一样的情况,还有下 ...

  8. 基于ThinkPHP的开发笔记3-登录功能(转)

    1.前台登录用的form ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <for ...

  9. hdu 3625 Examining the Rooms——第一类斯特林数

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3625 n^2 求斯特林数就行.要减去的就是1号钥匙在1号房间的方案,即 s[ n-1 ][ m-1] . ...

  10. Jmeter ----关于上传图片接口

    转自:http://www.cnblogs.com/linglingyuese/p/4514808.html 需求 1 2 3 4 5 6 7 8 9 post上传   Request: { &quo ...