专栏首页亨利笔记赠书 | 最具商用价值的开源区块链项目:超级账本(1)

赠书 | 最具商用价值的开源区块链项目:超级账本(1)

题图摄于宁夏:黄河第一弯

开源区块链项目--超级账本(Hyperledger)成立仅一年,已经足足有100家公司加入,是目前最具商用价值的区块链开源项目。本连载给大家介绍超级账本项目的来龙去脉,以及Fabric,Sawtooth Lake等项目的情况。更多区块链相关的技术细节,请参考笔者的新书《区块链技术指南》(参见文末赠书活动)。

项目背景

以比特币为代表的加密数字货币获得了巨大成功,活跃用户数量和交易量逐年增长。人们也渐渐意识到区块链技术的潜在价值,它不仅可以用作比特币的底层技术,还能够应用到更多的业务场景中,因而出现了很多利用比特币公有链的新型应用,如资产登记、公证等等。但比特币的公有链无法克服自身固有的一些问题:例如,交易效率低,区块没有最终确定性(finality)等。这些问题,使得比特币等公有链不能满足大多数商业应用的要求。

为了克服上述不足,设计适合商用的区块链平台成为迫在眉睫的事情。在各界强烈的呼声中,Linux基金会于2015年12月启动了名为“超级账本”(Hyperledger)的开源项目,旨在推动各方协作,共同打造基于区块链的企业级分布式账本底层技术,用于构建支撑业务的行业应用和平台,以便支持各种各样的商业应用场景。

从创始成员看,参与超级账本项目的公司阵容相当豪华,不仅有IBM、Intel、思科等科技巨头,也有摩根大通、富国银行、荷兰银行等金融大鳄,还有R3,ConsenSys等专注区块链的公司。截至2016年12月,超级账本项目已经汇集了全球100家公司(包括不少中国公司),声势之浩大是其他技术联盟或开源项目无法比拟的。不管是从代码数量还是从社区参与度来看,超级账本都是最大的区块链开源项目。和比特币、以太坊等由极客主导的公有链项目相比,超级账本则是大企业领衔的商业化联盟链项目。

项目管理形式

超级账本项目由会员公司组成。只要是Linux基金会的会员公司,缴纳一定的年费,即可成为超级账本项目的会员。按照所缴年费数额的多少,可分为首要会员(Premier Member)和普通会员(General Member)。还有一种无需缴费但无投票权的附属会员(Associate Member)。成为超级账本项目会员后,可以参加日常会议,并享有会员特权和履行会员义务。

超级账本项目设有理事会(Governing Board),负责日常事物管理,包括审核预算、监督项目和市场活动、表决重要事项等职责。每个首要会员可以委派一名理事会成员,普通会员中每年可推选不超过2名的理事会成员。技术指导委员会(Technical Steering Committee,TSC)主席以及一名用户顾问团(End User Technical Advisory Board,EU-TAB)也是理事会成员。

技术指导委员会(TSC)是由项目的贡献者(Contributor)或维护者(Maintainer)选举产生,主要任务是在技术上保证项目正常进行,包括制定技术方向、审批项目议案、设立工作组和工作流程以及和技术社区用户交流等。任何人都可以成为项目的贡献者,只需贡献代码、文档或其他技术性产品。部分项目贡献者将成为项目的维护者,拥有对代码库的管理权。TSC还会选举出一位主席,作为理事会成员,以加强TSC与理事会的沟通。

超级账本项目还设立了市场委员会(Marketing Committee)和用户顾问团。其中,用户顾问团有一名代表可以参与理事会的讨论和投票。

超级账本项目的目标是为商业区块链应用提供底层支持,因此,在知识产权上采用了商业友好的使用许可。所有添加到项目中的代码都要使用Apache V2.0的许可协议,项目对外提供的代码同样依照Apache V2.0的许可协议,这是非常宽泛的许可协议,可以满足绝大部分商业应用的需求。项目的文档遵循知识共享4.0国际许可协议(Creative Commons Attribution 4.0 International License),适合商业和非商业用途。

项目的生命周期管理

超级账本里包括很多不同的项目(project),每个项目是社区在某方面协同努力的工作内容,既可以是创建各类文档,也能够是开发特定功能的代码。超级账本采用了开源项目常见的孵化流程,一方面鼓励社区提出更多的新建议,另一方面给社区提供项目进展情况的指引,以便了解项目是否已经成熟可用,或是处于试验或开发阶段。

超级账本的项目根据发展程度可处于5种状态之中,分别是:提案、孵化、成熟、弃用和终止。项目在开展的过程中,可能会在数个状态之间迭代多次。

(1)提案

提案(Proposal)就是设立项目的建议,任何人都可以向技术指导委员会(TSC)递交提案。提案需要有清晰的描述和项目的范围,确认将投入开发的资源和项目维护者,同时必需是厂商中立的方案。如果TSC批准了提案,该项目就正式启动,交由相关的项目维护者管理,项目也就进入了孵化期。

(2)孵化

进入孵化(Incubation)阶段的项目,在超级账本的Github账号下创建专属的代码库,以便社区能协作开发、共同探索不同的方案,为项目添加所需的各种功能。超级账本会同时包含多个孵化期的项目,为了鼓励社区的创新,项目之间或许有重叠的部分。长远看,最终可取长补短,把项目间共性或互补的功能抽取合并到同一个项目的框架中,实现完整的技术方案。

孵化期项目的目标就是使代码达到质量稳定可用的标准,具有成熟的发布流程,并在社区拥有众多的活跃开发者。项目的维护者可向技术指导委员会提出审批申请,宣布项目转变为成熟的状态。当然,项目由于实施不当或目标改变等原因,也有可能最后无法从孵化状态转化为成熟状态。

(3)成熟

从孵化状态“毕业”的项目将进入成熟(Mature)状态,项目的成果适合在实际的应用中使用。和大多数开源项目一样,成熟态的项目还会持续的增加完善功能、修复错误以及定期发布更新版本。

(4)弃用

项目发展到一定阶段,由于各种原因,已经不适应实际需要,此时项目维护者可投票表决,是否让项目进入弃用(Deprecated)状态。投票如果通过了弃用决定,技术指导委员会将宣布项目进入弃用阶段。

(5)终止

在弃用阶段的6个月后,项目正式进入终止期(End of Life),不再维护和开发。

项目的发展状况

超级账本的初始成员公司中,不少已经开发了自己的区块链项目,他们都希望贡献这些代码给超级账本,成为其中的项目。这些成员公司的备选项目功能上既有侧重,也有重复,因此,较好的方式是把这些项目整合,互通有无,形成功能完整统一的方案。截至2016年12月,通过提案进入孵化状态的项目有3个:Fabric,Sawtooth Lake(锯齿湖)和Iroha(色彩)。

Fabric是由IBM、数字资产和Blockstream等三家公司的代码整合而成。由于这三家公司原来的代码分别使用不同的语言开发,因此无法直接合并到一起。通过一次黑客松编程,终于把原来不同语言编写的三个项目集成到一起,可实现基本的区块链交易和侦听余额变化的功能。这次黑客松的成果奠定了Fabric项目的基础。

Sawtooth Lake来自Intel贡献的代码,作为构建、部署和运行分布式账本的高度模块化平台。该项目主要提供了可扩展的分布式账本交易平台,以及两种共识算法,分别是时间消逝证明(Proof of Elapsed Time,PoET)和法定人数投票(Quorum Voting)。

Iroha是由日本创业公司Soramitsu和日立等几家公司开发的代码,主要作为Fabric和Sawtooth Lake的补充,侧重开发移动应用。

随着更多的提案通过审批,超级账本会包含越来越多的项目。后续将介绍Fabric和Sawtooth Lake等项目。(未完待续)

本文分享自微信公众号 - 亨利笔记(henglibiji),作者:张海宁(Henry)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 最具商用价值的开源区块链项目:超级账本(2)

    Fabric项目的目标是实现一个通用的权限区块链(Permissioned Chain)的底层基础框架,为了适用于不同的场合,采用模块化架构提供可切换和可扩展的...

    用户5128711
  • 明星游戏 FOMO3D 代码剖析 | 直播预告

    前段时间令人瞩目的明星游戏 FOMO3D,大家可能都有了解,也许一部分朋友也参与进去了,题图的游戏界面,大家感受下。

    用户5128711
  • 探索Harbor镜像仓库新的管理功能和界面

    Harbor 作为开源企业级的 Docker Registry ,一经推出,即得到社区和用户的热烈反应,成为当前较为流行的 Docker 镜像管理系统。Harb...

    用户5128711
  • 如何接手一个新项目

    2、为技术服务的项目,比如开源中间件项目(dubbo、spring cloud、各种数据库中间件、各种缓存方案等);

    古时的风筝
  • 在阿里,我们如何做好一个项目的启动

    阿里妹导读:俗话说“好的开始是成功的一半”,管理一个项目也是这样,项目运行中的遇到的问题往往就是在填项目启动时所埋的坑。一个好的项目启动能极大地提高项目成功的概...

    IT云清
  • 一款免费、开源,使用PHP语言开发的项目管理系统

    建立每年每月的工作项目,所有的工作最后都是对应到每位成员的个人项目,既可以是团队多人的项目形成的个人项目、也可以是完全纯属于自己的个人项目。

    程序源代码
  • 软件项目失败最常见的5大原因

    软件项目失败最常见的5大原因 最佳实践建议在启动一个新的软件项目时,寻求一名在软件开发领域具有丰富经验并且可以在项目计划的早期阶段提供协助的主题专家的帮助。这一...

    用户1289394
  • Github开源项目贡献指南:找到你的用户

    当你建立一个项目之后,没有说你一定要去推广他,即使是这个项目并不是很流行,仍然可以找到很多理由让你在这个项目上花时间。但是如果你希望别人能发现并且使用你的项目,...

    腾讯开源
  • 项目管理1.引论 课后题

    什么是项目? 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目的特点是什么? 临时性、独特性、渐进性、明细性。 项目的作用是什么? 项目驱...

    林万程
  • 从零开始用 dotnet 做全栈开发

    我是一个小白,但我想做全栈开发,我想从桌面端写到移动端,想从后台写到前端。但是我不想学习,怎么破。没关系,用 dotnet 做,这个技术方向的教程文档特别齐全,...

    林德熙

扫码关注云+社区

领取腾讯云代金券