超級賬本(hyperledger)是Linux基金會於2015年發起的推進區塊鏈數字技術和交易驗證的開源專案,加入成員包括:荷蘭銀行(ABN AMRO)、埃森哲(Accenture)等十幾個不同利益體,目標是讓成員共同合作,共建開放平臺,滿足來自多個不同行業各種使用者案例,並簡化業務流程。由於點對點網路的特性,分散式賬本技術是完全共享、透明和去中心化的,故非常適合於在金融行業的應用,以及其他的例如製造、銀行、保險、物聯網等無數個其他行業。通過建立分散式賬本的公開標準,實現虛擬和數字形式的價值交換,例如資產合約、能源交易、結婚證書、能夠安全和高效低成本的進行追蹤和交易。
節點型別:Orderer、Peer、Client、fabric-Ca
先說一下這幾個節點都是幹什麼的。
Orderer:區塊鏈共識節點,主要作用就是完成交易同步和區塊的生成,同時也保證區塊鏈共識過程的安全性(安全性是由共識機制來保證的,目前Fabric自帶的有三種共識機制:solo、kafka、PBFT)。
Peer:服務節點,這裡所謂的服務是相對於外圍的應用而言,主要分為兩種,Endorser節點和Committer節點。Endorser節點主要是負責背書(提供交易合法性證明和許可權驗證),Committer節點負責記賬。
Client:客戶節點,這就是根據Fabric SDK開發的面向使用者的終端。
fabric-Ca: 證書管理中心,通過證書(簽名、加密、祕鑰協商)來實現許可權管理和加密通訊。
大家可以看出來Fabric的節點型別是要比Bitcoin和Ethereum更多,而且功能更細化。這主要是因為Fabric倡導模組化和可插拔的架構,鼓勵大家DIY,其中Orderer裡面的共識機制、fabric-Ca、包括Ledger(總賬)的資料儲存方式(ram、LevelDb)都是可以替換的。
它大概的架構就如下圖:
Hyperledger Fabric 構建於一種模組化架構之上,該架構將交易處理分為 3 個階段:分散式邏輯處理和協商(“鏈程式碼”)、交易訂購,以及交易驗證和提交。這種分離提供了一些優勢:不同節點型別之間需要的信任和驗證水平更低,網路可伸縮性和效能得到了優化。
目前超級賬本專案( Hyperledger Fabric )支援在Mac及各大主流Linux下執行,現主要講解以下在 Centos7 下搭建 超級賬本的 開發驗證環境。
1、安裝Docker
目前開源社群Docker最新版本為 18.03.1,社群分為開源版本(docker-ce)和企業版本(docker-ee)。 需要配置Docker官方源才可以安裝最新版本,此處我們安裝開源社群版本 docker-ce。
具體操作安裝步驟可參考我另一篇文章 《Docker在CentOS 7 環境下的安裝及基本操作入門》
需要安裝 Docker 及 Docker-compose,驗證這兩項安裝成功即可。
2、安裝Go語言執行環境
Go 是一個開源的程式語言,它能讓構造簡單、可靠且高效的軟體變得容易。Go語言於2009年11月由Google正式宣佈推出,成為開放原始碼專案,並在Linux及Mac OS X平臺上進行了實現,後追加Windows系統下的實現。Go語言具有 部署簡單、併發性好、良好的語言設計、執行效能好 等特點。
CentOS 7 下安裝 Go語言執行環境可參考我另一篇文章 《Centos 7 下安裝Go語言執行環境》。
3、安裝NVM及Node.js
nvm全稱Node Version Manager ,是 Nodejs 版本管理器,它讓我們能方便的對 Nodejs 的版 本進行切換。 nvm 的官方版本只支援 Linux 和 Mac。 Windows 使用者,可以用 nvm-windows。
fabric暫時不支援7.x,需要安裝6.9.x 或 6.x高的版本,通過 nvm 安裝指定 版本的node。
現安裝Node.js 6.5.9 版本。
具體步驟可以參考《Centos7 使用NVM安裝Node.js》。
至此 Docker、Docker-compose、Go、Node.js 基礎執行環境已經全部安裝完成。