Hyperledger - 超級賬本項目

2015 年 12 月,開源世界的旗艦——Linux 基金 會牽頭,

聯合 30 家初始企業成員(包括 IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、 Cisco 等),

共同 宣告 了 Hyperledger 項目的成立。該項目試圖打造一個透明、公開、去中 心化的分佈式賬本項目,作爲區塊鏈技術的開源規範和標準,

讓更多的應用能更容易的建立 在區塊鏈技術之上。項目官方信息網站在 hyperledger.org

 

目前主要包括三大賬本平臺項目和若干其它項目。

賬本平臺項目:

    Fabric:包括 Fabric、Fabric CA、Fabric SDK(包括 Node.Js、Python 和 Java 等語 言)和 fabric-api、fabric-sdk-node、fabric-sdk-py 等,

        目標是區塊鏈的基礎核心平臺, 支持 pbft 等新的 consensus 機制,支持權限管理,最早由 IBM 和 DAH 發起;

    SawToothLake:包括 arcade、core、dev-tools、validator、mktplace 等。是 Intel 主要 發起和貢獻的區塊鏈平臺,支持全新的基於硬件芯片的共識機制 Proof of Elapsed Time(PoET)。

    Iroha:賬本平臺項目,基於 C++ 實現,帶有不少面向 Web 和 Mobile 的特性,主要由 Soramitsu 發起和貢獻。

其它項目:

    Blockchain Explorer:提供 Web 操作界面,通過界面快速查看查詢綁定區塊鏈的狀態 (區塊個數、交易歷史)信息等。

    Cello:提供"Blockchain as a Service" 功能,使用 Cello,管理員可以輕鬆獲取和管理多 條區塊鏈;應用開發者可以無需關心如何搭建和維護區塊鏈。

• BlockChain Explorer 展示和查詢區塊鏈塊、事務和相關數據的 Web應用

• Fabric 區塊鏈技術的一個實現

• STL - Sawtooth Lake 高度模塊化的分佈式賬本平臺

• Iroha 輕量級的分佈式賬本, 側重於移動

• Cello BaaS的工具集,幫助創建、管理、終止區塊鏈


開發和提交代碼


安裝環境

推薦在 Linux(如 Ubuntu 14.04+)或 MacOS 環境中開發代碼,並安裝如下工具。

git:用來獲取代碼。

golang 1.6+:

安裝成功後需要配置 $GOPATH 等環境變量。

Docker 1.12+:用來支持容器環境,注意 MacOS 下要用 Docker for Mac。

獲取代碼

首先註冊 Linux foundation ID,並登陸 https://gerrit.hyperledger.org/,添加個人 ssh pub key。

查看項目列表,找到對應項目,以 fabric 爲例,採用 Clone with commit-msg hook 的方式來 獲取。

典型的,執行如下命令獲取代碼,放到 $GOPATH/src/github.com/hyperledger/ 路徑下,其中 LF_ID 替換爲你的 Linux foundation id。

    $ mkdir $GOPATH/src/github.com/hyperledger/

    $ cd $GOPATH/src/github.com/hyperledger/

    $ git clone ssh://[email protected]:29418/fabric && scp -p -P 29418 LF_ID@g errit.hyperledger.org:hooks/commit-msg fabric/.git/hooks/

如果沒有添加個人 ssh pubkey,則可以通過 https 方式 clone,需要輸入用戶名和密碼信息。

    git clone http://[email protected]/r/fabric && (cd fabric && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg http://[email protected]/r/tools/hoo ks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)

編譯和測試

大部分編譯和安裝過程都可以利用 Makefile 來執行,包括如下常見操作。

安裝 go tools

    執行 $ make gotools

語法格式檢查

    執行 $ make linter

編譯 peer

    執行 $ make peer

會自動編譯生成 Docker 鏡像,並生成本地 peer 可執行文件。

注意:有時候會因爲獲取安裝包不穩定而報錯,需要執行 make clean ,然後再次執行。

生成 Docker 鏡像

    執行 $ make images

執行所有的檢查和測試

    執行 $ make checks

執行單元測試

    執行 $ 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

     表示這個提交是對舊提交的一次修訂。

 

完整流程

總結,完整的流程如下圖所示。

 

Hyperledger 是 Linux 基金會支持的分佈式賬本平臺,這是開源界試圖構建一套標準化分佈式 賬本平臺的重要嘗試。

類似的項目還包括 以太坊平臺、R3 CEV 牽頭的 Corda 項目、微軟的 bletchley 項目 等。


發佈了21 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章