區塊鏈學習1——FISCO BCOS 多機部署區塊鏈底層(雲服務器搭建)

目錄

1.兩臺共同執行下載及安裝

2.初始化鏈證書及機構

3.修改配置文件

4.機構生成併發送節點信息

5.創世機構收集節點證書

6.各機構節點連接信息,相互收集

7.機構A生成羣組1創世區塊

8.控制檯的搭建

9.控制檯配置

10.啓動控制檯


環境:兩臺雲服務器             Ubuntu 18.04.4                 Remote Desktop Manager

1.兩臺共同執行下載及安裝

通過gihub下載到主機上

(1)下載

cd ~/ && git clone https://github.com/FISCO-BCOS/generator.git && cd ./generator

(2)安裝

cd ~/generator && bash ./scripts/install.sh

(3)獲取節點二進制

./generator --download_fisco ./meta

 

問題:

(3.1)可能會出現的問題1:從github下載時網絡不穩定導致的

解決:

 可以在後面加上--cdn指令,從國內的鏡像進行下載,如果還是網絡錯誤,可多試幾次

./generator --download_fisco ./meta --cdn

(3.2)可能會出現的問題2:解壓fisco-bcos失敗

再者一個簡單粗暴的解決方法:

直接在瀏覽器裏面下載下來到你的電腦裏,下面是下載地址,複製到瀏覽器中即可下載

https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.4.0/fisco-bcos.tar.gz

然後把下載下來的fisco-bcos文件,再通過WinSCP,複製到generator/meta/ 目錄下,解壓

tar -xzvf fisco-bcos.tar.gz

賦予運行權限:

chmod +x fisco-bcos

 

(4)檢查二進制版本

./meta/fisco-bcos -v

看到版本號信息則說明二進制文件已經生效可用,如下示:

 

 

2.初始化鏈證書及機構

A機構(其中一臺雲服務器)

(1)初始化鏈證書

在generator文件夾下進行,如果不是在generator目錄下先則先執行下列語句進入該目錄

cd ~/generator

若已在該目錄下,可直接執行下列命令: 

./generator --generate_chain_certificate ./dir_chain_ca

(2)初始機構A

./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA

(3)查看機構證書及私鑰

ls dir_agency_ca/agencyA/

可以看到:agency.crt  agency.key  ca.crt 

(4)發送鏈證書、機構證書、機構私鑰至機構A

cp ./dir_agency_ca/agencyA/* ~/generator/meta/

 


因爲控制檯查看文檔的不方便,也爲了後續工作的方便執行,此處插播一個可視化工具推薦——WinSCP

 發送鏈證書、機構證書、機構私鑰至機構A之後如果使用命令行查看的話還是比較麻煩的,但是通過WinSCP可以方便的看到我們剛纔所下載安裝的generator文件及鏈證書、機構證書、機構私鑰,而不需要通過命令行的方式進行查看及一些文件複製等操作。


 

B機構(另一臺雲服務)

(1)初始化機構B

通過手動方式,在WinSCP裏面將機構A的 dir_chain_ca 拷貝到機構B

(2)生成機構B證書

./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB

(3)發送鏈證書、機構證書、機構私鑰至機構B

cp ./dir_agency_ca/agencyB/* ~/generator/meta/

 

 

3.修改配置文件

手動修改generator/conf文件夾下面的node_deployment.ini  ,如下圖所示,修改紅框內的p2p_ip和rpc_ip,P2P填的是外網ip,而RPC填的是內網ip,雲服務器上都要這樣修改。這裏由於我的服務器只有內網ip,就全填內網了。

注:在實際開發過程中RPC不能填外網ip,關於這3個接口,詳情可看——FISCO BCOS網絡端口講解

這裏,機構A和機構B,即兩臺服務器都要對 node_deployment.ini 做相應p2p_ip和rpc_ip的修改

 

 

4.機構生成併發送節點信息

機構A

(1)機構A生成節點證書及p2p連接信息文件

./generator --generate_all_certificates ./agencyA_node_info

查看

ls ./agencyA_node_info

可以看到下列內容即爲成功:

 

機構B

(2)機構B生成節點證書及p2p連接信息文件

./generator --generate_all_certificates ./agencyB_node_info

 

 

5.創世機構收集節點證書

生成創世區塊的機構需要節點證書,示例中由A機構生成創世區塊,因此B機構除了發送節點p2p連接地址文件外,還需發送節點證書至機構A
(1)將機構B節點agencyB_node_info 文件夾 cert_*.crt文件,如下兩個文件,copy到機構A的meta文件夾中。

(2)同樣操作,將機構A節點agencyA_node_info 文件夾的兩個文件也一樣要copy到機構B的meta文件夾中。

 

6.各機構節點連接信息,相互收集

(1)將機構A中的  /generator/agencyA_node_info  文件夾下的  peers.txt  複製到自己的  /generator/meta  目錄下,並且把peers.txt  的內容複製到機構B中meta新建一個peersA存放。

(2)同理,將機構B中的  /generator/agencyB_node_info  文件夾下的  peers.txt  複製到自己的  /generator/meta  目錄下,並且把peers.txt  的內容複製到機構A中meta新建一個peersB存放。

即如下:

 

7.機構A生成羣組1創世區塊

(1)修改機構A的   /generator/conf  文件夾下的  group_genesis.ini  ,這裏要結合個人主機的ip地址來看,注意端口要對上,與前面  node_deployment.ini 文件中p2p端口的對應。

;命令解釋
[group]
;羣組id
group_id=1

[nodes]
;機構A節點p2p地址
node0=10.13.1.23:30300
;機構A節點p2p地址
node1=10.13.1.23:30301
;機構B節點p2p地址
node2=10.13.1.24:30300
;機構B節點p2p地址
node3=10.13.1.24:30301

(2)機構A生成 group_genesis.ini 配置的羣組創世區塊

./generator --create_group_genesis ./group

(3)分發羣組1創世區塊至機構B

手動複製,機構A  ./group/group.1.genesis  文件到機構B的meta文件夾下。

(4)機構A生成所屬節點

./generator --build_install_package ./meta/peersB.txt ./nodeA

(5)機構B生成所屬節點

./generator --build_install_package ./meta/peersA.txt ./nodeB

(6)各自啓動機構下的節點

啓動機構A節點:

bash ./nodeA/start_all.sh

啓動機構B節點:

bash ./nodeB/start_all.sh

 

問題:

解決:

因爲我們是root用戶下的四個子用戶,存在衝突,可嘗試  ps -ef | grep fisco 查看進程節點  bash ./stop_all.sh  停掉其他節點,再啓動就可以了。

 

(7)查看進程

ps -ef | grep fisco

(8)查看節點

tail -f ./node*/node*/log/log* | grep +++

查看到以下內容即爲成功:

 

8.控制檯的搭建

搭建控制檯,由於需要java環境,所以先要搭建java

(1)添加ppa源(注:中間會出現按enter鍵繼續 )

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

(2)安裝openjdk

sudo apt install openjdk-8-jre-headless

(3)在瀏覽器裏面下載jdk 1.8.211

地址如下:

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(4)解壓文件

①在根目錄新建software 文件夾(與generator同級),將 jdk-8u251-linux-x64.tar.gz 安裝包放置其中

② 在/usr/lib/ 目錄下新建jdk 文件夾

cd /usr/lib
su root
mkdir jdk

③返回sofrware目錄下,執行解壓命令

sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/lib/jdk

(5)配置環境

①修改配置

sudo vim /etc/profile

export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_251  這裏是要指定的文件位置 

#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_251
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH 

如圖示:

保存 

:wq

②執行命令,立即生效:

source /etc/profile

更新:sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.8.0_251/bin/java 300   這裏也是要改成指定的位置

sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.8.0_251/bin/java 300 
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.8.0_251/bin/javac 300

檢測版本

java -version

可以看到版本信息如下:

 

9.控制檯配置

(1)在generator目錄下下載控制檯

./generator --download_console ./ --cdn

(2)配置 

①配置A機構控制檯生成sdk證書

./generator --generate_sdk_certificate ./dir_sdk_ca ./dir_agency_ca/agencyA

配置B機構控制檯生成sdk證書

./generator --generate_sdk_certificate ./dir_sdk_ca ./dir_agency_ca/agencyB

執行完  ls dir_sdk_ca/sdk  命令,可以看到  ca.crt node.crt node.key sdk.crt sdk.key  即爲成功

②將文件複製至console目錄下的conf文件夾

cp -rf dir_sdk_ca/sdk/* console/conf/

③進入generator/console/conf 目錄下,複製樣例文件applicationContext-sample.xml爲新文件

cp applicationContext-sample.xml applicationContext.xml

④手動修改 applicationContext.xml  中的value,如下示:

 

10.啓動控制檯

./start.sh

就可以看到控制檯如下示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章