Hyperledger Fabric(入門)

入門

在咱們開始以前,若是你尚未這樣作,你可能但願檢查是否已經在開發區塊鏈應用程序和/或運行Hyperledger Fabric的平臺上安裝了全部前提條件。html

一旦安裝了前提條件,就能夠下載並安裝HyperLedger Fabric了,當咱們在Fabric二進制文件上開發真正的安裝程序時,咱們提供了一個能夠將示例、二進制文件和Docker映像安裝到你的系統中的腳本,腳本還會將Docker映像下載到本地註冊表。java

前提條件

在咱們開始以前,若是你尚未這樣作,你可能但願檢查您是否已經在開發區塊鏈應用程序和/或運行Hyperledger Fabric的平臺上安裝瞭如下全部前提條件。node

安裝cURL

若是尚未安裝cURL工具,或者文檔中出現運行cURL命令的錯誤,請下載最新版本的cURL工具。python

若是你在Windows系統上,請查看下面關於的Windows附件條件。

Docker和Docker Compose

你須要將如下安裝在你將要操做或開發Hyperledger Fabric的平臺上:c++

  • MacOSX,*nix,或Windows 10:Docker - Docker版本17.06.2-ce或更高版本
  • 舊版本的Windows:Docker Toolbox - 一樣,Docker版本Docker 17.06.2-ce或更高版本

你能夠在終端提示符中檢查你安裝的Docker版本:git

docker --version
爲Mac或Windows安裝Docker,或者Docker Toolbox也會安裝Docker Compose,若是你已經安裝了Docker,你應該檢查是否安裝了Docker Compose版本1.14.0或更高版本,若是沒有,咱們建議你安裝Docker的最新版本。

你能夠從終端提示符中使用如下命令檢查安裝的Docker Compose程序的版本:github

docker-compose --version

Go編程語言

Hyperledger Fabric的許多組件使用Go編程語言。golang

  • Go版本1.10.x

假設咱們將在Go中編寫鏈代碼程序,有兩個環境變量須要正確設置;你能夠經過將這些設置放在適當的啓動文件中使其永久存在,好比你的我的~/.bashrc文件,若是你在Linux下使用bash shell。docker

首先,必須將環境變量GOPATH設置爲指向包含下載的Fabric代碼庫的Go工做區,以下所示:shell

export GOPATH=$HOME/go
必須設置 GOPATH變量

即便在Linux中,Go的GOPATH變量能夠是一個冒號分隔的目錄列表,而且若是未設置,則使用默認值$HOME/go,當前Fabric構建框架仍然須要你設置並導出該變量,並且它必須只包含Go工做空間的單個目錄名。(這個限制可能在未來的版本中被移除。)

其次,你應該(一樣,在適當的啓動文件中)擴展命令搜索路徑以包含Go bin目錄,例以下面Linux下的bash示例:

export PATH=$PATH:$GOPATH/bin

雖然這個目錄可能不存在於新的Go工做區安裝中,可是稍後Fabric構建系統將使用少許的Go可執行文件來填充它,構建系統的其餘部分將使用這些文件,所以,即便你目前尚未這樣的目錄,也能夠像上面那樣擴展shell搜索路徑。

Node.js Runtime and NPM

若是你使用Node.js的Hyperledger Fabric SDK開發Hyperledger Fabric應用程序,你須要安裝版本8.9.x的Node.js。

暫時不支持Node.js 9.x。

安裝Node.js將會安裝NPM,可是,建議你確認安裝了NPM的版本,你可使用如下命令升級 npm工具:
npm install npm@5.6.0 -g

Python

如下僅適用於ubuntu 16.04用戶.

默認狀況下,Ubuntu 16.04自帶Python 3.5.1做爲python3二進制版本安裝,Fabric Node.js SDK須要Python 2.7的迭代才能成功完成npm install操做,使用如下命令檢索2.7版本:

sudo apt-get install python

檢查你的版本:

python --version

Windows附加條件

若是你是在Windows 7上開發的,那麼你將但願在Docker Quickstart終端中工做,該終端使用Git Bash,並提供比內置Windows shell更好的選擇。

然而,經驗代表這是一個功能有限的開發環境,它適用於運行基於Docker的場景,例如入門,可是你可能對涉及makedocker命令的操做有困難。

在Windows 10上,你應該使用原生Docker發行版,而且可使用Windows PowerShell,可是,要使binaries命令成功運行,你仍然須要使用uname命令,你能夠將其做爲Git的一部分得到,但要注意,只支持64位版本。

在運行任何git clone命令以前,運行如下命令:

git config --global core.autocrlf false
git config --global core.longpaths true

你能夠經過如下命令檢查這些參數的設置:

git config --get core.autocrlf
git config --get core.longpaths

它們須要分別爲falsetrue

Git和Docker Toolbox附帶的curl命令很舊,不能正確地處理入門時使用的重定向,請確保安裝並使用cURL下載頁面中的新版本。

爲Node.js你還須要必要的Visual Studio c++構建工具,這些工具是免費提供的,能夠經過如下命令安裝:

npm install --global windows-build-tools

有關詳細信息,請參閱NPM windows-build-tools頁面

完成此操做後,還應該使用如下命令安裝NPM GRPC模塊:

npm install --global grpc

你的環境如今應該已經準備好進行入門示例和教程了。

若是你有本文檔未解決的問題,或者遇到任何教程中的問題,請訪問 仍然有問題?頁面,獲取關於在何處找到額外幫助的一些提示。

安裝示例、二進制文件和Docker映像

當咱們爲Hyperledger Fabric二進制開發真正的安裝程序時,咱們提供了一個能夠下載並安裝示例和二進制文件到你的系統的腳本,咱們認爲,你會發現安裝的示例應用程序對了解有關Hyperledger Fabric的功能和操做很是有用。

若是你在Windows上運行,你將但願使用Docker Quickstart終端來執行即將到來的終端命令,若是你以前沒有安裝,請看前提條件。

若是你在Windows 7或macOS上使用Docker Toolbox,你將須要使用一個在C:\Users(Windows 7)或/Users(macOS)下的位置安裝和運行樣例。

若是你在Mac上使用Docker,你須要使用/Users/Volumes/private/tmp下的位置,要使用不一樣的位置,請參閱Docker文檔的共享文件

若是你在Windows中使用Docker,請參考Docker文檔中的共享驅動器,並在其中一個共享驅動器下使用一個位置。

肯定機器上要放置fabric-samples存儲庫的位置,並在終端窗口中輸入該目錄,下面的命令將執行如下步驟:

  1. 若是須要,克隆hyperledger/fabric-samples存儲庫
  2. 檢出適當的版本標記
  3. 在fabric-samples存儲庫的根目錄中安裝指定版本的Hyperledger Fabric平臺專用二進制文件和配置文件
  4. 下載Hyperledger Fabric docker鏡像指定的版本

準備好以後,在你將要安裝Fabric樣例和二進制文件的目錄中,繼續執行如下命令:

curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.0
若是你想下載Fabric,Fabric-ca和第三方Docker映像,你必須將版本標識符傳遞給腳本。
curl -sSL http://bit.ly/2ysbOFE | bash -s <fabric> <fabric-ca> <thirdparty>
curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.0 1.2.0 0.4.10
若是在運行上述curl命令時出現錯誤,那麼可能使用的curl版本太舊,沒法處理重定向或不支持的環境。

請看前提條件部分,瞭解關於在何處找到curl的最新版本並得到正確環境的更多信息,或者你能夠替換未縮短的URL:https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh

你能夠對任何已發佈的Hyperledger Fabric版本使用上面的命令,只需用但願安裝的版本的版本標識符替換1.2.0便可。

上面的命令下載並執行bash腳本,該腳本將下載並提取全部平臺特定的二進制文件,你將須要這些二進制文件來創建您的網絡,並將它們放到上面建立的克隆repo中,它檢索下列特定於平臺的二進制文件:

  • cryptogen
  • configtxgen
  • configtxlator
  • peer
  • orderer
  • idemixgen
  • fabric-ca-client

並將它們放在當前工做目錄的bin子目錄中。

你可能想要將其添加到PATH環境變量中,這樣就能夠在不徹底限定每一個二進制文件的路徑的狀況下獲取這些環境變量。e.g.:

export PATH=<path to download location>/bin:$PATH

最後,腳本將從Docker Hub下載Hyperledger Fabric docker映像到你本地Docker註冊表,並將其標記爲「latest」。

腳本列出了在結束時安裝的Docker映像。

看看每一個鏡像的名字;這些組件將最終構成咱們的Hyperledger Fabric網絡,你還會注意到,同一鏡像ID有兩個實例 - 一個標記爲「amd64-1.x.x」,一個標記爲「latest」,在1.2.0以前,下載的鏡像由uname -m肯定,顯示爲「x86_64-1.x.x」。

在不一樣的體系結構,將用標識體系結構的字符串替換x86_64/amd64。
若是你有本文檔未解決的問題,或者遇到任何教程中的問題,請訪問 仍然有問題?頁面,獲取關於在何處找到額外幫助的一些提示。

Hyperledger Fabric SDKs

Hyperledger Fabric提供了許多SDK來支持各類編程語言,官方發佈了兩款針對Node.js和Java的SDK:

另外,還有3個SDK尚未正式發佈(對於Python、Go和REST),可是它們仍然能夠下載和測試:

Hyperledger Fabric CA

Hyperledger Fabric提供一個可選的證書受權服務,你能夠選擇使用該服務生成證書和密鑰材料,以配置和管理區塊鏈網絡中的身份。可是,可使用任何能夠生成ECDSA證書的CA。

相關文章
相關標籤/搜索