日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

搭建联盟链

發(fā)布時(shí)間:2023/12/29 综合教程 18 生活家
生活随笔 收集整理的這篇文章主要介紹了 搭建联盟链 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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
#docker run -itd -m 512M --privileged=true --memory-swap -1 --net=host -p 30301:30301/udp -p 30301:30301/tcp -v /path/docker/bootnode:/root/bootnode --name genbootnode docker.io/hawyasunaga/ethereum-bootnode bootnode --genkey=/root/bootnode/boot.key

運(yùn)行引導(dǎo)節(jié)點(diǎn):

1
#docker run -itd -m 512M --privileged=true --memory-swap -1 --net=host -p 30301:30301/udp -p 30301:30301/tcp -v /path/docker/bootnode:/root/bootnode --name bootnode docker.io/hawyasunaga/ethereum-bootnode bootnode --nodekey=/root/bootnode/boot.key

注意:這兩個(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
#docker logs -f bootnode 

得到節(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
{

  "config": {

        "chainId": 90,

        "homesteadBlock": 0,

        "eip155Block": 0,

        "eip158Block": 0

    },

  "alloc": {"0x5f38056f45091ee992298e53681b0a60c999ff95":{"balance": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7"}},

  "coinbase"   : "0x5f38056f45091ee992298e53681b0a60c999ff95",

  "extraData"  : "0x2017",

  "nonce"      : "0xdeadbeefdeadbeeF",

  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",

  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

  "timestamp"  : "0x00",

  "gasLimit": "0xffffffff",

  "difficulty": "0x20000"

}

3.2 初始化創(chuàng)世文件

首先新建一個(gè)準(zhǔn)備放置以太坊目錄的文件,將genesis.json文件放入該地址,本文為/home/admin下:

運(yùn)行如下命令

1
#docker run -itd --privileged=true -v /home/admin:/root/ethdev --name gethDev1 ethereum/client-go --datadir /root/ethdev --networkid 8765639736937780 init /root/ethdev/genesis.json

請(qǐng)記住—networkid 8765639736937780,這是當(dāng)前搭建聯(lián)盟鏈的ID。

查看日志文件:docker logs -f gethDev1

初始化成功。

3.3 Docker創(chuàng)建以太坊容器節(jié)點(diǎn)

運(yùn)行如下命令

1
#docker rm -f gethDev1

?

1
#docker run -itd -m 512M --privileged=true --network=host --memory-swap -1 --net=host -p 8545:8545 -p 40303:40303 -v /home/admin:/root/ethdev --name gethDev1 ethereum/client-go --ipcdisable --port 40303 --bootnodes "enode://ad6aff917c6e8bd40cb20af4eac6ce05c16d285125b46f17fc9b5c3b0a833bd21667231215949c6ff771ba512eb8f87f138ac6679852997c3eaec1d349561d20@120.25.162.110:30301" --bootnodesv4 "enode://ad6aff917c6e8bd40cb20af4eac6ce05c16d285125b46f17fc9b5c3b0a833bd21667231215949c6ff771ba512eb8f87f138ac6679852997c3eaec1d349561d20@120.25.162.110:30301" --bootnodesv5 "enode://ad6aff917c6e8bd40cb20af4eac6ce05c16d285125b46f17fc9b5c3b0a833bd21667231215949c6ff771ba512eb8f87f138ac6679852997c3eaec1d349561d20@120.25.162.110:30301" --debug --rpcapi "db,eth,net,web3,personal,admin,miner,txpool" --datadir /root/ethdev --networkid 8765639736937780 --wsapi "db,eth,net,web3,personal,admin,miner,txpool" --ws --wsaddr "0.0.0.0" --rpc --rpcaddr "0.0.0.0" --cache=512 --verbosity 3 console

//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
#docker attach gethDev1

輸入命令: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é)

以上是生活随笔為你收集整理的搭建联盟链的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。