搭建联盟链
1 安裝前的準(zhǔn)備
1.1 配置Linux系統(tǒng)
本文配置的為windows下的VMware軟件下搭建的Linux下的cent0S-7系統(tǒng),推薦系統(tǒng)有CentOS 7和Ubuntu 16.04有條件的可以用云服務(wù)器上的Linux系統(tǒng),好處是可以搭建廣域網(wǎng)聯(lián)盟鏈。
本文默認(rèn)你已經(jīng)對(duì)以太坊和docker技術(shù)有一定的掌握和了解,并部署好相應(yīng)的環(huán)境。如果你還未準(zhǔn)備好,請(qǐng)參考芯鏈公眾號(hào)前期發(fā)布的環(huán)境搭建和部署文章。
1.2 安裝Docker
請(qǐng)使用管理員權(quán)限進(jìn)行安裝,
# su root
安裝Docker(請(qǐng)參考芯鏈公眾號(hào)發(fā)布的安裝指導(dǎo)文章):
CentOS: yum -y install docker-io
Ubuntu: apt-get install docker-engine
安裝完畢如圖:
然后啟動(dòng)Docker服務(wù):
#service docker start
校驗(yàn)docker是否安裝成功:
#docker run hello-world
這個(gè)命令會(huì)下載一個(gè)測(cè)試鏡像,并且運(yùn)行在一個(gè)容器中。當(dāng)容器運(yùn)行時(shí),他會(huì)打印一些信息,并且退出。下圖表示Docker已經(jīng)安裝完成。
2 安裝bootnode
2.1 下載bootnode鏡像
運(yùn)行命令如下命令:
#docker pull docker.io/hawyasunaga/ethereum-bootnode
查看鏡像:docker images
2.2 Docker創(chuàng)建bootnode容器節(jié)點(diǎn)
生成引導(dǎo)節(jié)點(diǎn):
1 |
|
運(yùn)行引導(dǎo)節(jié)點(diǎn):
1 |
|
注意:這兩個(gè)命令參數(shù)中,-v /path/docker/bootnode:/root/bootnode為映射路徑,在docker的這個(gè)bootnode容器中,出現(xiàn)容器內(nèi)/root/bootnode路徑都映射為外部路徑/path/docker/bootnode。下方以太坊容器搭建節(jié)點(diǎn)命令同理。
2.3 查看bootnode日志得到節(jié)點(diǎn)
1 |
|
得到節(jié)點(diǎn)如下:
將[::]替換為本機(jī)IP地址
好了,用于連接的根節(jié)點(diǎn)運(yùn)行完畢。
3 安裝以太坊節(jié)點(diǎn)
可以找臺(tái)Linux進(jìn)行節(jié)點(diǎn)聯(lián)盟鏈的搭建了,這里繼續(xù)以centos7繼續(xù)演示了。
3.1 創(chuàng)建以太坊的創(chuàng)世文件
新建創(chuàng)世文件genesis.json,內(nèi)容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
3.2 初始化創(chuàng)世文件
首先新建一個(gè)準(zhǔn)備放置以太坊目錄的文件,將genesis.json文件放入該地址,本文為/home/admin下:
運(yùn)行如下命令
1 |
|
請(qǐng)記住—networkid 8765639736937780,這是當(dāng)前搭建聯(lián)盟鏈的ID。
查看日志文件:docker logs -f gethDev1
初始化成功。
3.3 Docker創(chuàng)建以太坊容器節(jié)點(diǎn)
運(yùn)行如下命令
1 |
|
?
1 |
|
//enode為上面運(yùn)行bootnode得到的節(jié)點(diǎn),并將預(yù)備的私鑰文件放入keystore中,并且—networkid 8765639736937780為聯(lián)盟鏈的標(biāo)識(shí)ID。
查看控制臺(tái)日志:docker logs -f gethDev1
Ok,節(jié)點(diǎn)搭建成功。
3.4 驗(yàn)證聯(lián)盟鏈的連接
在上一步搭建好節(jié)點(diǎn)后,等待一段時(shí)間,讓節(jié)點(diǎn)自動(dòng)連接根節(jié)點(diǎn)bootnode。
進(jìn)入以太坊容器中:
1 |
|
輸入命令:admin
查看peer是否連接:
OK,連接完成,聯(lián)盟鏈搭建完成。
連接完成后,開始同步區(qū)塊:
注意:這里連接的是之前已經(jīng)加入bootnode根節(jié)點(diǎn)的其他節(jié)點(diǎn),與根節(jié)點(diǎn)的連接并不會(huì)顯示在peers中。如果是第一個(gè)連接bootnode的節(jié)點(diǎn),連接了bootnode的時(shí)候輸入admin,peers是空的,需要繼續(xù)搭建一個(gè)節(jié)點(diǎn)來測(cè)試他們互相連接。
總結(jié)
- 上一篇: tqdm 任务进度条模块
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?