区块链学习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失败

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第1张图片

再者一个简单粗暴的解决方法:

直接在浏览器里面下载下来到你的电脑里,下面是下载地址,复制到浏览器中即可下载

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

看到版本号信息则说明二进制文件已经生效可用,如下示:

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第2张图片

 

 

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

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第3张图片

 发送链证书、机构证书、机构私钥至机构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的修改

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第4张图片

 

 

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文件夹中。

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第5张图片

(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存放。

即如下:

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第6张图片

 

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

 

问题:

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第7张图片

解决:

因为我们是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 

如图示:

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第8张图片

保存 

: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

可以看到版本信息如下:

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第9张图片

 

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,如下示:

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第10张图片

 

10.启动控制台

./start.sh

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

区块链学习1——FISCO BCOS 多机部署区块链底层(云服务器搭建)_第11张图片

你可能感兴趣的:(区块链学习)