Heperledger fabric v1.3.0阿里云環(huán)境配置及運(yùn)行e2e案例

如何使用阿里云服務(wù)器部署fabric, 其實(shí)大部分流程和物理機(jī)相同,但還是有不同的地方的

1. 創(chuàng)建云服務(wù)器

申請?jiān)品?wù)器的時(shí)候,我們是在阿里云申請的按需, 系統(tǒng)選擇的是ubuntu 16.04,注意最低配置是4G的, 否則在運(yùn)行e2e案例的時(shí)候kafka啟動(dòng)不起來.


image.png

2.安裝go

可以先下載好go的包, 然后拷貝到云服務(wù)器上
瀏覽器下載go包:
https://golang.org/doc/install?download=go1.11.4.linux-amd64.tar.gz
拷貝:
$ scp go1.11.3.linux-amd64.tar.gz root@47.105.93.246:/root
進(jìn)入到云服務(wù)器:
$ ssh root@47.105.93.246
進(jìn)行解壓操作
$ sudo tar -C /usr/local -xzf go1.11.4.linux-amd64.tar.gz
編輯環(huán)境變量
$ vi ~/.profile
添加以下內(nèi)容

export PATH=$PATH:/usr/local/go/bin 
export GOROOT=/usr/local/go 
export GOPATH=$HOME/go 
export PATH=$PATH:$HOME/go/bin

編輯保存并退出vi后,記得把這些環(huán)境載入:
$ source ~/.profile
我們把go的目錄GOPATH設(shè)置為當(dāng)前用戶的文件夾下棉安,所以記得創(chuàng)建go文件夾
$ cd ~
$ mkdir go
至此,go的環(huán)境安裝完畢!
使用 go version 命令來查看go版本以檢查是否安裝成功

3.安裝docker環(huán)境

由于apt官方庫里的docker版本可能比較舊底扳,所以先卸載可能存在的舊版本:
$ sudo apt-get remove docker docker-engine docker-ce docker.io
更新apt包索引:
$ sudo apt-get update
安裝以下包以使apt可以通過HTTPS使用存儲(chǔ)庫(repository):
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
添加Docker官方的GPG密鑰:
$ curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo apt-key add -
使用下面的命令來設(shè)置stable存儲(chǔ)庫:
$ sudo add-apt-repository "deb [arch=amd64] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable"
再更新一下apt包索引:
$ sudo apt-get update
列出可用的版本:
$ apt-cache madison docker-ce
這里我們安裝18.03.01版本的docker
$ sudo apt-get install docker-ce=18.03.1~ce-0~ubuntu
查看docker服務(wù)是否啟動(dòng):
$ systemctl status docker
若未啟動(dòng),則啟動(dòng)docker服務(wù):
$ sudo systemctl start docker
經(jīng)典的hello world:
$ sudo docker run hello-world
至此,docker安裝完畢!!

4.安裝docker-compose

接下來呢,安裝docker-compose!!
安裝Python-pip
$ sudo apt-get install python-pip
安裝完成后贡耽,接下來從DaoClound安裝Docker-compose衷模,運(yùn)行腳本:

$ curl -L [https://get.daocloud.io/docker/compose/releases/download/1.10.1/docker-compose-](https://get.daocloud.io/docker/compose/releases/download/1.10.1/docker-compose-)`uname -s`-`uname -m` > ~/docker-compose

$ sudo mv ~/docker-compose /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
至此,docker-compose 安裝完畢!! 輸入docker-com ,按tab鍵,看看能否自動(dòng)補(bǔ)全,若能自動(dòng)補(bǔ)全,則說明docker-compose安裝成功!!

5. fabric源碼及fabric的鏡像

5.1 fabric源碼

在 $GOPATH/src/github.com/heperledger路徑下,把代碼拉下來
若是沒有路徑,則手動(dòng)創(chuàng)建

$ cd $GOPATH
$ mkdir -p src/github.com/hyperledger
$ cd src/github.com/hyperledger

拉取代碼:
$ git clone -b release-1.3.0 https://github.com/hyperledger/fabric

若是拉取速度太慢的話,可以先在本地clone, 然后再scp到云服務(wù)器上..

5.2 fabric鏡像

在 $GOPATH/src/github.com/heperledger路徑下, 下載 fabric-samples

$ git clone https://github.com/hyperledger/fabric-samples.git

切換到1.3.0版本, 因?yàn)殓R像的版本一定要和fabric源碼的版本保持一致,否則跑不起來!!
$ cd fabric-samples/
$ git checkout v1.3.0

將fabric/scripts/bootstrap.sh 文件拷貝到 fabric-samples 文件夾下
$ cp ../fabric/scripts/bootstrap.sh ./

修改bootstrap.sh權(quán)限
$ chmod +x bootstrap.sh

運(yùn)行bootstrap.sh, 開始拉取鏡像, 時(shí)間略長,需要耐心等待..
$ ./bootstrap.sh

拉取完之后, $ docker images 查看鏡像狀態(tài)

image.png
5.3 運(yùn)行 first-network 案例

$ cd first-network/
啟動(dòng)案例
$ ./byfn.sh up
關(guān)閉案例
$ ./byfn.sh down

5.4 運(yùn)行 e2e 案例

$ cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/
$ ./network_setup.sh up
在這里會(huì)報(bào)錯(cuò)的:

!!!!!!!!!!!!!!! Ordering Service is not available, Please try again ... !!!!!!!!!!!!!!!!
================== ERROR !!! FAILED to execute End-2-End Scenario ==================
或者
Attempting to Query PEER0 ...3 secs
Attempting to Query PEER0 ...6 secs
Attempting to Query PEER0 ...9 secs
Attempting to Query PEER0 ...12 secs
Attempting to Query PEER0 ...15 secs
Attempting to Query PEER0 ...18 secs
Attempting to Query PEER0 ...21 secs
Attempting to Query PEER0 ...24 secs
Attempting to Query PEER0 ...27 secs
Attempting to Query PEER0 ...30 secs
Attempting to Query PEER0 ...33 secs
Attempting to Query PEER0 ...37 secs
Attempting to Query PEER0 ...40 secs
Attempting to Query PEER0 ...43 secs
Attempting to Query PEER0 ...46 secs
Attempting to Query PEER0 ...49 secs
Attempting to Query PEER0 ...52 secs
Attempting to Query PEER0 ...55 secs
Attempting to Query PEER0 ...58 secs
Attempting to Query PEER0 ...61 secs

docker ps -a 查看各個(gè)容器的狀態(tài), orderer或者peer呈現(xiàn)Exit狀態(tài).
docker logs 容器id 查看未啟動(dòng)的docker容器的日志, 會(huì)看到如下錯(cuò)誤:

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1

報(bào)錯(cuò)原因,請點(diǎn)這...

解決辦法: 更新docker compose yaml模板,為所有的節(jié)點(diǎn)(如orderer, peer, ca, cli等)添加環(huán)境變量GODEBUG=netdns=go以強(qiáng)制使用pure Go resolver.
需要在 e2e文件夾中,對以下文件添加環(huán)境變量GODEBUG=netdns=go

在e2e案例中,需要更改4個(gè)文件
examples/e2e_cli/base/docker-compose-base.yaml
examples/e2e_cli/base/peer-base.yaml
examples/e2e_cli/docker-compose-cli.yaml
examples/e2e_cli/docker-compose-e2e.yaml

比如:


image.png

若是kafka啟動(dòng)不起來,那可能是因?yàn)樵品?wù)器的配置太低了,比如說是1g內(nèi)存的


image.png

跑起來之后,進(jìn)入cli容器
$ docker exec -it cli bash

查看a的余額
$ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
90

查看b的余額
$ peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
210

從a 給 b轉(zhuǎn) 20塊錢:

$ peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["invoke","a","b","20"]}'

執(zhí)行完之后,再查詢一下 a,b的余額, 分別是 70 和 230 了, 這就表明fabric的環(huán)境已經(jīng)搭建完畢,并且成功運(yùn)行了e2e案例!!!

關(guān)閉案例: $ ./network_setup.sh down

參考資料:

快速搭建一個(gè)Fabric 1.0的環(huán)境
docker學(xué)習(xí)筆記(一)—— ubuntu16.04下安裝docker
阿里云環(huán)境部署Hyperledger Fabric之SIGSEGV問題分析和解決經(jīng)驗(yàn)分享

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒲赂,一起剝皮案震驚了整個(gè)濱河市阱冶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滥嘴,老刑警劉巖木蹬,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異若皱,居然都是意外死亡镊叁,警方通過查閱死者的電腦和手機(jī)尘颓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晦譬,“玉大人疤苹,你說我怎么就攤上這事×搽纾” “怎么了卧土?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長像樊。 經(jīng)常有香客問我尤莺,道長,這世上最難降的妖魔是什么生棍? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任颤霎,我火速辦了婚禮,結(jié)果婚禮上足绅,老公的妹妹穿的比我還像新娘捷绑。我一直安慰自己,他們只是感情好氢妈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布粹污。 她就那樣靜靜地躺著,像睡著了一般首量。 火紅的嫁衣襯著肌膚如雪壮吩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天加缘,我揣著相機(jī)與錄音鸭叙,去河邊找鬼。 笑死拣宏,一個(gè)胖子當(dāng)著我的面吹牛沈贝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勋乾,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宋下,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辑莫?” 一聲冷哼從身側(cè)響起学歧,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎各吨,沒想到半個(gè)月后枝笨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年横浑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剔桨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡徙融,死狀恐怖领炫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情张咳,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布似舵,位于F島的核電站脚猾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏砚哗。R本人自食惡果不足惜龙助,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛛芥。 院中可真熱鬧提鸟,春花似錦、人聲如沸仅淑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涯竟。三九已至赡鲜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庐船,已是汗流浹背银酬。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筐钟,地道東北人揩瞪。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像篓冲,于是被迫代替她去往敵國和親李破。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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