歡迎光臨
每天分享高質量文章

區塊鏈將會如何影響開源 | 開源之道

無論怎樣,有一件事是確定的,那就是區塊鏈是一項顛覆性的技術,將從根本上改變一些行業。我深信開源就是其中之一。

— Bilgin Ibryam

中本聰[1]十年前創立比特幣伊始,就引來來眾多的追隨者,並慢慢演變為去中心化的一場運動。甚至於,對於某一些人來說,區塊鏈技術就像網際網路那樣深刻影響著人類社會的技術,當然,也有很大一部分人認為,區塊鏈不過是另外一場龐氏騙局罷了,就在這眾說紛紜之中,區塊鏈也在進化並不斷的嘗試尋找自己的位置。無論怎樣,有一件事是確定的,那就是區塊鏈是一項顛覆性的技術,將從根本上改變一些行業。我深信開源就是其中之一。

開源的樣式

開源是一種軟體協作開發方法,也是軟體分發的樣式,開源允許擁有共同興趣的人們一起協作,進而生產出他們中間任何個體都無法獨立完成的事情,它讓整體所建立的價值遠遠大於部分的總和。開源透過分散式的協作工具(IRC、email、git、wiki、issue 跟蹤等)、以及開源許可證樣式下的分發和保護,當然還有諸如 Apache 軟體基金會[2]雲原生基金會[3]這樣的非盈利基金會的治理。

說來已久,最讓人們好奇的莫過於開源的樣式本質上是缺乏金錢上的激勵的。在開源界,像人類社會的其它方面一樣,分很多的派系,如其中一些人就認為談開源就不要談錢,開源本應該就是由內在的激勵的自由和資源的行為(諸如“共同理想”、“為了偉大的事情”);也有另外一些人認為開源需要獲得外部的尤其是金錢上的激勵。雖然開源專案僅僅透過世上的志願者來完成是富有理想的浪漫主義色彩的,就目前的現狀來看,事實上主要的開源完成的貢獻均是在有支付的情形下搞定的。當然,毋庸置疑的是我們擁有大量的無償貢獻者,但是這些貢獻都是來來回回的臨時性的,或者是某些受追捧的專案備受世人關註。建立和維繫開源專案是需要企業傾註大量心血和精力來進行開發、檔案化、測試、修複缺陷,而且是持續性的一如既往的,絕不是一時心血來潮。要知道,開發軟體產品是需要剋服大量困難的事情,這類事情最好是有金錢上的激勵方能持久。

開源的商業化

眾所周知,Apache 軟體基金會是透過捐助而生存的,當然還有其它的一些收入:贊助、會議費用等等。但是要知道這些資金主要是用於運營基金會本身,如為專案提供法律保護,以及確保有足夠的伺服器來執行構建程式、缺陷追蹤、郵件串列等等。

同樣的,雲原生基金會 CNCF 會收取會員費,以及更多的會議費用,這些費用同樣是用來運營基金會以及為專案提供資源。如今的年頭,絕大多數的軟體已經不能在自己的膝上型電腦裡構建了,它們都的執行和測試都是在雲平臺中上百臺伺服器當中。這些都屬於基金會的日常開銷。其它如開展營銷活動,品牌設計、分發一些小的宣傳物品,也是基金會份內的事情。基金會的核心任務是實施正確的流程,與使用者,開發人員和控制機制進行互動,並確保將可用財務資源分配給開源專案以實現共同利益。

看起來是一切都執行良好,不是嗎?開源專案可以募捐到錢,基金會也可以公正的進行分發,那麼哪裡有問題了呢?

這裡沒有說明的是:用於在開源生產者和開源消費者之間進行價值轉移,直接,透明,可信,分散,自動的雙向連結。就目前而言,所有的連結都是單向或間接的:

◈ 單向:一名開發者(廣義上的開發者,可以是軟體生產中的任何角色:碼農、維護者、分發者),利用自己的聰明才智,絞盡腦汁,並花費無數時間來開發開源專案,且提交貢獻為所有的開源使用者分享這一價值。但是基本上都是一廂情願的。
◈ 間接:如果軟體出現了 bug,影響到了特定的使用者/公司的話,有下列幾種情形出現:

◈ 讓內部開發人員修複 bug,然後提交一個拉取請求(PR),這是比較理想的狀態,這些公司並不總是能夠聘請到特定的開源專案的開發人員,因為一般公司都會使用成百上千個開源專案。
◈ 聘請專門從事該特定開源專案的自由職業者並支付服務費用。理想情況下,自由職業者也是開源專案的提交者,可以直接快速更改專案程式碼。否則,修複程式可能永遠不會進入上游專案。
◈ 接近圍繞開源專案提供服務的公司。這些公司通常僱用開源提交者來影響和獲得社群的可信度,並提供產品、專業知識和專業服務。

第三種選擇是維持許多開源專案的成功樣式[4]。無論這些公司提供服務(培訓、諮詢、workshop)、技術支援、打包、開放核心,還是 SaaS 服務,不可否認的是他們都需要僱傭上百個全職的員工來為開源做出努力,我們可以看到這樣的公司有一大把[5],他們成功的建立了有效的開源商業樣式,而且正在有更多的公司加入這個陣營。

支援開源專案的公司在這個生態系統中發揮著重要的作用:它們介於開源專案和使用者之間,起著重要的催化劑作用。那些能夠真正為使用者創造價值的公司,不僅僅是能夠打包出很棒的軟體;而是他們能夠識別使用者的真實需求,且能夠洞察技術趨勢,有能力創建出一個完整的堆疊甚至是開源專案的生態系統來滿足這些需求。 他們可以全身心的撲在一個有些寂寥和無聊的專案上,而且會一直支援很多年,只為堅守其中的價值。還有如果在某個軟體堆疊中缺少了某一部分,他們隨時可以從頭開始一個開源專案,並圍繞它來構建一個社群。他們甚至可以收購一家閉源的公司,然後將專案再整個的開源了(沒錯,可能很多讀者看到這裡已經猜到了說的是哪家公司了,沒錯,這裡的特性紅帽[6]公司都擁有。)

簡單總結一下,基於商業化的開源樣式就是這樣,專案由少數個人或公司正式或非正式的管理和控制著,這些個人或公司確保了專案的成功釋出,而且有著商品化的能力,並有效的在回饋給開源的生態。對於開源開發人員,管理公司和終端使用者來說,這是一個沒有輸家的美好格局。這可以很好的替代那些日薄西山且昂貴的閉源軟體!

自我供給,去中心化的開源

毫無疑問,想要讓專案贏得好口碑,就得滿足一些人們的期望。舉例來說,Apache 軟體基金會和雲原生計算基金會均需要孵化和畢業的過程,除了所有技術和形式要求之外,專案還必須擁有健康數量的活躍提交者和使用者。這些都是形成可持續發展開源專案的關鍵。在 GitHub 上擁有原始碼與擁有一個活躍的開源專案是有著本質上的不同。一個活躍的開源專案意指編寫程式碼的提交者和使用程式碼的使用者,兩個組透過交換價值並形成一個每個人都受益的生態系統來不斷的螺旋式成長。一些專案生態系統可能很小而且壽命很短,有些可能包含多個專案和競爭服務提供商,其中非常複雜的互動持續多年。但只要有價值交換,每個人都從中受益,專案就會得到發展、維護和可持續。

我們來看下 Apache 軟體基金會的專案 Attic[7],該專案已經完成了它的歷史使命,正在走入其生命週期中最後的階段。這是非常正常的現象:當一個專案在技術上不再適合它的當初的開發目的時,它通常會自然結束。同樣,在 ASF 的孵化基地[8],你會發現很多專案從未畢業但卻已經退出了歷史舞臺,通常情況下,這些專案無法構建足夠大的社群,要麼因為它們過於偏門,要麼是被更好的方案所替代。

但更多的情況是,具有高潛力和卓越技術的專案無法維繫自身,因為它們無法形成或維持一個有效的生態系統來進行價值交換。目前的開源樣式以及基金會並沒有為開發者提供一個獲得報酬或讓使用者獲知他們的請求的框架或機制,這樣的話,就沒有任何一方擁有共同的價值承諾。這樣的話,結果就是一些專案只能在商業的開源環境中維持自身,在商業化的開源中,公司充當中間人的角色,併在開發者和使用者之間進行價值獲取。這還增加了另外一個侷限且要求服務提供商的公司來維持一些開源專案。這似乎離我們理想中的情況很是遙遠:使用者可以完整而直接的表達他們對專案的期望,開發人員能夠以透明、可量化的方式來兌現他們對專案的承諾,這是一個具有共同利益和意圖進行價值交換的社群。

現在各位看官可以想象一下,有這樣一個樣式,它的工作機制和工具可以實現開源使用者和開發人員直接打交道。這不僅僅體現在諸如透過拉取請求來貢獻程式碼、使用郵件串列傳送問題、GitHub 的星星數量、以及膝上型電腦上的貼紙,而且還體現在使用者有更多的方式、更加自控的、透明的行為來影響專案的走向。

該模型可包括對以下行為的激勵:

◈ 直接為開源專案提供資金,而不是透過軟體基金會
◈ 透過投票影響專案方向(透過代幣持有人)
◈ 由使用者需求驅動的功能需求
◈ 及時的合併拉取請求
◈ 為提交缺陷者給予獎勵
◈ 為更好的測試改寫率進行獎勵
◈ 獎勵及時更新檔案者
◈ 及時的安全修複
◈ 專家協助、支援和服務
◈ 為專案的佈道師和推廣者進行最佳預算
◈ 定期活動的預算
◈ 更加快速的電子郵件和線上聊天幫助系統
◈ 全面瞭解整體專案的狀態,等

聰明的看官可能已經猜到了,沒錯,以上所談就是使用區塊鏈和智慧合約[9],進而實現終端使用者和開發者之間的積極互動。 智慧合約可以讓代幣持有者擁有真實的權力來影響專案的走向。

上圖所示:在開源生態系統中區塊鏈的應用

目前現有的開源生態系統中,採用非正常手段來影響專案的走向是可能做得到的,如服務提供商的財務承諾、透過基金會的較為有限的方式等。但是在開源生態系統上增加基於區塊鏈的技術會為使用者和開發者之間開啟一條新的通道,這麼做並不是說會取代商業的開源樣式;因為大多數使用開源的公司做了許多智慧合約無法完成的事情。但是智慧合約可以引發一種新型的開源專案,為那些不堪重負的專案提供二次生命的機會。它可以激勵開發者去認領那些無聊的拉取請求、撰寫檔案、測試程式程式碼等等,在使用者和開源開發人員之間提供直接的價值交換渠道。即使公司支援不可行,區塊鏈也可以增加新渠道,幫助開源專案增長,併在長期內實現自我維持。它可以為自我維持的開源專案建立一個新的互補模型 —— 一種雙贏的樣式。

通證開源

其實已經有許多旨在將開源通證化的實現了,它們其中有一些是僅僅聚焦於開源樣式的,也有一些是更加通用的(也適用於開源樣式),以下是我收集的串列:

◈ GitCoin[10],在開源成長起來的,這是該領域最有前途的開源專案之一。
◈ oscoin[11],針對開源的加密貨幣。
◈ 開放協作[12],一款支援開源專案的平臺。
◈ FundYourselfNow[13],針對專案的眾籌和 ICO 平臺。
◈ Kauri[14],支援開源專案檔案。
◈ Liberapay[15],經常性的捐贈平臺。
◈ FundRequest[16],針對開源協作的去中心化市場。
◈ CanYa[17],最近被 Bountysource [18]收購,Bountysource 是目前世界上最大的開源 P2P 賞金平臺。
◈ OpenGift[19],開源套現的新樣式。
◈ Hacken[20],為 Hacker 們提供的白帽令牌。
◈ CoinLancer[21],一個去中心化的人力市場。
◈ CodeFund[22],一款開源的廣告平臺。
◈ IssueHunt[23],為開源維護者和貢獻者提供的募捐平臺。
◈ District0x 1Hive[24],眾包和策展平臺。
◈ District0x Fixit [25],GitHub 缺陷懸賞系統。

這個串列在本文撰寫之時仍然在增長著,而且是蠻快速的那種,它們其中一些肯定會消失,也有一些會轉移標的,但是總有一些會融入到諸如 SourceForge[26]、Apache 軟體基金會、以及 GitHub。這些平臺不會也沒有必要去取代這些平臺,但是令牌模型是對這些平臺的很好補充,它可以讓開源生態系統更加的豐富。每個專案都可以選擇其分發模型(許可證)、管理模型(基金會)和激勵模型(令牌)。無論哪種,都會為開源的世界諸如新鮮的血液!

開放和去中心化的未來

◈ 軟體正在吞噬世界
◈ 每家公司都是軟體公司
◈ 開源是創新的良田

事實就在眼前,開源已經發展到如此巨大的產業,是不會輕易失敗的,而且開源對於這個世界實在是太重要了。它是不可能被少數人所操縱,或者被世人所遺棄而自生自滅。開源是一個對所有人都有價值的共享資源系統,而且更要重要的是,它只能以這樣的方式來被管理,這個世界上所有的公司都希望自身在開源擁有籌碼和發言權,然而,頗為不幸的是,我們並沒有一種工具或者習慣來這麼去做,我們對工具的期望是:這些工具將允許任何人表達他們對軟體專案的欣賞或忽視;它將在生產者和消費者之間,開發者和使用者之間建立直接而且更快的反饋迴圈;它將促進由使用者需求驅動的雙創新樣式,而且是透過令牌來進行追蹤和衡量的。

關於作者

Bilgin Ibryam (@bibryam[27]) 是開源的鐵桿粉絲,博主、演講者,《Camel 設計樣式》和《Kubernetes 樣式》等的書作者。他也是紅帽的架構師,同時也是 Apache 軟體基金會的貢獻者,涉及的專案有 Camel、OFBiz、Isis 等,在日常工作中,Bilgin 非常熱衷於指導、訓練、帶領團隊搞一些正如應用程式整合、分散式系統、雲原生的應用等。在閑暇時刻,他為開源專案做貢獻,並撰寫部落格:ofbizian.com[28]

贊(0)

分享創造快樂