fabric peer 調(diào)試環(huán)境搭建

fabric peer 本地運(yùn)行

配置單 peer穆咐, 單 order, 單cli 測試環(huán)境字旭,方便調(diào)試 peer

1. 修改配置

1.1 修改配置文件

  • configtx.yaml 刪除所有 關(guān)于 Org2 的選項(xiàng)
  • crypto-config.ymal PeerOrgs.Template.Count 改為 1

1.2 修改 docker-compose-cli.yml

刪除 peer1.org1.example.com, peer1.org2.example.com, peer0.org2.example.com 等容器(以及依賴)

只留 orderer.example.com, cli 兩個(gè)容器的配置

  • cli 的配置添加extra_host, 到時(shí)候?qū)⒂蛎赶蛩拗鳈C(jī)
extra_hosts:
      - "peer0.org1.example.com:192.168.1.xxx"

1.3 修改 byfn.sh

啟動(dòng)容器后对湃,先不執(zhí)行script.sh

注釋

1.4 修改 script.sh 腳本

  • joinChannel 方法替換如下
joinChannel () {
    joinChannelWithRetry 0 1    
    sleep $DELAY
}
  • script.sh 中 install or instantiate 都改為對(duì) peer0.org1 的操作, 如下
if [ "${NO_CHAINCODE}" != "true" ]; then

    ## Install chaincode on peer0.org1 and peer0.org2
    echo "Installing chaincode on peer0.org1..."
    installChaincode 0 1

    # Instantiate chaincode on peer0.org1
    echo "Instantiating chaincode on peer0.org1..."
    instantiateChaincode 0 1

    # Query chaincode on peer0.org1
    echo "Querying chaincode on peer0.org1..."
    chaincodeQuery 0 1 100

    # Invoke chaincode on peer0.org1 and peer0.org1
    echo "Sending invoke transaction on peer0.org1 peer0.org1..."
    chaincodeInvoke 0 1

    # Query on chaincode on peer1.org1, check if the result is 90
    echo "Querying chaincode on peer1.org1..."
    chaincodeQuery 0 1 90
    
fi

utils.sh(被 script.sh 引用) , instantiateChaincode 函數(shù)中 共識(shí)策略改成 "OR ('Org1MSP.peer')"

2 啟動(dòng)

2.1 啟動(dòng)容器(order, cli)

兩個(gè)容器啟動(dòng)無誤后

2.2 debug 模式啟動(dòng) peer

peer 啟動(dòng)會(huì)讀取一系列環(huán)境變量, 從系統(tǒng)讀入遗淳,或者從 core.yml 文件拍柒,為了方便,我們 debug 時(shí)就把用到變量設(shè)置到core.yaml

docker-compose 文件中可以看到屈暗,peer 啟動(dòng)需要的一些環(huán)境變量

CORE_PEER_ID=peer0.org1.example.com
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
CORE_PEER_LISTENADDRESS=0.0.0.0:7051
CORE_PEER_CHAINCODEADDRESS=peer0.org1.example.com:7052
CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:8051
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
CORE_PEER_LOCALMSPID=Org1MSP
CORE_PEER_TLS_ENABLED=true
CORE_PEER_GOSSIP_USELEADERELECTION=true
CORE_PEER_GOSSIP_ORGLEADER=false
CORE_PEER_PROFILE_ENABLED=true
CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt

peer 程序中會(huì)將 CORE_PEER_ID 轉(zhuǎn)化成 peer.id, CORE_PEER_CHAINCODEADDRESS 轉(zhuǎn)化為 peer.chaincodeaddress 等,如下

peer:
    id: peer0.org1.example.com
     address: peer0.org1.example.com:7051
     localMspId: Org1MSP
     
     tls:
            cert:
                    file: ./tls/server.crt

 ....

這里注意 幾個(gè) 文件的位置斤儿,

tls 的目錄對(duì)應(yīng)到 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls 這個(gè)目錄。

2.3 Goland 下的配置

新建 build config

這里的 working directory 指向的是 sampleconfig2(sampleconfig 目錄拷貝而來)恐锦, 將 crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tlscrypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp 目錄復(fù)制到 sampleconfig2 目錄下往果。修改 core.yaml 的配置如上 2.2 .

peer 啟動(dòng)默認(rèn)用到 /var/hyperledger 目錄存儲(chǔ)。需要提前創(chuàng)建并改權(quán)限
sudo mkdir /var/hyperledger/ && sudo chown tanhui /var/hyperledger

2.4 本機(jī)添加hosts

peer 會(huì)找 orderer 節(jié)點(diǎn)一铅,為本機(jī)添加host

127.0.0.1    orderer.example.com
127.0.0.1    peer0.org1.example.com

最后啟動(dòng) peer

peer node start

2.5 執(zhí)行 script.sh

進(jìn)入 cli 容器

執(zhí)行

./scripts/script.sh mychannel 3 golang 10

如果沒有報(bào)錯(cuò)陕贮, peerdebug 環(huán)境就搭好了!

如果 createChannel 的時(shí)候報(bào)錯(cuò)如下

Principal deserialization failure (the supplied identity is not valid: x509: certificate signed by unknown authority) for identity 0

可能是因?yàn)橹?code>docker 容器殘留的數(shù)據(jù)導(dǎo)致潘飘,所以導(dǎo)致證書認(rèn)證失敗肮之。

解決方案:執(zhí)行如下命令刪除卷

docker-compose -f docker-compose-cli.yaml down --volumes --remove-orphans
sudo docker rm -f $(docker ps -a | grep "hyperledger/*" | awk "{print \$1}")
sudo  docker volume prune

我用的材料: first-network.zip

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掉缺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子戈擒,更是在濱河造成了極大的恐慌眶明,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筐高,死亡現(xiàn)場離奇詭異搜囱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)柑土,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門蜀肘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稽屏,你說我怎么就攤上這事扮宠。” “怎么了狐榔?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵坛增,是天一觀的道長。 經(jīng)常有香客問我薄腻,道長轿偎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任被廓,我火速辦了婚禮,結(jié)果婚禮上萝玷,老公的妹妹穿的比我還像新娘嫁乘。我一直安慰自己,他們只是感情好球碉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布蜓斧。 她就那樣靜靜地躺著,像睡著了一般睁冬。 火紅的嫁衣襯著肌膚如雪挎春。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天豆拨,我揣著相機(jī)與錄音直奋,去河邊找鬼。 笑死施禾,一個(gè)胖子當(dāng)著我的面吹牛脚线,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弥搞,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼邮绿,長吁一口氣:“原來是場噩夢啊……” “哼誊酌!你這毒婦竟也來了巴粪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浩聋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體双泪,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坞古,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冠骄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伪煤。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凛辣,靈堂內(nèi)的尸體忽然破棺而出抱既,到底是詐尸還是另有隱情,我是刑警寧澤扁誓,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布防泵,位于F島的核電站,受9級(jí)特大地震影響蝗敢,放射性物質(zhì)發(fā)生泄漏捷泞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一寿谴、第九天 我趴在偏房一處隱蔽的房頂上張望锁右。 院中可真熱鬧,春花似錦讶泰、人聲如沸咏瑟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽码泞。三九已至,卻和暖如春狼犯,著一層夾襖步出監(jiān)牢的瞬間余寥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工悯森, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宋舷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓瓢姻,卻偏偏與公主長得像肥缔,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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