作者: 李佶澳   转载请保留:原文地址   发布时间:2018/11/18 14:26:00

  • 说明
  • 编译方法
  • make peer
  • make release 和 make release-all
  • 后续

说明

这是网易云课堂“IT技术快速入门学院”使用的素材。系列文章可以在系列教程汇总中找到。

这里梳理一下HyperLedger Fabric项目的代码结构。

这里分析的代码是Fabric 1.3:

git clone https://github.com/hyperledger/fabric.git
git branch release-1.3 -t origin/release-1.3
git checkout  release-1.3

下载代码后,先用dep命令更新一下依赖代码,需要翻qiang:

dep ensure

dep命令的使用参考:Go语言简明手册:依赖代码管理

编译方法

在开始之前,先了解一下fabric项目是如何编译的,这样才能知道要从哪里开始看代码,修改的代码要怎样生效的。

fabric的README.md文件中没有介绍编译的方法,通过查看Makefile文件,得知可以用以下命令:

make all          # 编译所有目标,并进行测试
make peer         # 编译某一个组件
make release      # 为当前平台编译所有组件
make release-all  # 为所有支持的目标平台编译所有组件
...

Makefile中一些变量的含义,可以到make:编译管理工具make与makefile中查找。

make peer

执行一些make peer:

$ make peer
.build/bin/peer
CGO_CFLAGS=" " GOBIN=/Users/lijiao/Work/Bin/gopath/src/github.com/hyperledger/fabric/.build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.3.1 -X github.com/hyperledger/fabric/common/metadata.CommitSHA=6c073551a -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.4.13 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.Experimental=false" github.com/hyperledger/fabric/peer Binary available as .build/bin/peer 

可以看到peer对应的源代码目录是github.com/hyperledger/fabric/peer

其它组件类似

make release 和 make release-all

编译后的组件位于release目录中,每个平台一个目录:

$ ls release/darwin-amd64/bin/
configtxgen          discover             orderer
configtxlator        get-docker-images.sh peer
cryptogen            idemixgen

后续

编译过程很简单,代码入口也很找,一眼就看明白了。视频HyperLedger Fabric进阶实战课中稍微展开讲了下,主要针对对编译过程没有感性认识的朋友。

后续抽时间看代码,会在这里补充一些内容,当然重要的内容会开新的页面记录。

转载于:https://www.cnblogs.com/lijiaocn/p/9979239.html

【视频】超级账本HyperLedger:Fabric源码走读(一):项目构建与代码结构相关推荐

  1. 超级账本(Hyperledger Fabric)源码分析之一:总览

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 一.编译 1.环境准备 需要提前在linux或者mac机器上安装如下软件 1)Go,注意设置好gopath(笔者安装的是 ...

  2. 超级账本Hyperledger Fabric的使用

    原文地址:超级账本Hyperledger Fabric的使用 说明 网易云课堂:HyperLedger Fabric手动部署教程的视频讲解 超级账本HyperLedger Fabric手动部署教程的文 ...

  3. PostgreSQL源码学习(1)--PG13代码结构

    PostgreSQL源码学习(1)–PG13代码结构 PostgreSQL代码结构 Bootstrap:用于支持Bootstrap运行模式,该模式主要用来创建初始的模板数据库. Main:主程序模块, ...

  4. 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)

    从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用win7+vs2010,相对来说也比较简单,按照步骤来也很快能编译出来. 1.官网的编译配置介绍:http://www.c ...

  5. 超级账本hyperledger fabric第五集:共识排序及源码阅读

    一.共识机制 达成共识需要3个阶段,交易背书,交易排序,交易验证 交易背书:模拟的 交易排序:确定交易顺序,最终将排序好的交易打包区块分发 交易验证:区块存储前要进行一下交易验证 二.orderer节 ...

  6. 区块链相关论文研读3- 关于超级账本Hyperledger Fabric的性能优化

    这是2019年6月发表在顶会Sigmod上面的论文,论文题目为<Blurring the Lines between Blockchains and Database Systems: the ...

  7. 区块链超级账本Hyperledger Fabric架构说明

    翻译自:http://hyperledger-fabric.readthedocs.io/en/latest/arch-deep-dive.html 边学习边翻译,很多地方还不明白,请对照原文学习,转 ...

  8. 超级账本HyperLedger的cello项目的部署和使用

    原文地址:超级账本HyperLedger的cello项目的部署和使用 说明 应用场景 源码 master安装 workder安装(docker) 参考 说明 cello是一个用来部署.管理fabric ...

  9. 新闻丨超级账本Hyperledger执行董事访问智链万源

    2019年2月22日,全球最大企业级开源区块链项目超级账本Hyperledger执行董事 Brian Behlendorf .亚太区副总裁 Julian Gordon .中国社区经理龙文选.亚太区市场 ...

  10. 超级账本(Hyperledger)

    摘要 超级账本(Hyperledger)是linux基金会下的众多项目中的一个.是由IBM.因特尔,还有金融公司,GP摩根以及其他联合机构于2015年提出来的区块链项目,超级账本还包括5个框架项目:S ...

最新文章

  1. 在百度工作是一种什么样的体验?
  2. 如何合理的规划一次jvm性能调优
  3. AMD透露Epyc服务器芯片更多细节 多方面挑战英特尔至强平台
  4. 1. Action 实现 ModelDriven 接口后的运行流程
  5. 7-2 jmu-Java-01入门-取数字 (2 分)
  6. javaone_JavaOne 2012:调查JVM水晶球
  7. IFIX和Historian历史数据曲线图
  8. 微软再损一将!继Nat Friedman后,另一Xamarin联合创始人也已离职
  9. AlwaysOn业务IP和高可用IP分开使用(四)
  10. 并发编程: 生产消费模型、死锁与Rlock、线程、守护线程、信号量、锁
  11. 网站服务器 开放端口扫描,端口扫描之开放端口扫描方式
  12. View的复用:viewHolder
  13. AD转换器输入之前接一个电压跟随器是为什么
  14. Socks5协议中文文档
  15. es6中 使用class里面的set和get 用法
  16. 芭蕉树上第十六根芭蕉-- Qt中Ui名字空间以及setupUi函数的原理和实现
  17. 多媒体个人计算机能处理什么,多媒体信息处理
  18. win10系统无法访问ftp服务器地址,win10如何访问ftp服务器地址
  19. 消失的信用卡(2)——0-days
  20. 老男孩python2020年31期学习记录贴

热门文章

  1. 【转】完美解除Windows7的驱动程序强制签名限制
  2. [Java设计模式]单例模式
  3. UIDatePicker 显示时间和打印时间不一样
  4. .NET LINQ 限定符操作
  5. Delphi版 ArcEngine Mapcontrol与PageControl同步
  6. android debug 签名,Android Studio中debug模式下使用release签名
  7. 英特尔的指令集体系结构_英特尔下一代Tremont的Jasper Lake系产品面世
  8. phoenix hbase java_spark通过phoenix读写hbase(Java版)
  9. 跟踪算法原理_「综述」目标跟踪算法
  10. python3 在线加密_Python3非对称加密算法RSA实例详解