HyperLeger Fabric開發(一)——HyperLeger簡介
一、HyperLeger簡介
1、HyperLeger簡介
Hyperledger(超級賬本)是Linux基金會於2015年發起的推進區塊鏈數字技術和交易驗證的開源項目,目標是讓成員共同合作,共建開放平臺,滿足來自多個不同行業各種用戶案例,並簡化業務流程。由於點對點網絡的特性,分布式賬本技術是完全共享、透明和去中心化的,故非常適合於在金融行業的應用,以及其它的例如制造、銀行、保險、物聯網等行業。通過創建分布式賬本的公開標準,實現虛擬和數字形式的價值交換,例如資產合約、能源交易、結婚證書、能夠安全和高效低成本的進行追蹤和交易。
Hyperledger的所有項目都遵守Apache v2許可,並約定共同遵守如下的基本原則:
A、重視模塊化設計:包括交易、合同、一致性、身份、存儲等技術場景。
B、重視代碼可讀性:保障新功能和模塊都可以很容易添加和擴展。
C、可持續的演化路線:隨著需求的深入和更多的應用場景,不斷增加和演化新的項目。
Apache v2 許可協議是商業友好的知名開源協議,鼓勵代碼共享,尊重原作者的著作權,允許對代碼進行修改和再發布(作為開源或商業軟件)。
以比特幣為代表的數字貨幣提供了區塊鏈技術應用的原型,以太坊為代表的智能合約平臺延伸了區塊鏈技術的功能,Hyperledger則通過進一步引入權限控制和安全保障,開拓了區塊鏈技術的全新領域。Hyperledger首次將區塊鏈技術引入到分布式聯盟賬本的應用場景,為未來基於區塊鏈技術打造高效率的商業網絡打下了堅實的基礎。
Hyperledger項目的出現,實際上宣布區塊鏈技術已經不僅局限在單一應用場景中,也不僅局限在完全開放的公有鏈模式下,區塊鏈技術已經正式被主流企業市場認可並在實踐中采用。同時,Hyperledger中提出和實現了許多創新的設計和理念,包括完備的權限和審查管理、細粒度隱私保護以及可拔插、可擴展的實現框架,對於區塊鏈相關技術和產業的發展都將產生深遠的影響。
https://www.hyperledger.org/
Hyperledger源碼托管:
https://github.com/hyperledger
Hyperledger中文文檔:
https://github.com/HyperledgerCN/hyperledgerDocs
https://hyperledgercn.github.io/hyperledgerDocs/
2、Hyperledger社區組織結構
Hyperledger社區自成立起就借鑒了眾多開源社區組織的經驗,形成了技術開發為主體、積極面向應用的體系結構。
Hyperledger社區的項目開發工作由技術委員會(Technical Steering Committee,TSC)指導,首任主席由來自IBM開源技術部門的CTO Chris Ferris 擔任;管理委員會主席則由來自Digital Asset Holdings的CEO Blythe Masters擔任。自2016年5月起,Apache基金會創始人Brian Behlendorf擔任超級賬本項目的首位執行總監(Executive Director)。
Hyperledger社區十分重視大中華地區的應用落地和開發情況,2016年12月,大中華區技術工作組正式成立,負責推動本土社區組織建設和相關的技術發展和應用工作。
Hyperledger社區組織結構如下:
Hyperledger社區目前主要是三駕馬車領導的結構:
Technical Steering Committee (技術委員會)負責技術相關的工作,下設多個工作組,具體帶動各個項目和方向的發展。
Governing Board(管理董事會)負責社區組織的整體決策,由Hyperledger會員中推選出代表。
Linux Foundation(Linux基金會)負責基金管理,協助Hyperledger社區在Linux基金會的支持下發展。
Linux 基金會和Hyperledger 社區十分重視項目在大中華區的應用和落地情況,並希望能為開發者們貢獻開源社區提供便利。因此,Hyperledger首任執行董事Brian Behlendorf於2016年12月1日提議成立 大中華區技術工作組(TWG-China),並得到TSC成員們的一致支持和通過。
大中華區技術工作組的Wiki首頁地址:
https://wiki.hyperledger.org/groups/tsc/technical-working-group-china
大中華區技術工作組的主要職責包括:
A、帶領和引導大中華區的技術開發相關活動,包括貢獻代碼、文檔、項目提案等。
B、推動技術相關的交流,促進會員企業之間的合作和實踐案例的落地。
C、通過郵件列表、RocketChat、論壇等方式促進社區開發者們的技術交流。
D、協助舉辦社區活動,包括Meetup、***松、Hackfest、技術分享、培訓等。
目前,工作組由來自IBM、甲骨文、萬達、華為、百度等Hyperledger成員企業的數十名技術專家組成,並得到了來自社區的眾多誌願者的支持。工作組的各項會議和活動內容都是開放的,可以在Wiki首頁上找到相關參與方式。
3、Hyperledger頂級項目
Hyperledger所有項目一般都需要經歷提案(Proposal)、孵化(Incubation)、活躍(Active)、退出(Deprecated)、終結(End of Life)等5個生命周期。任何希望加入到Hyperledger社區中的項目,必須首先由發起人編寫提案。描述項目的目的、範圍和開發計劃等重要信息,並由技術委員會來進行評審投票,評審通過則可以進入到社區內進行孵化。項目成熟後可以申請進入到活躍狀態,發布正式的版本,最後從社區中退出結束。
(1)Hyperledger Fabric
Hyperledger Fabric是區塊鏈的基礎核心平臺,目標是成為面向企業的開發應用和解決方案的分布式賬本平臺,創新的引入權限管理支持,設計上支持可插拔、可擴展,是首個面向聯盟鏈場景的開源項目,也是最早加入到Hyperledger項目中的頂級項目,由 IBM、DAH等企業於2015年底提交到社區。
Hyperledger Fabric基於Go語言實現,包括Fabric、Fabric CA、Fabric SDK(包括Node.Js、Python和Java等語言)和fabric-api等子項目,目前處於活躍狀態,已發布1.2正式版本,目前提交次數已經超過10000次,核心代碼數超過8萬行。
Gerrit地址:https://gerrit.hyperledger.org/r/#/admin/projects/fabric
GitHub地址:https://github.com/hyperledger/fabric
(2)Hyperledger Sawtooth
Sawtooth是高度模塊化的分布式賬本平臺,用以創建、部署和運行分布式賬本。Sawtooth基於Python語言實現,目前提交次數已經超過7000次,由Intel等企業於2016年4月提交到社區。
Sawtooth項目利用Intel芯片的專屬功能,支持全新的基於硬件芯片的Proof of Elapsed Time(PoET)共識機制,並支持交易族(Transaction Family),方便用戶使用進行快速開發應用。
GitHub地址:https://github.com/hyperledger/sawtooth-core
(3)Hyperledger Iroha
Hyperledger Iroha是輕量級分布式賬本,是一個業務區塊鏈框架,用於簡單和容易地並入需要分布式賬本技術的基礎設施項目。
Hyperledger Iroha項目基於C++實現,帶有面向Web和Mobile的特性,由Soramitsu等企業於2016 年10月提交到社區,目前提交次數已經超過6000次。
GitHub地址:https://github.com/hyperledger/iroha
(4)Hyperledger?Burrow
Hyperledger?Burrow項目提供了支持以太坊虛擬機的智能合約區塊鏈平臺,並支持Proof-of-Stake共識機制(Tendermint)和權限管理,可以提供快速的區塊鏈交易。
Hyperledger?Burrow的前身為eris-db,基於Go語言實現,目前提交次數已經超過1600次,由Monax、Intel 等企業於2017年4月提交到社區。
Hyperledger?Burrow提供了一個模塊化的、帶經過許可的智能合約解釋器的區塊鏈客戶端,采用了部分以太坊虛擬機(EVM)的技術規範,提供以太坊虛擬機的支持,實現支持高效交易的帶權限的區塊鏈平臺。
GitHub地址:https://github.com/hyperledger/burrow
(5)Hyperledger?Indy
Hyperledger?Indy致力於打造一個基於區塊鏈和分布式賬本技術的數字中心管理平臺,支持去中心化,支持跨區塊鏈和跨應用的操作,實現全球化的數字身份管理。
Hyperledger?Indy項目主要由Python語言開發,包括服務節點、客戶端和通用庫等,於2017年3月底正式加入到Hyperledger?項目,目前已有超過2000次提交。
GitHub地址:https://github.com/hyperledger/indy-node
(6)Hyperledger?Explorer
Hyperledger?Explorer項目的定位是區塊鏈平臺的瀏覽器,基於Node.js語言實現,提供Web操作界面,由Intel、DTCC、IBM等企業於2016年8月提交到社區。Hyperledger Explorer可以查看、調用、部署或者查詢區塊、事務和相關數據、網絡信息、鏈碼和事務序列以及任何其它保存在賬本中的相關信息。
Gerrit地址:
https://gerrit.hyperledger.org/r/#/admin/projects/blockchain-explorer
GitHub地址:https://github.com/hyperledger/blockchain-explorer
(7)Hyperledger?Cello
Hyperledger Cello項目定位為區塊鏈管理平臺,同時提供區塊鏈即服務(Blockchain-as-a-Service),實現區塊鏈環境的快速部署以及對區塊鏈平臺的運行時管理。Hyperledger Cello可以讓區塊鏈應用人員專註到應用開發,而無需關心底層平臺的管理和維護。
Cello 的主要開發語言為Python和JavaScript等,底層支持包括裸機、虛擬機、容器雲(包括Swarm、Kubernetes)等多種基礎架構,由IBM的技術團隊於2017年1月貢獻到社區,目前已經提交超過500次。
Gerrit地址:https://gerrit.hyperledger.org/r/#/admin/projects/cello
GitHub地址:
核心代碼:https://github.com/hyperledger/cello
側重數據分析:https://github.com/hyperledger/cello-analytics
(8)Hyperledger?Composer
Hyperledger?Composer是一個協同工具,致力於提供一個Hyperledger Fabric的開發輔助框架,開發人員可以使用Javascript語言定義應用邏輯,再加上資源、參與者、交易等模型和訪問規則,生成Hyperledger Fabric支持的鏈碼。
Hyperledger?Composer項目主要由NodeJs語言開發,由IBM團隊於2017年3月底貢獻到社區,目前已有超過 5000次提交。
GitHub地址:https://github.com/hyperledger/composer
(9)Hyperledger Caliper
Hyperledger Caliper是一個區塊鏈基準性能測評框架,?允許用戶通過一系列預置的用例來測試特定的區塊鏈技術解決方案。
Hyperledger Caliper生成的報告將會包含一系列區塊鏈性能指標,如TPS(平均每秒交易數),時延,系統資源占用等。Hyperledger Caliper的測試結果將幫助Hyperledger其它的項目進行開發,同時為用戶選擇滿足特定需求的區塊鏈實現提供參考依據。
Hyperledger Caliper的關鍵組件是適配層,將不同的區塊鏈實現與Caliper框架集成。對每種待測環境(SUT)都會實現一個適配器,其作用是將Caliper的北向接口(NBI)轉為為對應區塊鏈實現的協議。Caliper的北向接口是一系列的通用區塊鏈接口,包含和後端區塊鏈系統交互的各種操作(例如安裝智能合約,調用智能合約,查詢賬本狀態等)。
Hyperledger Caliper項目主要采用NodeJs語言開發,由華為公司於2018年3月貢獻至Hyperledger社區,目前已經有超過190次提交。
GitHub地址:https://github.com/hyperledger/caliper
(10)Hyperledger Quilt
Hyperledger Quilt是Interledger Protocol (ILP)協議的Java實現,是連接不同賬本(ledger)的中間件,用於創建跨賬本的交易。
Interledger Protocol (ILP)定義了分布式賬本與分布式賬本之間、傳統賬本與分布式賬本之間的交互過程,是一種支付協議,旨在分布式賬本和傳統賬本之間進行價值轉移。
Hyperledger Quilt可以將Hyperledger區塊鏈與XRP Ledger,Ethereum,Bitcoin(Lightning),Litecoin,Mojaloop和RippleNet等支持ILP的支付系統連接起來。
Hyperledger Quilt項目主要由Java語言開發,由日本NTT Data公司和Ripple於2017年10月貢獻至Hyperledger社區,目前已經有超過70次提交。
GitHub地址:https://github.com/hyperledger/quilt
二、Hyperledger開發工具
1、Linux Foundation ID
Hyperledger項目受到 Linux 基金會的支持,采用Linux Foundatio ID(LF ID)作為社區唯一的ID。
個人申請ID完全免費,可以到https://identity.linuxfoundation.org/ 進行註冊。
用戶使用LF ID即可訪問到包括Jira、Gerrit、RocketChat 等社區的開發工具。
2、Jira任務和進度管理
Jira是Atlassian公司開發的一套任務管理和事項跟蹤的追蹤平臺,提供Web操作界面,使用十分方面。
Hyperledger社區采用jira.hyperledger.org作為所有項目開發計劃和任務追蹤的入口,使用LF ID即可登錄。
登錄後,可以通過最上面的Project菜單來查看某個項目相關的事項,還可以通過Create按鈕來快速創建事項(常見的包括task、bug、improvement等)。
用戶打開事項後可以通過assign按鈕分配給自己來領取該事項。事項分為TODO(待處理)、In Process(處理中)、In Review(補丁已提交、待審查)、Done(事項已完成)等多個狀態,由事項所有者來進行維護。
3、Gerrit代碼倉庫和Review管理
Gerrit 是一個負責代碼協同的開源項目,很多企業和團隊都使用Gerrit負責代碼倉庫管理和代碼的審閱工作。Gerrit使用十分方便,提供了基於Web的操作界面。
Hyperledger社區采用 gerrit.hyperledger.org作為官方的代碼倉庫,並實時同步代碼到github.com/hyperledger作為只讀的鏡像。
用戶使用自己的LF ID登錄後,可以查看所有項目信息,也可以查看自己提交的補丁等信息。每個補丁的頁面上會自動追蹤修改歷史,審閱人可以通過頁面進行審閱操作,贊同提交則可以加分,發現問題則註明問題並進行減分。
4、RocketChat在線溝通
除了郵件列表外,社區也為開發者們提供了在線溝通的渠道RocketChat。
RocketChat 是一款功能十分強大的在線溝通軟件,支持多媒體消息、附件、提醒、搜索等功能,雖然是開源軟件,但在體驗上可以跟商業軟件Slack媲美。支持包括網頁、桌面端、移動端等多種客戶端。
Hyperledger社區采用 chat.hyperledger.org 作為服務器。用戶直接使用自己的LF ID登錄該網站,即可訪問。然後可以自行添加感興趣項目的頻道。
用戶也可以下載RocketChat客戶端,添加chat.hyperledger.org作為服務器即可訪問社區內的頻道,跟廣大開發者進行在線交流。
通常,每個項目都有一個同名的頻道作為主頻道,例如#Fabric、#Cello等。同時各個工作組也往往有自己的頻道,例如大中華區技術工作組的頻道為#twg-china。
HyperLeger Fabric開發(一)——HyperLeger簡介