目录
内容目录
基础配置
升级yum
安装 openJdk14(不推荐)
下载地址
查找旧版本
解压压缩包
设置环境变量
测试一下吧
安装 Oraclejdk14(推荐)
下载地址
使用 winscp 传到 /usr/lib/jvm 目录下
进入 etc/profile 中修改环境变量
检查Java版本
安装 docker 20(推荐)
卸载旧版本的 Docker(如果您之前已经安装过 Docker)
安装所需的依赖项
设置 Docker CE 的稳定版仓库:
安装 Docker 20
启动 Docker 服务
验证 Docker 是否成功安装
安装 docker18
安装依赖 curl、openssl
安装需要的软件包
设置 yum 源
查看 docker 版本
指定版本安装
启动 docker 命令
docker 加入开机自启动
MySQL 5.6 dokcer安装
使用docker安装,拉取镜像到本地
启动
启动失败处理
进入 MySQL 容器
python3 环境搭建
查看系统 python 位置
切换到 python 路径下
下载 python3 需要的依赖
centos7 添加 epel 扩展源
使用 wegt 下载 python3
解压
手动编译
安装依赖zlib、zlib-deve
备份软链接
添加软链接
测试
更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用
把第一行的#! /usr/bin/python 修改为如下
还有一个地方也需要修改
把第一行的#! /usr/bin/python 修改如下
最终测试
docker 部署区块链网络
创建操作目录
下载脚本
搭建单群组4节点区块链
启动区块链
检查容器
查看节点
查看共识
fisco 控制台部署
获取控制台
拷贝控制台配置文件
修改配置文件
配置控制台文件
启动
原生安装MySQL
检查系统中是否已安装 MySQL
返回空值的话,就说明没有安装 MySQL
查看已安装的 Mariadb 数据库版本
卸载已安装的 Mariadb 数据库
再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成
下载安装包文件
wegt 无效,需要升级
安装mysql-community-release-el7-5.noarch.rpm包
cd 到安装目录,ls查看一下目录
查看可用的 mysql 安装文件
安装mysql
检查mysql是否安装成功
启动 mysql 服务
设置密码
设置远程主机登录
为 root 账户添加远程登录能力
原生搭建 WeBASE-front(不推荐)
下载安装包
解压
拷贝sdk证书文件(build_chain的时候生成的)
服务启停
docker 镜像快速搭建 WeBase
拉取镜像
启动容器
MySQL 配置数据
创建 webase 用户
创建数据库
将数据库所有权赋予本地 webase 账号
验证 WeBASE 账号
一键部署 webase(推荐)
检查环境
PyMySQL (python3.6+)
检查服务器网络策略
拉取部署脚本
解压,进入目录
配置管理平台连接区块链系统
切换到区块链目录下
修改配置文件
使用命令启动管理平台服务
报错处理
验证平台服务
新节点创建,启动,检查操作(推荐)
查找脚本位置
创建新节点
修改新建节点配置
平台运维
添加新主机
新增节点
修改新节点状态,并监控
内容目录
- 关停防火墙,升级yum,升级其他元素等等
- 配置 docker+
- 配置 Java
- 配置 MySQL
- 配置 python
- 搭建 fisco 网络和控制台
- 搭建 webase
基础配置
升级yum
yum update
安装 openJdk14(不推荐)
下载地址
Archived OpenJDK GA Releases (java.net)
查找旧版本
查看是否自带javajava -version检测jdk的安装包rpm -qa | grep java批量删除这些安装包rpm -e --nodeps `rpm -qa | grep java删除安装的java或jdk目录which javarm -rf /usr/bin/java
解压压缩包
用 winscp 上传到 /usr/lib 目录下
cd /usr/lib
解压到当前文件夹下
tar -zxvf openjdk-14.0.2_linux-x64_bin.tar.gz
删除安装包
rm -rf openjdk-14.0.2_linux-x64_bin.tar.gz
设置环境变量
vim /etc/profile
长按 i 进入插入模式,在最下面添加以下设置,Esc + :wq 保存退出
# JAVA environmentexport JAVA_HOME=/usr/lib/jdk-14.0.2export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin
刷新配置
source /etc/profile
测试一下吧
javacjavaJava -version
安装 Oraclejdk14(推荐)
下载地址
Java Archive Downloads – Java SE 14
使用 winscp 传到 /usr/lib/jvm 目录下
sudo tar -zxvf jdk-14_linux-x64_bin.tar.gz -C /usr/lib/jvmcd /usr/lib/jvm && sudo mv jdk-14 /usr/lib/jvm/
进入 etc/profile 中修改环境变量
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk-14export CLASSPATH=$JAVA_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$PATH
检查Java版本
java -version
安装 docker 20(推荐)
卸载旧版本的 Docker(如果您之前已经安装过 Docker)
sudo yum remove docker docker-common docker-selinux docker-engine
安装所需的依赖项
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置 Docker CE 的稳定版仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manager --enable docker-ce-nightly
安装 Docker 20
sudo yum update && sudo yum install docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io
启动 Docker 服务
sudo systemctl start docker
验证 Docker 是否成功安装
sudo docker version
安装 docker18
安装依赖 curl、openssl
# ubuntusudo apt install -y curl openssl# centossudo yum install -y curl openssl openssl-devel
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置 yum 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看 docker 版本
yum list docker-ce --showduplicates | sort -r
指定版本安装
yum install docker-ce-版本号yum install docker-ce-18.06.3.ce
启动 docker 命令
systemctl start docker
docker 加入开机自启动
systemctl enable docker
MySQL 5.6 dokcer安装
使用docker安装,拉取镜像到本地
docker pull mysql:5.6
启动
docker run -id -p 3307:3306 --name=c_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
启动失败处理
1.停止 Docker 服务:可以使用以下命令停止 Docker 服务:sudo systemctl stop docker2.清除 iptables 规则:可以使用以下命令清除 iptables 规则:sudo iptables -Fsudo iptables -Xsudo iptables -t nat -Fsudo iptables -t nat -Xsudo iptables -t mangle -Fsudo iptables -t mangle -X3.重启 Docker 服务:可以使用以下命令重启 Docker 服务:sudo systemctl start docker停止并删除现有的容器sudo docker stop c_mysqlsudo docker rm c_mysql重新运行docker run -id -p 3307:3306 --name=c_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
进入 MySQL 容器
docker exec -it c_mysql /bin/bashmysql -uroot -p123456
python3 环境搭建
查看系统 python 位置
whereis python
切换到 python 路径下
cd /usr/bin
下载 python3 需要的依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
centos7 添加 epel 扩展源
yum -y install epel-release
yum install python-pip
pip install --upgrade pip
pip install wget
使用 wegt 下载 python3
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
这里提示 pip 版本不正确建议不使用 wegt 的方法下载下载包通过 winscp 的方法传过去
解压
xz -d Python-3.6.8.tar.xztar -xf Python-3.6.8.tar
手动编译
cd Python-3.6.8./configure prefix=/usr/local/python3make && make install
安装依赖zlib、zlib-deve
yum install zlib zlibyum install zlib zlib-devel
备份软链接
mv /usr/bin/python /usr/bin/python.bak
添加软链接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
测试
python -V
更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用
vi /usr/bin/yum
把第一行的#! /usr/bin/python 修改为如下
#! /usr/bin/python2
还有一个地方也需要修改
vi /usr/libexec/urlgrabber-ext-down
把第一行的#! /usr/bin/python 修改如下
#! /usr/bin/python2
最终测试
输入python2,提示python2.7.5输入python,提示python3.6
docker 部署区块链网络
创建操作目录
cd ~ && mkdir -p fisco && cd fisco
下载脚本
curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/master-2.0/tools/build_chain.sh && chmod u+x build_chain.sh
搭建单群组4节点区块链
- 尽量使用-p 指定其他端口,以免启动管理平台时提示端口被占用
bash build_chain.sh -d -l 127.0.0.1:4 -p 30500,20500,8945
启动区块链
nodes/127.0.0.1/start_all.sh
检查容器
docker ps -a | egrep fiscobcos
查看节点
tail -f nodes/127.0.0.1/node0/log/log*| grep connected
查看共识
tail -f nodes/127.0.0.1/node0/log/log*| grep +++
fisco 控制台部署
获取控制台
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh
拷贝控制台配置文件
cp -n console/conf/config-example.toml console/conf/config.toml
修改配置文件
cd console/conf && vi config.toml# 将端口修改为自己在 build_chain 时用 -p指定的端口# 如 build_chain.sh -d -l"127.0.0.1:4" -p 30500,20500,8945# 需要在 config.toml 文件中将 network 一项中的端口参数修改一下[network]peers=["127.0.0.1:20500"."127.0.0.1:20501"]# The peer list to connect
配置控制台文件
cp -r nodes/127.0.0.1/sdk/* console/conf/ls console/conf
启动
cd ~/fisco/console && bash start.sh
原生安装MySQL
检查系统中是否已安装 MySQL
rpm -qa | grep mysql
返回空值的话,就说明没有安装 MySQL
注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。
查看已安装的 Mariadb 数据库版本
rpm -qa|grep -i mariadb
卸载已安装的 Mariadb 数据库
rpm -qa|grep mariadb|xargs rpm -e --nodeps
再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成
rpm -qa|grep -i mariadb
下载安装包文件
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
wegt 无效,需要升级
sudo yum install wget
安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
cd 到安装目录,ls查看一下目录
cd /etc/yum.repos.d
查看可用的 mysql 安装文件
yum repolist all |grepmysql
安装mysql
yum install mysql-server
检查mysql是否安装成功
rpm -qa | grep mysql
启动 mysql 服务
systemctl start mysqld.service #启动 mysqlsystemctl restart mysqld.service #重启 mysqlsystemctl stop mysqld.service #停止 mysqlsystemctl enable mysqld.service #设置 mysql 开机启动
设置密码
# mysql -u rootmysql> use mysql;mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';mysql> flush privileges;
设置远程主机登录
mysql> GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password';
为 root 账户添加远程登录能力
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
原生搭建 WeBASE-front(不推荐)
下载安装包
cd ~/fisco
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-front.zip
解压
unzip webase-front.zipcd webase-front
拷贝sdk证书文件(build_chain的时候生成的)
将节点所在目录
nodes/${ip}/sdk
下的所有文件拷贝到当前conf
目录供SDK与节点建立连接时使用(SDK会自动判断是否为国密,且是否使用国密SSL)
链的
sdk
目录包含了ca.crt,sdk.crt,sdk.key
和gm
文件夹gm
文件夹包含了国密SSL所需的证书注,只有在建链时手动指定了
-G
(大写)时节点才会使用国密SSL
cp-rnodes/${ip}/sdk/*./conf/
服务启停
启动: bash start.sh停止: bash stop.sh检查: bash status.sh
docker 镜像快速搭建 WeBase
拉取镜像
docker pull fiscoorg/fisco-webase:v2.7.2
启动容器
- 需要将生成的
nodes
目录的node0的配置、SDK证书挂载到容器中,并将容器内的日志挂载到/nodes/127.0.0.1/node0/front-log
中
docker run -d -v /nodes/127.0.0.1/node0:/data -v /nodes/127.0.0.1/sdk:/data/sdk -v /nodes/127.0.0.1/node0/front-log:/front/log --network=host -w=/data fiscoorg/fisco-webase:v2.7.2
MySQL 配置数据
创建 webase 用户
CREATE USER 'webase'@'localhost' IDENTIFIED BY '123456';
创建数据库
create DATABASE webasenodemanager;
create DATABASE webasesign;
将数据库所有权赋予本地 webase 账号
GRANT ALL PRIVILEGES ON webasenodemanager.* To 'webase'@'localhost';
GRANT ALL PRIVILEGES ON webasesign.* To 'webase'@'localhost';
quit
验证 WeBASE 账号
mysql -u webase -p123456
show databases;
一键部署 webase(推荐)
检查环境
- Oracle JDK 8 至 14
- MySQL-5.6及以上
- Python3.6及以上
java -version
mysql --version
python --version
PyMySQL (python3.6+)
sudo yum -y install python36-pipsudo pip3 install PyMySQL
检查服务器网络策略
- 开放WeBASE管理平台端口:检查webase-web管理平台页面的端口
webPort
(默认为5000)在服务器的网络安全组中是否设置为开放。如,云服务厂商如腾讯云,查看安全组设置,为webase-web开放5000端口。若端口未开放,将导致浏览器无法访问WeBASE服务页面 - 开放节点前置端口:如果希望通过浏览器直接访问webase-front节点前置的页面,则需要开放节点前置端口
frontPort
(默认5002);由于节点前置直连节点,不建议对公网开放节点前置端口,建议按需开放
启动防火墙
sudo systemctl start firewalld
添加需要开放的端口到防火墙规则中
sudo firewall-cmd --zone=public --add-port=5002/tcp --permanent
重新加载生效
sudo firewall-cmd --reload
确认端口生效
sudo firewall-cmd --list-ports
拉取部署脚本
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip
解压,进入目录
unzip webase-deploy.zip && cd webase-deploy
配置管理平台连接区块链系统
切换到区块链目录下
cd ~/fisco/webase-deploy
修改配置文件
vi common.properties
#将mysql.user和mysql.password改为webase和123456# Mysql database configuration of WeBASE-Node-Manager 修改相应的MySQL用户名密码等信息mysql.ip=localhostmysql.port=3306mysql.user=webase#修改此处mysql.password=123456#修改此处mysql.database=webasenodemanagersign.mysql.ip=localhostsign.mysql.port=3306sign.mysql.user=webase #修改此处sign.mysql.password=123456 #修改此处sign.mysql.database=webasesign
使用命令启动管理平台服务
# 下载python3 deploy.py installAll# 启动python3 deploy.py startAll
报错处理
- 如果提示端口被占用
# 查看当前系统中哪个进程正在占用 8545 端口lsof -i:8545# 查看当前系统中哪个进程正在占用 8545 端口COMMAND PID USER FD TYPEDEVICE SIZE/OFF NODE NAMEnode12345 user 12uIPv4 12345670t0TCP *:8545 (LISTEN)#PID 为 12345 的 node 进程正在占用 8545 端口。如果您想停止该进程:sudo kill 12345
验证平台服务
初始默认的账户名是admin,密码是Abcd1234
http://localhost:5000
新节点创建,启动,检查操作(推荐)
查找脚本位置
find / -name gen_node_cert.sh
创建新节点
cd ~/fisco
bash ./webase-deploy/webase-node-mgr/script/deploy/gen_node_cert.sh -c nodes/cert/agency/ -o ./nodes/127.0.0.1/node4
修改新建节点配置
cd nodes/127.0.0.1
拷贝 node0 文件 config.ini 文件到新建节点
cp node0/config.ini node4/config.ini
cp node0/conf/group.1.genesis node4/conf
进入新建节点config.ini文件修改配置
vi node4/config.ini
将监听端口 20500 改为 20504将监听端口 8945 改为 8949将监听端口 30500 改为 30504[rpc]channel_listen_ip=0.0.0.0channel_listen_port=20504jsonrpc_listen_ip=127.0.0.1jsonrpc_listen_port=8949disable_dynamic_group=false[p2p]listen_ip=0.0.0.0listen_port=30504; nodes to connect
进入node4目录,拷贝节点启动停止指令文件
cd node4 && cp ../node0/*.sh .
启动新节点
./start.sh
启动失败问题解决
[root@gen-173-168-063-126 node4]# ./start.sh003f404c5163d7333f6d62e84d46983fc73fbedd20cc2882c0a47d1638bcac33Exceed waiting time. Please try again to start node4Error: No such object: rootfisconodes127.0.0.1node4# 解决方法:vi start.sh# 将中间行的一段 sleep 1.5 注释掉再次运行即可
修改新节点配置,并查看节点的nodeid
# 进入conf目录,查看节点的nodeidcd conf/ cat node.nodeid# 复制 nodeid# 进入console目录,启动Console控制台cd /fisco/console && bash start.sh# 将新节点作为观察节点加入群组1当中,并检查是否加入成功# 查看观察节点列表getObserverList# 将新节点添加到观察节点列表中addObserver (节点的nodeid)# 检查是否加入成功getObserverList