Hyperledger Fabric部署的坑(更新中)

1.鏡像需與fabric版本一致

fabric運行所需要的鏡像一共是12種

可以通過輸入docker images查看你已下載的鏡像。

如果發(fā)現(xiàn)有少的鏡像則用下述語句下載,每條語句對應(yīng)下載每一個鏡像,請根據(jù)所缺失的鏡像選擇語句并執(zhí)行:

docker pull hyperledger/fabric-tools:x86_64-1.0.0
docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
docker pull hyperledger/fabric-kafka:x86_64-1.0.0
docker pull hyperledger/fabric-orderer:x86_64-1.0.0
docker pull hyperledger/fabric-peer:x86_64-1.0.0
docker pull hyperledger/fabric-ca:x86_64-1.0.0
docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
docker pull hyperledger/fabric-baseimage:x86_64-0.4.7
docker pull hyperledger/fabric-baseos:x86_64-0.4.7
docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0
docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
docker pull hyperledger/fabric-membersrvc:latest

請注意每個鏡像的版本號!大多數(shù)往往缺少baseimage,baseos,membersrvc這三種。

2 錯誤匯總

1.ERRO 001 Cannot run peer because error when setting up MSP from directory........msp.......
2.ERRO 001 Cannot run peer because error when setting up MSP from directory /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp......

解決辦法:

這兩個問題都是因為fabric版本和docker鏡像版本不一致
查看fabric branch:git branch -a

結(jié)果帶*就是你的branch,如果不是v1.0.0,就
git checkout v1.0.0

當(dāng)然,也可以下載對應(yīng)的鏡像(如果版本為v 1.1):

cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.1.0 -f x86_64-1.1.0

再查看下fabric目錄下: make cryptogen。如果返回

CGO_CFLAGS=" " GOBIN=/opt/gopath/src/github.com/hyperledger/fabric/build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.Version=1.0.1" github.com/hyperledger/fabric/common/tools/cryptogen
github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11
vendor/github.com/miekg/pkcs11/pkcs11.go:29:18: fatal error: ltdl.h: No such file or directory
compilation terminated.
Makefile:227: recipe for target 'build/bin/cryptogen' failed
make: *** [build/bin/cryptogen] Error 2

表明缺少ltdl.h文件。執(zhí)行以下命令:

apt-get install libtool libltdl-dev
make cryptogen

3 如果出現(xiàn):

Error: Error endorsing chaincode: rpc error: code = Unknown desc = Error starting container: API error (404): {"message":"network e2ecli_default not found"}

解決辦法:

cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/base
gedit peer-base.yaml
打開文件后將e2ecli_default修改為e2e_cli_default

4 go語言的環(huán)境問題

注意:cd ~cd /home是不一樣的?。?!

7 docker刪除相同的鏡像出錯解決:

[圖片上傳中...(微信截圖_20181101174638.png-77585f-1541473389553-0)]

8 出現(xiàn)DEBU 001 Returning existing local MSP

微信截圖_20181101174638.png

有一種解決方法是:

執(zhí)行一下命令  vim /etc/hosts
增加以下內(nèi)容
172.16.10.188 orderer.example.com

但是,我覺的這種方法沒有什么效果,因為我執(zhí)行了這句話后,也沒解決問題

后來,看到一篇帖子,終于解決了:

是因為環(huán)境遺留的問題

解決方式,重新關(guān)閉網(wǎng)絡(luò)

./network_setup.sh down mychannel

root@cc-fibric:/home/cc/go/src/github.com/hyperledger/fabric/examples/e2e_cli# ./network_setup.sh down mychannel
WARNING: The CHANNEL_NAME variable is not set. Defaulting to a blank string.
WARNING: The TIMEOUT variable is not set. Defaulting to a blank string.
Stopping cli                    ... done
Stopping kafka3                 ... done
Stopping kafka0                 ... done
Stopping kafka1                 ... done
Stopping kafka2                 ... done
Stopping peer1.org2.example.com ... done
Stopping zookeeper0             ... done
Stopping zookeeper2             ... done
Stopping zookeeper1             ... done
Stopping peer0.org1.example.com ... done
Stopping peer0.org2.example.com ... done
Stopping peer1.org1.example.com ... done
Removing cli                    ... done
Removing orderer.example.com    ... done
Removing kafka3                 ... done
Removing kafka0                 ... done
Removing kafka1                 ... done
Removing kafka2                 ... done
Removing peer1.org2.example.com ... done
Removing zookeeper0             ... done
Removing zookeeper2             ... done
Removing zookeeper1             ... done
Removing peer0.org1.example.com ... done
Removing peer0.org2.example.com ... done
Removing peer1.org1.example.com ... done
Removing network e2e_cli_default
---- No containers available for deletion ----
---- No images available for deletion ----

當(dāng)然,也有可能是e2e_cli文件沒有權(quán)限讀寫

后記:

我一開始是版本錯了,是v1.1 的版,下的docker鏡像卻是v1.0.0;

接下來,估計是由于前面運行過一次./network_setup.sh up ,所以有環(huán)境殘余。
在執(zhí)行完./network_setup.sh down mychannel后,
再啟動

./network_setup.sh up

root@cc-fibric:/home/cc/go/src/github.com/hyperledger/fabric/examples/e2e_cli# ./network_setup.sh up
setting to default channel 'mychannel'
mychannel

Using cryptogen -> /home/cc/go/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/cryptogen

##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
org1.example.com
org2.example.com

Using configtxgen -> /home/cc/go/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/configtxgen
##########################################################
#########  Generating Orderer Genesis block ##############
##########################################################
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡介 此項目是一個模擬公民身份信息鏈的區(qū)塊鏈項目 github 地址: https://github.com/ak...
    CrazyWolf_46a9閱讀 8,918評論 0 0
  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,876評論 15 147
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,240評論 3 119
  • 問答 \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^$分別是什么?\d:匹配一個數(shù)字...
  • 皓月當(dāng)空 含笑暈 星稀三兩顆 點點相吻 側(cè)頭輕枕閑 稍坐還無眠 心若流水潺潺 懷抱日月明天 更有枝頭梅花 清香惹人...
    文化河閱讀 466評論 0 0

友情鏈接更多精彩內(nèi)容