Linux環(huán)境下搭建Hyperledger Fabric 1.1開發(fā)環(huán)境

Hyperledger Fabric簡介

Hyperledger項目是Linux基金會發(fā)起的一個聯(lián)盟區(qū)塊鏈的項目沧踏,吸引了眾多大佬級的公司進駐開發(fā)。Hyperledger這個組項目下包含了相當(dāng)多的子項目瘫怜,每個子項目由一兩家商業(yè)公司為主導(dǎo)俯在,為Hyperledger提供不同的功能和支持塘辅。

本文我們將介紹Hyperledger組項目下的Fabric子項目的開發(fā)環(huán)境搭建情龄,基于最新的1.1版本。這個子項目可以說是Hyperledger項目的核心項目癣丧,是區(qū)塊鏈的實現(xiàn)框架槽畔,提供chaincode(鏈碼,對標(biāo)以太坊項目中的智能合約)的編程接口胁编,可以說是整個Hyperledger的重中之重厢钧。目前該項目由IBM公司主導(dǎo)開發(fā)鳞尔。

在Linux下搭建開發(fā)環(huán)境

Linux系統(tǒng)對于Fabric的開發(fā)還是比較友好的,其中docker在Linux下更是原生支持坏快。本文我們使用的Linux發(fā)行版為Ubuntu 16.04(或基于Ubuntu 16.04的發(fā)行版均可铅檩,如Linux mint 18.3),搭建Fabric 1.1開發(fā)環(huán)境莽鸿。本文主要參考官方文檔昧旨,并且對官方文檔中內(nèi)容進行少許補充與變通,以便在國內(nèi)特色環(huán)境下可以順利的搭建開發(fā)環(huán)境祥得。

安裝依賴

Docker

如果有舊版本的docker的話兔沃,需要先卸載:

sudo apt purge docker docker-engine docker.io

然后安裝依賴:

sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

添加docker鏡像倉庫(清華大學(xué)):

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker-ce.list

安裝docker-ce軟件包:

sudo apt update && sudo apt install -y docker-ce

修改docker hub的鏡像,編輯/etc/docker/daemon.json文件级及,沒有就創(chuàng)建一個乒疏,需要管理員提權(quán),寫入以下內(nèi)容:

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

重啟docker服務(wù)生效: sudo service docker restart饮焦,這樣docker就可以從國內(nèi)鏡像站進行pull操作怕吴,大大提高了pull image的速度。

GO

下載GO:

wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz

Golang官網(wǎng)無法訪問也可以從鏡像站獲取其他版本的go

解壓縮并將go移動到/usr/local/go:

tar xvf go1.10.2.linux-amd64.tar.gz
sudo mv go /usr/local
sudo ln -s /usr/local/go/bin /usr/local/bin

這樣go就安裝完畢了县踢。默認情況下GOPATH/usr/local/go转绷,GOROOT~/go,如果不需要修改的話可以不設(shè)置這兩個環(huán)境變量硼啤。

安裝Fabirc可執(zhí)行程序與Docker image

這一步比較簡單议经,之前依賴安裝完畢之后,只需要執(zhí)行以下命令即可:

curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.1.0

整個過程比較長的時間谴返,由于Fabric的二進制包在國內(nèi)速度并不快煞肾,而且docker鏡像容量也很大,整個時間會很久嗓袱。并且這個腳本并未做冪等處理籍救,一旦中途中斷可能不能重試,可能需要清理臨時文件重新運行渠抹。所以輕易不要中斷腳本執(zhí)行蝙昙,耐心等待即可。

腳本最后輸出類似于下面的內(nèi)容表示安裝開發(fā)環(huán)境完畢:

===> List out hyperledger docker images
hyperledger/fabric-ca          latest              72617b4fa9b4        8 weeks ago         299MB
hyperledger/fabric-ca          x86_64-1.1.0        72617b4fa9b4        8 weeks ago         299MB
hyperledger/fabric-tools       latest              b7bfddf508bc        8 weeks ago         1.46GB
hyperledger/fabric-tools       x86_64-1.1.0        b7bfddf508bc        8 weeks ago         1.46GB
hyperledger/fabric-orderer     latest              ce0c810df36a        8 weeks ago         180MB
hyperledger/fabric-orderer     x86_64-1.1.0        ce0c810df36a        8 weeks ago         180MB
hyperledger/fabric-peer        latest              b023f9be0771        8 weeks ago         187MB
hyperledger/fabric-peer        x86_64-1.1.0        b023f9be0771        8 weeks ago         187MB
hyperledger/fabric-javaenv     latest              82098abb1a17        8 weeks ago         1.52GB
hyperledger/fabric-javaenv     x86_64-1.1.0        82098abb1a17        8 weeks ago         1.52GB
hyperledger/fabric-ccenv       latest              c8b4909d8d46        8 weeks ago         1.39GB
hyperledger/fabric-ccenv       x86_64-1.1.0        c8b4909d8d46        8 weeks ago         1.39GB
hyperledger/fabric-zookeeper   latest              92cbb952b6f8        2 months ago        1.39GB
hyperledger/fabric-zookeeper   x86_64-0.4.6        92cbb952b6f8        2 months ago        1.39GB
hyperledger/fabric-kafka       latest              554c591b86a8        2 months ago        1.4GB
hyperledger/fabric-kafka       x86_64-0.4.6        554c591b86a8        2 months ago        1.4GB
hyperledger/fabric-couchdb     latest              7e73c828fc5b        2 months ago        1.56GB
hyperledger/fabric-couchdb     x86_64-0.4.6        7e73c828fc5b        2 months ago        1.56GB

同時逼肯,這個腳本會在當(dāng)前目錄下克隆一個fabric-samples/項目,在fabric-samples/bin/目錄下會存放下載好的fabric二進制工具包桃煎,將fabric-samples/bin/目錄加入環(huán)境變量篮幢,即可直接運行節(jié)點程序。

export PATH=${PATH}:/path/to/fabric-samples/bin/

運行Sample

cd fabric-samples/first-network

進入first-network目錄为迈,此目錄有個./byfn.sh腳本三椿,負責(zé)快速產(chǎn)生一個區(qū)塊鏈網(wǎng)絡(luò)缺菌,直接使用這個腳本產(chǎn)生網(wǎng)絡(luò)配置,運行docker容器即可:

./byfn.sh -m generate

快速產(chǎn)生網(wǎng)絡(luò)節(jié)點配置項搜锰,如生成證書等等伴郁,產(chǎn)生一個創(chuàng)世紀塊蛋叼,產(chǎn)生一個名為mychannelChannel焊傅。

使用以下命令啟動網(wǎng)絡(luò):

./byfn.sh up

這個命令會在docker環(huán)境中啟動Fabric網(wǎng)絡(luò),并且運行chaincode測試(Golang的chaincode)狈涮,運行完畢后退出容器狐胎。

運行測成功之后,可以使用以下命令關(guān)閉Fabric網(wǎng)絡(luò)歌馍,并且清除所有的容器和數(shù)據(jù)卷:

./byfn.sh down

至此整個Fabric開發(fā)環(huán)境就已經(jīng)搭建完畢了握巢,我們可以利用它的API編碼代碼,部署在Docker環(huán)境中進行測試松却。后續(xù)將進一步介紹Fabric網(wǎng)絡(luò)的工作原理暴浦,以及如何開發(fā)Chaincode,如何部署Chaincode晓锻。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歌焦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子带射,更是在濱河造成了極大的恐慌同规,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窟社,死亡現(xiàn)場離奇詭異券勺,居然都是意外死亡,警方通過查閱死者的電腦和手機灿里,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門关炼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匣吊,你說我怎么就攤上這事儒拂。” “怎么了色鸳?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵社痛,是天一觀的道長。 經(jīng)常有香客問我命雀,道長蒜哀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任吏砂,我火速辦了婚禮撵儿,結(jié)果婚禮上乘客,老公的妹妹穿的比我還像新娘。我一直安慰自己淀歇,他們只是感情好易核,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浪默,像睡著了一般牡直。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浴鸿,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天井氢,我揣著相機與錄音,去河邊找鬼岳链。 笑死花竞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的掸哑。 我是一名探鬼主播约急,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼苗分!你這毒婦竟也來了厌蔽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤摔癣,失蹤者是張志新(化名)和其女友劉穎奴饮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體择浊,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡戴卜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了琢岩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片投剥。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖担孔,靈堂內(nèi)的尸體忽然破棺而出江锨,到底是詐尸還是另有隱情,我是刑警寧澤糕篇,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布啄育,位于F島的核電站,受9級特大地震影響拌消,放射性物質(zhì)發(fā)生泄漏挑豌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浮毯。 院中可真熱鬧,春花似錦泰鸡、人聲如沸债蓝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饰迹。三九已至,卻和暖如春余舶,著一層夾襖步出監(jiān)牢的瞬間啊鸭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工匿值, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赠制,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓挟憔,卻偏偏與公主長得像钟些,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绊谭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容