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

Tags: HyperLedger 

目录

说明

这是网易云课堂“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进阶实战课中稍微展开讲了下,主要针对对编译过程没有感性认识的朋友。

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


HyperLedger

  1. hyperledger fabric 1.3.0 多节点手动部署
  2. 【视频】超级账本HyperLedger: Fabric源码走读(一):项目构建与代码结构
  3. 【视频】超级账本HyperLedger: Fabric Go SDK的使用
  4. 【视频】超级账本HyperLedger: Fabric使用kafka进行区块排序(共识)
  5. 超级账本HyperLedger: Fabric 1.2.0使用时遇到的问题
  6. 超级账本HyperLedger: Fabric的Chaincode开发过程中遇到的问题
  7. 【视频】超级账本HyperLedger: 为Fabric的Peer节点配置CouchDB
  8. 【视频】超级账本HyperLedger: Fabric从1.1.0升级到1.2.0
  9. 【视频】超级账本HyperLedger: Fabric源码走读(零):源代码阅读环境准备
  10. 【视频】超级账本HyperLedger: Fabric的Chaincode(智能合约、链码)开发、使用演示
  11. 超级账本HyperLedger: Fabric Node.js SDK使用时遇到的问题
  12. 超级账本HyperLedger: Fabric Golang SDK使用时遇到的问题
  13. 超级账本HyperLedger: FabricCA的级联使用(InterMediateCA)
  14. 【视频】超级账本HyperLedger: 使用Ansible进行Fabric多节点分布式部署(实战)
  15. 超级账本HyperLedger: Fabric掰开揉碎,一文解惑
  16. 超级账本HyperLedger: Fabric Channel配置的读取转换
  17. 【视频】超级账本HyperLedger: Fabric进阶,在已有的Channel中添加新的组织
  18. 超级账本HyperLedger: 超级账本工作组旗下项目介绍
  19. 超级账本HyperLedger: Fabric Chaincode(智能合约、链码)开发方法
  20. 【视频】超级账本HyperLedger: Fabric-CA的使用演示(两个组织一个Orderer三个Peer)
  21. 超级账本HyperLedger: FabricCA的基本概念与用法讲解
  22. 【视频】超级账本HyperLedger: Fabric的全手动、多服务器部署教程
  23. 超级账本HyperLedger: Explorer安装使用
  24. 【视频】超级账本HyperLedger: Fabric nodejs SDK的使用
  25. 超级账本HyperLedger: Fabric部署过程时遇到的问题汇总
  26. 超级账本HyperLedger: Cello部署和使用
  27. 超级账本HyperLedger: Fabric的基本概念与基础用法

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球