如何向 Hyperledger Fabric 项目贡献代码

原创 2016年12月13日 15:06:16

如何向 Hyperledger Fabric 项目贡献代码

安装环境

推荐在 Ubuntu 14.04+ 环境中开发代码,并安装如下工具。

  • git:用来获取代码;
  • golang 1.6+:安装成功后配置 $GOPATH 等环境变量。

获取代码

首先注册 Linux foundation ID,并登陆 https://gerrit.hyperledger.org/,添加个人 ssh pub key。

查看项目列表,找到对应项目,以 fabric 为例,获取 Clone with commit-msg hook 的方式。

典型的,执行如下命令获取代码,其中 LF_ID 替换为你的 Linux foundation id。

$ git clone ssh://LF_ID@gerrit.hyperledger.org:29418/fabric && scp -p -P 29418 LF_ID@gerrit.hyperledger.org:hooks/commit-msg fabric/.git/hooks/

如果没有添加个人 ssh pubkey,则可以通过 https 方式 clone,需要输入用户名和密码信息。

git clone http://LF_ID@gerrit.hyperledger.org/r/fabric && (cd fabric && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg http://LF_ID@gerrit.hyperledger.org/r/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)

clone 下代码后,为了方便后面的编译测试,需要放到 $GOPATH/src/github.com/hyperledger/ 路径下。

$ mkdir

编译和测试

大部分编译和安装过程都可以通过 Makefile 来执行。

安装 go tools

执行

$ make gotools

语法格式检查

执行

$ make linter

编译 peer

执行

$ make peer

生成 Docker 镜像

执行

$ make images

执行单元测试

执行

$ make unit-test

如果要运行某个特定单元测试,则可以通过类似如下格式。

$ go test -v -run=TestGetFoo

执行 BDD 测试

需先生成本地 Docker 镜像。

执行

$ make behave

提交代码

仍然使用 Linux foundation ID 登录 jira.hyperledger.org,查看有没有未分配的任务,如果对某个任务感兴趣,可以添加自己为 assignee,如对 FAB-XXX 任务。

本地创建新的分支 FAB-XXX。

$ git checkout -b FAB-XXX

实现任务代码,完成后,执行语法格式检查和测试等,确保所有检查和测试都通过。

提交代码到本地仓库。

$ git commit -a -s

会打开一个窗口需要填写 commit 信息,格式一般要求为:

Simple words to describe main change

This fixes #FAB-XXX.

A more detailed description can be here, with several
paragraphs and sentences...

之后使用 git review 命令推送到远端仓库。

$ git review

提交成功后,可以打开 gerrit.hyperledger.org/r/,查看自己最新提交的 patchset 信息,添加几位 reviewer。之后就是等待开发者团队的 review 结果,如果得到通过,则会被项目的 maintainer 们 merge 到主分支。否则还需要针对大家提出的建议进一步的修正。

修正过程跟提交代码过程类似,唯一不同是提交的时候使用

$ git commit -a --amend

表示这个提交是对旧提交的一次修订。

更多内容可以参考 区块链技术指南

转载请注明:

http://blog.csdn.net/yeasy/article/details/53609814

https://github.com/yeasy/blockchain_guide/blob/master/hyperledger/contribute.md


Hyperledger Fabric 1.0 快速部署

Hyperleger Fabric的快速部署是通过从Docker Hub上拉取已经部署好环境的镜像来完成的,由于在国内受到GFW的限制,所以安装过程很缓慢,甚至会发生失败,希望大家做好心理准备。下面我...
  • I_can_do_1098
  • I_can_do_1098
  • 2017-04-16 12:52:09
  • 2024

Hyperledger技术实践与案例分享

-
  • 2017年05月24日 16:04

区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(超详细教程)

首先感谢深蓝居,这篇教程是基于他的教程[http://www.cnblogs.com/studyzy/p/7437157.html]整理的,区块链技术发展很快,在大神的教程上稍做了些补充。另外,有也在...
  • so5418418
  • so5418418
  • 2017-10-26 16:53:53
  • 5538

超级账本Hyperledger-Fabric本地编译与安装(来源于区块链-原理、设计与应用)

超级账本Hyperledger-Fabric本地编译与安装                                                                       ...
  • Oliverlyn
  • Oliverlyn
  • 2017-11-04 15:39:03
  • 2420

编译hyperledger fabric官方源码

开发环境介绍 UBUNTU 16.04 LTS docker docker-compose git go 1.8以上 进入fabric源码目录
  • pony_maggie
  • pony_maggie
  • 2017-11-27 16:17:34
  • 878

HyperLedger Fabric:自顶向下的方法--第1篇 编译fabric源码及手工搭建单个Peer节点网络

官方文档及网上的文章一般都是介绍如何使用Docker搭建第一个Fabric网络,而且搭建的第一个网络就有四个Peer节点,这样过于复杂,而且下载一大堆Docker镜像,也比较费时间。因此,我这节将首先...
  • honganboy
  • honganboy
  • 2017-12-05 00:30:31
  • 479

自己动手部署区块链-hyperledger/fabric-02

1、环境架构说明: 系统采用容器的方式运行,构建过程简单、各组件分工清晰: 1.Docker-compose:Docker 容器管理; 2.Go lang SDK:Go 语言开发、编译环境;...
  • YL_1314
  • YL_1314
  • 2016-12-28 17:51:34
  • 10769

Fabric 智能合约具体代码模板分析

Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能。链码被编译成一个独立的应用程序,运行于隔离的Docker容器中...
  • w497629433
  • w497629433
  • 2017-07-19 21:26:46
  • 2964

Hyperledger fabric中的几个重要的角色

Application Backend 存在的目的:     后端应用程序服务支持应用程序关联到移动设备或者浏览器 关键角色:     1)通过成员服务管理末端使用者和注册者     2)启...
  • jiang_xinxing
  • jiang_xinxing
  • 2016-12-21 08:29:06
  • 2111
收藏助手
不良信息举报
您举报文章:如何向 Hyperledger Fabric 项目贡献代码
举报原因:
原因补充:

(最多只允许输入30个字)