FISCO BCOS 實(shí)戰(zhàn)教程(三) build_chain.sh 搭鏈

????FISCO BCOS 入門(mén)第一步,搭建 FISCO BCOS 環(huán)境挂签。本章節(jié)通過(guò) build_chain.sh 的方式講解搭建一條 FISCO BCOS 聯(lián)盟鏈的過(guò)程中涉及的各個(gè)方面,也可以參考 官方教程 進(jìn)行詳細(xì)了解盼产。本教程已 fisco-bcos v2.7.2 版本為例竹握,如果后續(xù)有新的版本更新辆飘,可以到 git 官網(wǎng)上啦辐,手工下載 fisco-bcos v2.7.2 版本的二進(jìn)制進(jìn)行驗(yàn)證蜈项。如無(wú)特別說(shuō)明,一下操作均以 macos 為例紧卒。

1. 安裝依賴(lài)

## macos 環(huán)境安裝依賴(lài)

brew install openssl curl

## ubuntu 環(huán)境安裝依賴(lài)

sudo apt install -y openssl curl

##?centos 環(huán)境安裝依賴(lài)

sudo yum install -y openssl openssl-devel

2.?創(chuàng)建操作目錄, 下載安裝腳本

## 創(chuàng)建操作目錄

cd ~ && mkdir -p fisco && cd fisco

## 下載腳本

curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.7.2/build_chain.sh && chmod u+x build_chain.sh

????PS:?如果因?yàn)榫W(wǎng)絡(luò)問(wèn)題導(dǎo)致長(zhǎng)時(shí)間無(wú)法下載build_chain.sh腳本侥衬,請(qǐng)嘗試?curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/master/tools/build_chain.sh && chmod u+x build_chain.sh

3. 搭建聯(lián)盟鏈

????這里將講解搭建過(guò)程中涉及到的幾個(gè)重要的各種參數(shù)。為了保證演示結(jié)果與本教程的一致性轴总,可以先查看 3.4? 章節(jié)部分

3.1 查看 build_chain.sh 參數(shù)

? ? 執(zhí)行 ./build_chain.sh -help ,即可看到 build_chain.sh 所支持的參數(shù)博个。如圖所示怀樟,有很多參數(shù)可以選擇盆佣,下面將介紹常用的幾個(gè)參數(shù)往堡。

3.2 使用 -l 和 -p 生成單機(jī)聯(lián)盟鏈

????執(zhí)行如下命令共耍,可以看到,build_chain.sh 腳本自動(dòng)去拉取最新的 fisco-bcos 二進(jìn)制 (這里為 2.7.2 的 fisco-bcos 版本)痹兜,并生成鏈節(jié)點(diǎn)穆咐。初次安裝的時(shí)候,我們選擇讓 build_chain.sh 自動(dòng)拉取字旭,但因?yàn)榫W(wǎng)絡(luò)問(wèn)題,去 github 拉取時(shí)谐算,可能會(huì)很慢熟尉。所以后面將介紹使用已存在的二進(jìn)制進(jìn)行節(jié)點(diǎn)的生成

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545

? ?執(zhí)行成功后洲脂,我們將看到當(dāng)前目錄下生成了一個(gè) nodes 目錄斤儿。nodes 目錄下存在兩個(gè)目錄恐锦,分別是 127.0.0.1 和 cert 往果,我們進(jìn)入 127.0.0.1? 目錄 ( cert 目錄的作用會(huì)在后續(xù)章節(jié)進(jìn)行講解 )一铅,執(zhí)行執(zhí)行 ./start_all.sh , 看到輸出 “start successfully” 表示節(jié)點(diǎn)啟動(dòng)成功潘飘。至此肮之,一切順利的話掉缺,我們的鏈就創(chuàng)建并啟動(dòng)成功了戈擒。

????下面我們看下我們輸入的參數(shù)?-l 127.0.0.1:4 -p 30300,20200,8545 到哪里去了眶明,哪里可以找到這兩個(gè)配置筐高。大家有沒(méi)有注意到,nodes 下面中的 127.0.0.1 這個(gè)目錄柑土,這個(gè)目錄其實(shí)就是 -l 中所指定的 127.0.0.1, 那么這個(gè)參數(shù)是否可以換成其他的值呢 蜀肘?換成其他值后有什么影響呢。讓我們做下實(shí)驗(yàn)就知道稽屏。首先,停止剛才啟動(dòng)的進(jìn)程诫欠。

? ? 進(jìn)入到 nodes/127.0.0.1 目錄涵卵,執(zhí)行 ./stop_all.sh ,看到 "stop nodeX success" 的輸出表示轿偎,執(zhí)行成功,節(jié)點(diǎn)停止成功被廓,這里 "X" 對(duì)應(yīng) 0,1,2,3 坏晦。然后在 fisco 目錄下嫁乘,執(zhí)行 mv nodes nodes_backup 昆婿。因?yàn)楹竺嫖覀円鱿聦?duì)比蜓斧,所以先對(duì)舊的 nodes 目錄進(jìn)行備份仓蛆。

? ? 之后挎春,再執(zhí)行如下命令看疙,生成新的鏈直奋,執(zhí)行成功后,我們可以看到重新生成了一個(gè) nodes 目錄脚线,并且 nodes 目錄下存在 "127.0.0.1" 和 "cert" 這兩個(gè)目錄搁胆。注意到了沒(méi)攀例,第一點(diǎn):?nodes 下面的目錄名跟著參數(shù)的變化肛度,當(dāng)然還有第二個(gè)不同點(diǎn),讓我們繼續(xù)觀察

bash build_chain.sh -l 127.0.0.2:4 -p 30300,20200,8545


? ? 開(kāi)兩個(gè)窗口投慈,分別進(jìn)入 "fisco/nodes/127.0.0.2/node0" 和? "fisco/nodes_backup/127.0.0.1/node0" 目錄,并且編輯 config.ini 文件伪煤,我們可以觀察到 p2p 下面每個(gè) node 對(duì)應(yīng)的 ip 是不一樣的。那這個(gè) p2p 中的這些 node 有什么用呢凛辣,可以參考我的另一篇文章 "FISCO BCOS 實(shí)戰(zhàn)教程(三)config.ini 配置詳解" 中的說(shuō)明抱既。這里大家只需要進(jìn)行了解即可,不影響下面的閱讀蝗敢。

????這里 -l 參數(shù)后面只帶了一個(gè) ip, 根據(jù) build_chain.sh 的參數(shù)說(shuō)明捷泞,其他可以輸入很多的 Ip,后面進(jìn)行多機(jī)節(jié)點(diǎn)部署的時(shí)候會(huì)進(jìn)行演示咏瑟。下面繼續(xù)講解下 -p 參數(shù)的影響。查看 fisco/nodes/127.0.0.2/node0/config.ini 文件痪署,可以注意到码泞,其中的 "listen_port", "channel_listen_port", "jsonrpc_listen_port" 就是依次輸入的參數(shù)值狼犯,那這幾個(gè)參數(shù)有什么影響呢余寥,可以參考我的另一篇文章 "FISCO BCOS 實(shí)戰(zhàn)教程(三)config.ini 配置詳解"辜王,這里大家只需要了解 -p 參數(shù)的影響即可劈狐。如果我們繼續(xù)觀察 127.0.0.2 目錄下 node1/config.ini? ,? node2/config.ini , node3/config.ini 呐馆,可以看到"listen_port", "channel_listen_port", "jsonrpc_listen_port"? 是依次增加的。那么這里就會(huì)有個(gè)問(wèn)題汹来,如果 node0 中的?listen_port 和 node1 中的?channel_listen_port 相同续膳,會(huì)有什么問(wèn)題呢改艇,在我的另一篇文章 "FISCO BCOS 實(shí)戰(zhàn)教程(三)config.ini 配置詳解"? 中會(huì)進(jìn)行詳細(xì)的介紹坟岔。?

3.2? -e 使用存在的 fisco 二進(jìn)制生成單機(jī)聯(lián)盟鏈

? ? 上面所說(shuō)的谒兄,如果測(cè)試的話社付,需要經(jīng)常把鏈刪除并重建承疲,每次去 github 拉取鸥咖,網(wǎng)絡(luò)好的話不會(huì)有問(wèn)題燕鸽,網(wǎng)絡(luò)慢的話就要等很久啼辣。所以這我們可以使用已經(jīng)存在的二進(jìn)制進(jìn)行鏈的搭建。在 fisco 目錄下創(chuàng)建一個(gè)新的目錄鸥拧,名為 bin, 然后把 nodes/127.0.0.2/fisco-bcos 這個(gè)二進(jìn)制放到 bin 目錄中党远,然后刪除 fisco 目錄下的 nodes? ( 如果沒(méi)有刪除的話,執(zhí)行 build_chain.sh 會(huì)提示 nodes 目錄已存在) 富弦。之后目錄結(jié)構(gòu)如下

? ? 執(zhí)行如下命令,使用已存在的 fisco-bcos 二進(jìn)制生成鏈節(jié)點(diǎn)舆声。執(zhí)行成功花沉,我們可以注意到,輸出的信息中沒(méi)有 Downloading 字樣碱屁,表明 build_chain.sh 沒(méi)有去 github 拉取 fisco-bcos 二進(jìn)制。

bash build_chain.sh -l 127.0.0.2:4 -p 30300,20200,8545 -e bin/fisco-bcos

3.3 使用 -g 生成國(guó)密節(jié)點(diǎn)

? ? 首先蛾找,刪除 fisco/nodes 目錄娩脾,然后執(zhí)行如下命令打毛。

bash build_chain.sh -l 127.0.0.2:4 -p 30300,20200,8545 -e bin/fisco-bcos -g

鏈生成成功柿赊,查看 nodes/127.0.0.2/node0/config.ini 文件幻枉,可以觀察到? sm_crypto 這個(gè)參數(shù)為 true, 表示當(dāng)前節(jié)點(diǎn)為國(guó)密節(jié)點(diǎn)碰声。具體?sm_crypto 參數(shù)的作用及意義可以參考?我的另一篇文章 "FISCO BCOS 實(shí)戰(zhàn)教程(三)config.ini 配置詳解" 熬甫,這里只需了解即可胰挑。

3.4 使用 -v 參數(shù)指定版本?

????因?yàn)榧嫒菪缘目紤],fisco-bcos 二進(jìn)制高版本兼容低版本的配置瞻颂。這里,我們使用 fisco-bcos v2.7.2 的二進(jìn)制贡这,配置兼容版本為 v2.5.0?

bash build_chain.sh -l 127.0.0.2:4 -p 30300,20200,8545 -v v2.5.0 -e bin/fisco-bcos

? ? 執(zhí)行成功茬末,進(jìn)入 nodes/127.0.0.2/node0 目錄,查看 config.ini 文件丽惭,可以看到?supported_version 字段值為 2.5.0。 在 fisco/nodes/127.0.0.2 目錄下辈双,執(zhí)行 ./fisco-bcos -v , 可以看到輸出的二進(jìn)制版本為 v2.7.2吐根。那么這里的 supported_version 具體有什么用呢辐马,參看我的另一篇文章?"FISCO BCOS 實(shí)戰(zhàn)教程(三)config.ini 配置詳解"? 里面有詳細(xì)講解


3.5 使用 -f 參數(shù)指定? ip list 文件, 生成多機(jī)節(jié)點(diǎn)

? ? 當(dāng)需要生成多個(gè)主機(jī)的節(jié)點(diǎn)時(shí)局义,使用命令行方式難免顯得復(fù)雜喜爷,使用文件指定 ip list 的方式萄唇,會(huì)顯得精簡(jiǎn)很多檩帐。首先刪除 fisco 目錄下的 nodes 文件夾另萤。之后創(chuàng)建文件? iptable湃密,內(nèi)容如下四敞。其中 “agency1 1,2" 這個(gè)值的具體作用泛源,新手朋友可以暫時(shí)不用關(guān)注忿危,在我后續(xù)的 console 使用文章中會(huì)有講解达箍。

# iptable 文件內(nèi)容

127.0.0.2:4 agency1 1,2 30300,20200,8545

127.0.0.3:4 agency1 1,2 30300,20200,8545

? ? 之后執(zhí)行如下命令生成節(jié)點(diǎn)铺厨。

bash build_chain.sh -f iptable -e bin/fisco-bcos

進(jìn)入到 nodes 目錄缎玫,即可看到生成兩個(gè)節(jié)點(diǎn)文件夾 127.0.0.2解滓, 127.0.0.3?

3.6 使用 -d 生成 docker 節(jié)點(diǎn)

? ? 首先刪除 fisco 目錄下的 nodes 目錄赃磨,然后執(zhí)行如下命令 ( 因 macos 暫不支持 docker 部署洼裤,所以這里使用 centos 進(jìn)行演示 )

bash build_chain.sh -l 127.0.0.2:4 -p 30300,20200,8545 -d

? ? 執(zhí)行成功,節(jié)點(diǎn)生成成功。對(duì)比 nodes_backup/127.0.0.1/node0/start.sh 和? nodes/127.0.0.2/node0/start.sh 文件恩沛,文件可以發(fā)現(xiàn)腳本的啟動(dòng)方式一個(gè)為 docker 在扰,一個(gè)為非 docker。具體可參考?FISCO 官網(wǎng)

4. 總結(jié)

? ? build_chain.sh 參數(shù)很多芒珠,這里不進(jìn)行一一列舉,大家可以自行進(jìn)行驗(yàn)證實(shí)驗(yàn)搅裙。具體可以執(zhí)行 build_chain.sh -help 查看具體參數(shù)說(shuō)明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末皱卓,一起剝皮案震驚了整個(gè)濱河市部逮,隨后出現(xiàn)的幾起案子娜汁,更是在濱河造成了極大的恐慌兄朋,老刑警劉巖掐禁,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颅和,死亡現(xiàn)場(chǎng)離奇詭異傅事,居然都是意外死亡峡扩,警方通過(guò)查閱死者的電腦和手機(jī)蹭越,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)教届,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)响鹃,“玉大人案训,你說(shuō)我怎么就攤上這事买置∮┧ィ” “怎么了堕义?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵脆栋,是天一觀的道長(zhǎng)倦卖。 經(jīng)常有香客問(wèn)我椿争,道長(zhǎng)怕膛,這世上最難降的妖魔是什么秦踪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任褐捻,我火速辦了婚禮,結(jié)果婚禮上柠逞,老公的妹妹穿的比我還像新娘昧狮。我一直安慰自己,他們只是感情好板壮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布逗鸣。 她就那樣靜靜地躺著,像睡著了一般绰精。 火紅的嫁衣襯著肌膚如雪撒璧。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天笨使,我揣著相機(jī)與錄音卿樱,去河邊找鬼硫椰。 笑死繁调,一個(gè)胖子當(dāng)著我的面吹牛靶草,可吹牛的內(nèi)容都是我干的涉馁。 我是一名探鬼主播爱致,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼糠悯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起妻往,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤互艾,失蹤者是張志新(化名)和其女友劉穎讯泣,沒(méi)想到半個(gè)月后纫普,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昨稼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拳锚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片假栓。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡霍掺,死狀恐怖匾荆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牙丽,我是刑警寧澤简卧,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站烤芦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拍棕。R本人自食惡果不足惜晓铆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绰播。 院中可真熱鬧,春花似錦蠢箩、人聲如沸链蕊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至掌实,卻和暖如春陪蜻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贱鼻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邻悬,地道東北人症昏。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像父丰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛾扇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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