原文 How blockchain will influence open source 由作者 Bilgin Ibryam 首发于 opensource.com 。 本文遵循原文的 CC BY-SA 4.0 许可证对开源之道的文章进行了一些修改和补充。
区块链技术能够连接开源软件和用户,这将会给予开源新的力量。
中本聪10 年前创造的比特币如今已有大量的追随者。对于一些人来说,区块链技术会像互联网一样深刻地影响人类社会。而对于另外一些人,对区块链技术的炒作只是一个庞氏骗局罢了。区块链也一直在进化并不断地去尝试找到自己的定位,但有一件事情是确定的: 区块链将从根本上改变某些行业,而我坚信开源就是其中的一个。
开源是一种软件协作开发以及软件分发的模式,开源允许拥有共同兴趣的人们一起协作,进而生产出他们中间任何个体都无法独立完成的事情,它让整体所创建的价值远远大于部分的总和。开源使用分布式的协作工具(IRC、email、git、wiki、issue 跟踪等)并在开源许可证的模式下被分发和保护,当然还有诸如 Apache 软件基金会和云原生基金会这样的非盈利基金会的治理。
开源软件的一个很有趣的点是它本质上是缺乏金钱上激励的。一些人认为开源工作是一种由内在动机驱动的自由且无偿的活动(比如“共同理想”、“让世界变得更好”)而不该谈钱。另一些人认为开源工作也需要一些直接或间接的外部激励(比如资金上支持)。只通过自愿地贡献就能形成繁荣的开源生态,这种想法很浪漫,但大多数的开源贡献都是在有偿的情况下完成的。的确我们有大量无偿的开源贡献者,但除了一些非常热门的项目,大多数贡献者都是临时性地来来走走。而创建和维护对企业有用的开源项目需要长时间的开发、文档、测试、bug 修复,即使当项目已经不在让人那么心潮澎湃。这其实一项很枯燥的工作,最好能有经济上的激励。
众所周知,Apache 软件基金会是通过捐助以及其它的一些收入:赞助费、会议费用等等。但是要知道这些资金主要是用于运营基金会本身,如为项目提供法律保护,以及确保有足够的服务器来运行程序、issue 追踪、邮件列表等等。
同样的,云原生基金会 CNCF 会收取会员费,以及更多的会议费用,这些费用同样是用来运营基金会以及为项目提供资源支持。如今的年头,绝大多数的软件已经不能在自己的笔记本电脑里完成所有开发了,它们运行和测试都是在云平台中上百台服务器当中。这些都属于基金会的日常开销。其它如开展营销活动,品牌设计、分发一些宣传物品,也是基金会份内的事情。基金会的核心任务是实施正确的流程,与用户,开发人员和控制机制进行交互,并确保将可用财务资源分配给开源项目以实现共同利益。
开源项目可以募捐到钱,基金会也可以公正的进行分发,看似一切都很好,那么哪里还有问题呢?
问题就是在开源软件生产者和消费者之间缺乏一条直接的、透明的、可信任的、去中心化的、自动的传输价值的双向链接。
开源生态的几个问题在于:
第三种选择是维持许多开源项目的成功模式。无论这些公司提供服务(培训、咨询、workshop)、技术支持、打包、开放核心,还是 SaaS 服务,不可否认的是他们都需要雇佣上百个全职的员工来为开源做出努力,我们可以看到这样的公司有一大把,他们成功的建立了有效的开源商业模式,而且正在有更多的公司加入这个阵营。
支持开源项目的公司在这个生态系统中发挥着重要的作用:它们介于开源项目和用户之间,起着重要的催化剂作用。那些能够真正为用户创造价值的公司,不仅仅是能够打包出很棒的软件;而是他们能够识别用户的真实需求,且能够洞察技术趋势,有能力创建出一个完整的堆栈甚至是开源项目的生态系统来满足这些需求。 他们可以全身心的扑在一个有些寂寥和无聊的项目上,而且会一直支持很多年,只为坚守其中的价值。还有如果在某个软件堆栈中缺少了某一部分,他们随时可以从头开始一个开源项目,并围绕它来构建一个社区。他们甚至可以收购一家闭源的公司,然后将项目再整个的开源了(没错,可能很多读者看到这里已经猜到了说的是哪家公司了,没错,这里的特性红帽公司都拥有。)
简单总结一下,基于商业化的开源模式就是这样,项目由少数个人或公司正式或非正式的管理和控制着,这些个人或公司确保了项目的成功发布,而且有着商品化的能力,并有效的在回馈给开源的生态。对于开源开发人员,管理公司和最终用户来说,这是一个没有输家的美好格局。这可以很好的替代那些日薄西山且昂贵的闭源软件!
毫无疑问,想要让项目赢得好口碑,就得满足一些人们的期望。举例来说,Apache 软件基金会和云原生计算基金会均需要孵化和毕业的过程,除了所有技术和形式要求之外,项目还必须拥有健康数量的活跃提交者和用户。这些都是形成可持续发展开源项目的关键。在 GitHub 上拥有源代码与拥有一个活跃的开源项目是有着本质上的不同。一个活跃的开源项目意指编写代码的提交者和使用代码的用户,两个组通过交换价值并形成一个每个人都受益的生态系统来不断的螺旋式成长。一些项目生态系统可能很小而且寿命很短,有些可能包含多个项目和竞争服务提供商,其中非常复杂的交互持续多年。但只要有价值交换,每个人都从中受益,项目就会得到发展、维护和可持续。
我们来看下 Apache 软件基金会的项目 Attic,该项目已经完成了它的历史使命,正在走入其生命周期中最后的阶段。这是非常正常的现象:当一个项目在技术上不再适合它的当初的开发目的时,它通常会自然结束。同样,在 ASF 的孵化基地,你会发现很多项目从未毕业但却已经退出了历史舞台,通常情况下,这些项目无法构建足够大的社区,要么因为它们过于偏门,要么是被更好的方案所替代。
但更多的情况是,具有高潜力和卓越技术的项目无法维系自身,因为它们无法形成或维持一个有效的生态系统来进行价值交换。** 目前的开源模式以及基金会并没有为开发者提供一个获得报酬或让用户获知他们的请求的框架或机制,这样的话,就没有任何一方拥有共同的价值承诺。** 这样的话,结果就是一些项目只能在商业的开源环境中维持自身,在商业化的开源中,公司充当中间人的角色,并在开发者和用户之间进行价值获取。这增加了另外一个局限性就是要求服务提供商的公司来维持一些开源项目。这似乎离理想中的情况很是遥远:用户可以完整而直接的表达他们对项目的期望,开发人员能够以透明、可量化的方式来兑现他们对项目的承诺,这是一个具有共同利益和价值交换意向的社区。
想象一下有这么一种模式使得开源软件贡献者和用户可以直接互相影响。不仅仅是通过 Pull Request 来贡献代码、使用邮件列表发送问题、GitHub 的星星数量、以及笔记本电脑上的贴纸,而且还体现在杨素有更多的方式可以更加自控、透明地影响项目的走向。比如以下这些激励:
你可能已经猜到了,以上这些激励就是使用区块链和智能合约来促进开发者与用户之间的积极互动。智能合约可以让代币持有者拥有真实的权力来影响项目的走向。下图所示为:开源生态系统中区块链的应用。
目前现有的开源生态系统中,采用有限的手段来影响项目的走向是可能做得到的,如服务提供商的财务承诺、通过基金会等方式。但是在开源生态系统上增加基于区块链的技术后会为用户和开发者之间打开一条新的通道,但并不是说这么做会取代商业的开源模式,因为大多数为开源服务的公司做了许多智能合约无法完成的事情。但是智能合约可以提出一种新的协作方式,为那些不堪重负的项目提供二次生命的机会。它可以激励开发者去认领那些无聊的 Pull Request、撰写文档、测试程序代码等等,在用户和开源开发人员之间提供直接的价值交换渠道。当商业化的公司不能支持一些项目时,区块链可以增加一种新渠道来帮助开源项目增长,并在长期内实现自我维持。它可以为自我维持的开源项目创建一个新的互补且双赢的模型。
其实已经有许多旨在将开源生态代币化的项目了,它们其中有一些是仅仅聚焦于开源软件的,也有一些是更加通用的(也适用于开源软件行业),以下是我收集的列表:
这个列表在本文撰写之时仍然在快速增长着,它们其中一些肯定会消失,也有一些会转移目标,但是总有一些会融入到诸如 SourceForge、Apache 软件基金会、以及 GitHub。这些平台不会也没有必要去取代这些平台,但是代币模型是对这些平台的很好补充,它可以让开源生态系统更加的丰富。每个项目都可以选择其分发模型(许可证)、管理模型(基金会)和激励模型(代币)。无论哪种,都会为开源的世界注入新鲜的血液!
事实就是开源行业已经发展已经如此巨大以至于它不会轻易失败,而且开源对于这个世界实在是太重要了,以至于它不可能被少数人所操纵或者自生自灭。开源是一个对所有人都有价值的共享资源系统,而且更要重要的是,它只能以开放的方式来被管理。地球上每家公司都希望自身在开源世界拥有筹码和发言权,然而不幸的是,我们还没有一种工具或者习惯来达成这一目的。那样的工具将允许任何人表达他们对软件项目的欣赏或忽视;** 它将在生产者和消费者之间,开发者和用户之间创建直接而且更快的反馈循环;** 它将通过用户需求的驱动以及通过代币来进行追踪和衡量而实现更好地创新。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。