区块链单组群多节点部署
环境配置
配置 | 最低配置 | 推荐配置 |
---|---|---|
CPU | 1.5GHz | 2.4GHz |
内存 | 1GB | 8GB |
核心 | 1核 | 8核 |
带宽 | 1Mb | 10Mb |
- 本次试验使用Ubuntu16.04版本,内存4G
区块链的分类
- 公有链-公有云
无官方组织机构,无中心服务器,参与的节点按照系统规则自由介入网络,不受控制,节点间基于共识机制开展工作.
- 私有链-私有云
建立在某个企业内部,系统的运作根据企业要求进行设定,修改甚至是读取权限仅限于少数节点,同时仍保留着区块链的真实性,和部分去中心化特性.
- 联盟链-混合云
由若干机构联合泛起,基于公有和私有链之间,兼具部分去中心化的特性
部署
按照上一篇博客安装好Ubuntu虚拟机,这次登录用户
在桌面上点击鼠标右键,出现Open Terminal
打开终端选项
小声哔哔:把本篇博客代码高亮的地方依次复制到你的命令里,应该不会有什么大问题,遇到问题随机应变,看看错误提示。这篇向面向不同基础的人,所以有些地方会带命令的解释
安装依赖
本次使用的是FISCO BCOS平台,由于接下来要安装它的开发部署工具build_chain.sh,依赖于OpenSSL和curl,所以需要先安装依赖
sudo
命令是linux系统的管理指令,允许系统管理员让普通用户执行一些或者全部的root命令。
apt-get
,是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
install
安装
后面三个是依赖的名称,
OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。
vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器。使用方法通常是vim (文件路径)
sudo apt-get install -y openssl curl vim
创建操作目录
mkdir
是新建文件夹命令
mkdir -p fisco
cd fisco/
下载脚本
用的是GitHub上的FISCO开源脚本,如果使用的是公共网络可能会有连接不上GitHub的可能,这时可以把网络改为个人热点或私有网络
这条命令的意思是先用curl下载GitHub上的脚本,chmod
命令用来执行build_chain.sh脚本,u代表user用户权限,x代表eXecute执行权限值为1,&&前后的命令也可以分成两句来写
user@ubuntu:~/fisco$ curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.7.2/build_chain.sh
user@ubuntu:~/fisco$ chmod u+x build_chain.sh
这样的两行和下面高亮的代码效果是一样的
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.7.2/build_chain.sh && chmod u+x build_chain.sh
查看端口情况
下载完脚本之后,我们需要生成一条但群组4节点的FISCO链
在生成链之前,需要确保机器的30300~30303,20200~20203,8545~8548
这三个范围的端口没有被占用
lsof
命令可以查看端口情况
sudo lsof -i:30300-30303
sudo lsof -i:20200-20203
sudo lsof -i:8545-8548
sudo lsof -i
搭建联盟链
注意搭建的时候需要在fisco目录下进行(命令:cd fosco/)
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
成功搭建后,启动所有节点
bash nodes/127.0.0.1/start_all.sh
检查进程是否有启动
ps -ef | grep -v grep | grep fisco-bcos
查看节点的连接信息,可以看到node0跟其他3个绩点都会有连接
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
上一个命令通过Ctrl+C
结束运行
查看节点的共识,若输出信息带有+++++ Generating seal表示共识正常,同样Ctrl+C
结束运行
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
就是下边这个流程: user@ubuntu:~/fisco$ bash nodes/127.0.0.1/start_all.sh try to start node0 try to start node1 try to start node2 try to start node3 node0 start successfully node2 start successfully node3 start successfully node1 start successfully user@ubuntu:~/fisco$ ps -ef | grep -v grep | grep fisco-bcos user 7555 4336 0 19:41 pts/1 00:00:00 /home/user/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini user 7557 4336 1 19:41 pts/1 00:00:00 /home/user/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini user 7559 4336 0 19:41 pts/1 00:00:00 /home/user/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini user 7562 4336 0 19:41 pts/1 00:00:00 /home/user/fisco/nodes/127.0.0.1/node3/../fisco-bcos -c config.ini user@ubuntu:~/fisco$ tail -f nodes/127.0.0.1/node0/log/log* | grep connected info|2021-03-17 19:44:16.305073|[P2P][Service] heartBeat,connected count=3 info|2021-03-17 19:44:26.305560|[P2P][Service] ^C user@ubuntu:~/fisco$ tail -f nodes/127.0.0.1/node0/log/log* | grep +++ info|2021-03-17 19:45:32.883210|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=2,hash=5776f212... ^C