使用 WeBASE 部署 FISCO BCOS 區塊鏈

📢 本文由 gemini-2.5-flash 翻譯

這篇文章寫於 2024-04-29,之後有修改過一次,本來以為寫完了,但今天看居然沒寫完,可是相關的東西我早就刪掉了,唉,就這樣吧。

直接部署 WeBASE 到 FISCO BCOS。

Docker 部署

在 CentOS 系統下使用 Docker 安裝

環境

首先安裝 yum-utils 以使用 yum-config-manager

1
yum install -y yum-utils

設定來源

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 官方來源
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 阿里雲
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 清華大學
yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

安裝

1
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

設定 Docker 映像檔來源

1
vim /etc/docker/daemon

內容如下(中國科大映像檔來源)

1
2
3
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

啟動 Docker

1
systemctl start docker

或者,如果需要修改設定檔,請重新載入設定檔,並重新啟動 Docker 服務

1
2
systemctl daemon-reload
systemctl restart docker.service

安裝 Python

1
yum install -y python36 epel-release python36-pip

下載 docker-compose

1
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

修改執行權限

1
chmod +x /usr/local/bin/docker-compose

安裝 PyMySQL

1
pip3 install PyMySQL

部署區塊鏈

拉取部署腳本

1
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip

解壓縮安裝包

1
unzip webase-deploy.zip

進入目錄

1
cd webase-deploy

修改設定檔

1
vim common.properties

拉取映像檔

1
python3 deploy.py pullDockerAll

拉取映像檔時會提示輸入逾時時間,輸入 30/60/120 任一數值即可。

若拉取失敗,可手動拉取相關映像檔,例如 fiscoorg/fiscobcos:v2.9.1

1
docker pull fiscoorg/fiscobcos:v2.9.1

部署

1
python3 deploy.py installDockerAll

看到 deploy has completed 即表示部署成功

常用指令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 一鍵部署
部署並啟動所有服務        python3 deploy.py installDockerAll
停止一鍵部署的所有服務    python3 deploy.py stopDockerAll
啟動一鍵部署的所有服務    python3 deploy.py startDockerAll
# 節點的啟動與停止
啟動所有 FISCO-BCOS 節點:      python3 deploy.py startNode
停止所有 FISCO-BCOS 節點:      python3 deploy.py stopNode
# WeBASE 服務的啟動與停止
啟動所有 WeBASE 服務:      python3 deploy.py dockerStart
停止所有 WeBASE 服務:      python3 deploy.py dockerStop

Java 環境部署

不使用 Docker 的話需要 Java 環境,CentOS 系統需要使用 Oracle JDK,從其 官方網站下載 JDK8 後解壓縮,假設檔案名稱為 jdk-8u411-linux-x64.tar.gz

1
tar -zxvf jdk-8u411-linux-x64.tar.gz

解壓縮後重新命名

1
mv jdk1.8.0_411 jdk-8u411

設定環境變數,修改檔案 vim /etc/profile

1
2
3
export JAVA_HOME=/home/yexca/software/jdk-8u411
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOMR/lib/tools.jar

生效

1
source /etc/profile

查詢

1
java -version

資料庫

不使用 Docker 的話需要資料庫,安裝 MariaDB,首先建立 repo 檔案

1
vim /etc/yum.repos.d/mariadb.repo

檔案內容如下,使用阿里雲映像檔來源

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# MariaDB 11.2 CentOS repository list - created 2024-04-30 03:16 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/11.2/centos/$releasever/$basearch
baseurl = https://mirrors.aliyun.com/mariadb/yum/11.2/centos/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

清除快取

1
2
yum clean all
yum makecache all

安裝

1
yum install -y MariaDB-server MariaDB-client

啟動服務

1
systemctl start mariadb.service

設定

1
mariadb-secure-installation

部署區塊鏈

拉取安裝包

1
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip

解壓縮

1
unzip webase-deploy.zip

進入目錄

1
cd webase-deploy

修改設定檔

1
vim common.properties

部署

1
python3 deploy.py installAll

啟動與停止操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 一鍵部署
部署並啟動所有服務        python3 deploy.py installAll
停止一鍵部署的所有服務    python3 deploy.py stopAll
啟動一鍵部署的所有服務    python3 deploy.py startAll
# 各子服務啟動與停止
啟動 FISCO-BCOS 節點:      python3 deploy.py startNode
停止 FISCO-BCOS 節點:      python3 deploy.py stopNode
啟動 WeBASE-Web:          python3 deploy.py startWeb
停止 WeBASE-Web:          python3 deploy.py stopWeb
啟動 WeBASE-Node-Manager: python3 deploy.py startManager
停止 WeBASE-Node-Manager: python3 deploy.py stopManager
啟動 WeBASE-Sign:        python3 deploy.py startSign
停止 WeBASE-Sign:        python3 deploy.py stopSign
啟動 WeBASE-Front:        python3 deploy.py startFront
停止 WeBASE-Front:        python3 deploy.py stopFront
# 視覺化部署
部署並啟動視覺化部署的所有服務  python3 deploy.py installWeBASE
停止視覺化部署的所有服務  python3 deploy.py stopWeBASE
啟動視覺化部署的所有服務  python3 deploy.py startWeBASE

存取

根據設定項目 web.port=5000 確定存取連接埠(預設為 5000),然後存取管理後台。

防火牆

1
2
3
4
5
6
7
8
# 查詢開放的連接埠
firewall-cmd --zone=public --list-ports
# 開放連接埠 --permanent 為永久開放
firewall-cmd --zone=public --add-port=5000/tcp --permanent
# 重新啟動防火牆
firewall-cmd --reload
# 查詢是否開放
firewall-cmd --zone=public --query-port=5000/tcp

智慧合約

2025-03-13: 我也不知道這裡寫的是什麼了

WeBASE 後台的合約管理頁面,在合約 IDE 建立合約

編譯後建立新使用者,在私鑰管理處

透過發送交易測試是否成功

參考文章

WeBASE 文件

https://www.runoob.com/docker/centos-docker-install.html

https://mariadb.org/download/?t=repo-config&d=CentOS+7&v=11.2&r_m=aliyun

https://blog.csdn.net/default7/article/details/122672341

https://www.cnblogs.com/potato-chip/p/13973780.html