Hyperledger Fabric 1.0 多節點(solo)實戰搭建驗證

一、前期準備和說明

1.1、本文檔基于Hyperledger Fabric 1.0.4進行,共識方式是solo。

1.2、基于虛擬機進行模擬展現,實體機操作類似。

1.3、先使用單機方式下載go、docker、docker-compose、fabric1.0.4鏡像等必須內容,然后通過單機的network_setup.sh up來校驗單機內容正常與否。(請務必每臺機器都確認一遍,否則后面很容易出各種匪夷所思的錯誤。測試完畢記得使用network_setup down關閉。)

1.4、將已經正常處理好的虛擬拷貝成為多臺,分別命名為fabric 1.0.4.orderer、fabric 1.0.4 peer01等,如下圖:


1.5、其它注意事項:

A)請通過ping、telnet等方式確認各虛擬機之間的網絡是通的!!!如果是實體機,請放在統一網段;不同網段的設備務必通過防火墻配置讓各設備之間網絡相通。

B)如果是使用單機VM來模擬多臺虛擬機的,請降低每臺VM的內存,比如調整到1G,否則有可能無法同時啟動測試所需的5臺虛機。

C)使用單機VM的請使用快照功能保持關鍵步驟,以便隨時回退。實體機的請咨詢運維相關同事,至少保存初始鏡像,以便快速回退重來。

至此前期準備工作完成。

二、配置調整

為方便了解實際配置,我們進行實戰演練,搭建過程中不完全使用fabric給出的examples中默認的信息。我們本次驗證的設定如下:

A)有2個組織:OrgA/OrgB

B)channel名為testchannel

C)domain名為test.com

但畢竟fabric的命令和配置繁多,為了操作方便,我們仍參考使用example/e2e_cli目錄中的文件來進行操作。各位可將命令從腳本中抽離出來,自由搭配。

(如下操作在任何一臺設備上都可進行)

2.1、拷貝測試目錄及相關參考腳本。

cd $GOPATH/src/github.com/hyperledger/fabric/examples/

cp -r e2e_cli mytest_cli

cd mytest_cli (后面如無特別標注,都表示在mytest_cli目錄下操作)

2.2、調整配置文件

2.2.1 修改crypto-config.yaml文件

A)ordererOrgs節:

Domain:example.com 修改為 Domain:test.com

B)PeerOrgs節:

Name:Org1 修改為 OrgA

Doamin:org1.example.com 修改為 Domain:orga.test.com

同理修改Org2為OrgB

2.2.2 修改docker-compose-e2e-template.yaml 文件

將里面的所有example.com調整為test.com

將所有的org1調整為orga,org2調整為orgb

2.2.3 修改base/docker-compose-base.yaml文件

將里面的所有example.com調整為test.com

將所有的org1調整為orga,org2調整為orgb

將所有的Org1調整為OrgA,Org2調整為OrgB

2.2.4 修改configtx.yaml文件

將里面的所有example.com調整為test.com

將所有的org1調整為orga,org2調整為orgb

將所有的Org1調整為OrgA,Org2調整為OrgB

2.2.5 修改generateArtifacts.sh文件(如果我們純手工操作,則無需改動)

A)將里面的org1/2.example.com修改為orga/b.test.com

B)將里面的Org1/2MSP修改為OrgA/BMSP

2.2.6 修改base/peer-base.yaml

將KER_HOSTCONFIG_NETWORKMODE這行屏蔽

2.3、生成公私鑰、證書、創世塊等初始信息。

./generateArtifacts.sh testchannel

生成的文件在channel-artifacts和crypto-config這兩個目錄下。

注意:如果前面配置有誤,導致generateArtifacts.sh執行失敗,則在重新執行前,需要刪除channel-artifacts和crypto-config這兩個目錄下的所有內容。

2.4、配置拷貝。

通過ftp、scp等方式,將mytest_cli整個目錄拷貝到別的節點中去。

三、生成每個節點的啟動配置

直接參考docker-compose-cli.yaml文件進行刪改即可。

docker-compose-orderer.yaml:

services:

orderer.test.com:

extends:

file:? base/docker-compose-base.yaml

service: orderer.test.com

container_name: orderer.test.com

docker-compose-peer0orga.yaml:(其它peer類似)

sversion: '2'

services:

peer0.orga.test.com:

container_name: peer0.orga.test.com

extends:

file:? base/docker-compose-base.yaml

service: peer0.orga.test.com

extra_hosts:

- "orderer.test.com:192.168.81.128"

cli:

container_name: cli

image: hyperledger/fabric-tools

tty: true

environment:

- GOPATH=/opt/gopath

- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock

- CORE_LOGGING_LEVEL=DEBUG

- CORE_PEER_ID=cli

- CORE_PEER_ADDRESS=peer0.orga.test.com:7051

- CORE_PEER_LOCALMSPID=OrgAMSP

- CORE_PEER_TLS_ENABLED=true

- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orga.test.com/peers/peer0.orga.test.com/tls/server.crt

- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orga.test.com/peers/peer0.orga.test.com/tls/server.key

- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orga.test.com/peers/peer0.orga.test.com/tls/ca.crt

- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orga.test.com/users/Admin@orga.test.com/msp

working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer

#command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; sleep $TIMEOUT' (去掉command,不要自動執行)

volumes:

- /var/run/:/host/var/run/

- ../chaincode/go/:/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go

- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/

- ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/

- ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts

depends_on:

- peer0.orga.test.com

extra_hosts:

- "orderer.test.com:192.168.81.128"

- "peer0.orga.test.com:192.168.81.129"

- "peer1.orgb.test.com:192.168.81.130"

- "peer0.orga.test.com:192.168.81.131"

- "peer1.orgb.test.com:192.168.81.132"

peer的yaml中需要包括cli的部分,cli的部分的extra_hosts包括所有的地址。

(雖然我們進行的多節點搭建驗證,但不需要修改base子目錄下的yaml文件,端口保持不一致也是一種不錯的解決方案)

四、啟動節點進行驗證

4.1、先啟動orderer節點,然后再啟動其它peer節點。

docker-compose -f docker-compose-orderer.yaml up

(orderer只會啟動orderer一個docker鏡像)

(peer會啟動peer和tools兩個鏡像)

docker-compose -f docker-compose-peer0orga.yaml up

docker-compose -f docker-compose-peer0orgb.yaml up

docker-compose -f docker-compose-peer1orga.yaml up

docker-compose -f docker-compose-peer1orgb.yaml up

4.2、通過cli進行驗證

隨便登錄一臺peer,比如peer1orga這臺,然后進入cli鏡像

docker exec -it cli bash

執行如下命令

./scripts/script.sh testchannel

(testchannel就是我們前面創建的channel)

(同理,這個scripts.sh需要將里面的example.com修改為test.com,org1調整為orga,org2調整為orgb)

(在這個過程中,可能會發現錯誤,然后重新調整,切記要使用docker rm來刪除原有的鏡像信息,否則,也可能會出現莫名其妙的錯誤。)

至此,我們的多節點實戰搭建驗證完畢。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容