UBUNTU18.04搭建WeBASE管理平臺

前言:因爲學習須要,我得用上FISCO BCOS,而後我直接上官網找教程,單是搭建單羣組FISCO BCOS聯盟鏈,安裝教程走的確很簡單。可是我在部署區塊鏈瀏覽器,或者WeBASE管理平臺的時候,就屢屢踩坑,其實就是安裝軟件環境的問題。html

補充一下:聯盟鏈能夠手動搭建,也能夠直接搭建WeBASE平臺,由於它配置文件也能夠幫你自動建立的。不喜歡手動搭建的同窗,能夠直接看WeBASE的搭建。java


1.搭建單羣組的FISCO BCOS聯盟鏈

用官方的教程來進行便可,可是有一點須要注意:在搭建好鏈的環境,檢查日誌輸出以後,不要用教程的node

sudo apt install -y default-jdk

來安裝JAVA環境,這樣等下安裝WeBASE平臺的時候,會報錯,錯誤緣由是java的環境沒有配置好。python

解決方法mysql

先卸載用apt方式安裝的JDKlinux

sudo apt-get purge openjdk*

咱們採用下載壓縮包解壓縮的方法,手動配置Java環境。git

首先:先下載openjdk11:https://download.java.net/jav...github

(以前我用了weget命令來下載,可是下載半天沒反應,因此我仍是直接瀏覽器下載,而後上傳到服務器裏面去)web

第二步:上傳到服務器,並進入到該目錄上解壓。sql

上傳工具,我使用的是WINSCP,固然也有其餘不少種方式

cd進入到上傳目錄,解壓 openjdk

tar -xzvf openjdk-11.0.1_linux-x64_bin.tar.gz

移動到要安裝的目錄, 好比我在根目錄下建立一個software文件夾

mv jdk-11.0.1/ /software/

lbGB0P.md.png

第三步:配置環境變量

這裏用到的是官方的流程:

  • 進入根目錄,修改/etc/profile
cd / && sudo vi /etc/profile
  • 在/etc/profile末尾添加如下信息

注意:這一步,若是你們的文件夾名字不一樣,要根據本身實際的名字填寫JAVA_HOME

JAVA_HOME=/software/jdk-11.0.1
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH==.:$JAVA_HOME/lib
export JAVA_HOME CLASSPATH PATH
  • 重載/etc/profile
source /etc/profile

最後:查看版本

顯示版本爲11.0.1就成功了。

java -version

接下來配置控制檯的步驟,就能夠按照官方的流程走了:https://fisco-bcos-documentat...

搭建好控制檯以後,你也能夠部署調用你的第一個合約,感覺一下這裏的HelloWorld~

2.搭建WeBASE平臺所需環境

這個平臺執行部署腳本須要4個環境,咱們統一用Python3來部署。

環境 所用版本
Java OpenJDK11.0.1
Python Python3.4+
MySQL Mysql5.7
Pymysql 默認最新

1. Java環境的安裝

參考上面的安裝方式

2. Python環境的安裝

先查看你的python版本,通常來講,都會有自帶一個高於3.4的python的

python3 --version

若是沒有Python3.4+環境的同窗,能夠參考:https://blog.csdn.net/weixin_...

3. MySQL的安裝

我首先要吐槽一下,官方安裝MySQL爲啥不用docker呢?這個東西實在太香~啦~

安裝流程參考(幾乎照搬)的是:https://blog.csdn.net/qq_3696...

首先,咱們來安裝Docker

1.準備工做

# 先卸載舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 更新軟件包索引,嫌棄國外軟件源慢的能夠自行更換軟件源
sudo apt-get update

# 安裝依賴
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# 添加Docker的官方GPG密鑰
# 這一步須要ROOT權限,若是沒添加進去的話,是下載不了的
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 驗證安裝:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88經過搜索指紋的最後8個字符,驗證您如今擁有帶指紋的密鑰。
sudo apt-key fingerprint 0EBFCD88
    
# 輸出這個結果表示添加成功
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]
————————————————
版權聲明:本文爲CSDN博主「安心寫bug」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/qq_36963372/article/details/88874927

2.開始安裝

# 更新apt包索引
sudo apt-get update

# 安裝最新版docker
sudo apt-get install docker-ce

接下來,咱們來安裝MySQL

  1. 查找Docker Hub上的mysql鏡像
docker search mysql

上面這條命令咱們能夠看到有不少鏡像,可是咱們不用想,直接用MySQL5.7就完事了

  1. 選擇安裝版本
# 5.7是版本號
docker pull mysql:5.7
  1. 查看剛安裝的MySQL
docker images | mysql

# 返回結果
REPOSITORY          TAG       IMAGE ID     CREATED           SIZE
mysql               5.7        ....     33 hours ago        ...MB

啓動Docker中的MySQL

  1. 啓動MySQL
# 要執行的命令,將Docker中的3306端口映射到宿主機的3306
docker run -p 3306:3306 --name mysql57 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# 返回結果
0d9288bf06fba3d67d75c1a1f3c4ac74182c185e33c3c4a428401686ef5fb818

# 命令釋義:
-p 3306:3306:將容器的 3306 端口映射到主機的 3306 端口。
-v $PWD/conf:/etc/mysql/conf.d:將主機當前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:將主機當前目錄下的 logs 目錄掛載到容器的 /logs。
-v $PWD/data:/var/lib/mysql :將主機當前目錄下的data目錄掛載到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用戶的密碼。
  1. 查看啓動
sudo docker ps -a
#返回結果
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
3cfc7a9e363a        mysql:5.7           "docker-entrypoint.s…"   18 hours ago        Up 18 hours         0.0.0.0:3306->3306/tcp, 33060/tcp   mysql57

鏈接MySQL

#先安裝MySQL客戶端
apt install mariadb-client-core-10.1 
#在Docker中安裝的MySQL和宿主機是兩個概念,須要走tcp鏈接。
#因此原來的socket鏈接的命令就會報錯。 報錯:mysql -u root -p 123456
mysql -h 127.0.0.1 -P 3306 -u root -p

或者,咱們能夠進入MySQL容器進行操做

#查看全部容器
sudo docker ps -a
#啓動容器
docker start  [對應的containerID]
#進入容器bash
docker exec -it mysql bash
#輸入root帳號密碼登陸
mysql -uroot -p

建立數據庫

這一步必須執行,後面部署腳本要用到這個數據庫,在MySQL命令行中輸入

create database webasenodemanager;
//退出
quit

4. PyMySQL的安裝

sudo apt-get install -y python3-pip
sudo pip3 install PyMySQL

至此4個所需環境都已經搭建完畢了。


3.部署腳本,修改配置文件

獲取部署安裝包:

#回到用戶目錄
cd ~
#拉部署安裝包
wget https://github.com/WeBankFinTech/WeBASELargeFiles/releases/download/v1.2.2/webase-deploy.zip

解壓安裝包:

unzip webase-deploy.zip

進入解壓目錄:

cd webase-deploy

修改配置文件:

① 修改配置文件(vi common.properties);

② mysql數據庫咱們須要改一下數據庫帳號密碼,鏈接的ip設置爲127.0.0.1

③ 一鍵部署支持使用已有鏈或者搭建新鏈。經過參數」if.exist.fisco」配置是否使用已有鏈,如下配置二選一便可:

一句話說明,若是進行了文章第一步鏈的搭建(按照官方文檔),那就設爲yes 沒有就設置爲no.

  • 當配置」yes」時,需配置已有鏈的路徑
  • 當配置」no」時,需配置節點fisco版本和節點安裝個數,搭建的新鏈默認兩個羣組

    若是不使用一鍵部署搭建新鏈,能夠參考FISCO BCOS官方文檔搭建 FISCO BCOS部署流程

④ 服務端口不能小於1024。

#進入配置文件
vi common.properties
#進入insert模式 按a 或者 i
#esc退出插入,回到命令行,輸入 :wq 保存退出

YES:有預先按官方文檔連接搭建鏈的,按按照下面的內容配置:

要根據你本身實際使用的用戶名修改

# 路徑下要存在sdk目錄,sdk裏存放sdk證書(ca.crt、node.crt和node.key)
fisco.dir=/home/你的用戶名/fisco/nodes/127.0.0.1
# 前置所鏈接節點的絕對路徑
# 路徑下要存在conf文件夾,conf裏存放節點證書(ca.crt、node.crt和node.key)
node.path=/home/你的用戶名/fisco/nodesnodes/127.0.0.1/node0

完整的common.properties文件內容:

# WeBASE版本(v1.1.0或以上版本)
webase.version=v1.2.2

# 節點管理子系統mysql數據庫配置
mysql.ip=127.0.0.1
mysql.port=3306
mysql.user=dbUsername
mysql.password=dbPassword
mysql.database=webasenodemanager

# 節點前置子系統h2數據庫名
front.h2.name=webasefront

# WeBASE管理平臺服務端口
web.port=5000
# 節點管理子系統服務端口
mgr.port=5001
# 節點前置子系統端口
front.port=5002

# 節點監聽Ip
node.listenIp=127.0.0.1
# 節點p2p端口
node.p2pPort=30300
# 節點鏈上鍊下端口
node.channelPort=20200
# 節點rpc端口
node.rpcPort=8545

# 是否使用國密(0: standard, 1: guomi)
encrypt.type=0

# 是否使用已有的鏈(yes/no)
if.exist.fisco=yes

# 使用已有鏈時需配置
# 已有鏈的路徑,start_all.sh腳本所在路徑
# 路徑下要存在sdk目錄,sdk裏存放sdk證書(ca.crt、node.crt和node.key)
fisco.dir=/home/你的用戶名/fisco/nodes/127.0.0.1
# 前置所鏈接節點的絕對路徑
# 路徑下要存在conf文件夾,conf裏存放節點證書(ca.crt、node.crt和node.key)
node.path=/home/你的用戶名/fisco/nodesnodes/127.0.0.1/node0

# 搭建新鏈時需配置
# FISCO-BCOS版本
fisco.version=2.1.0
# 搭建節點個數(默認兩個)
node.counts=nodeCounts

NO:沒有搭建鏈的,按照下面的內容配置:

完整的common.properties文件內容:

# WeBASE版本(v1.1.0或以上版本)
webase.version=v1.2.2

# 節點管理子系統mysql數據庫配置
mysql.ip=127.0.0.1
mysql.port=3306
mysql.user=dbUsername
mysql.password=dbPassword
mysql.database=webasenodemanager

# 節點前置子系統h2數據庫名
front.h2.name=webasefront

# WeBASE管理平臺服務端口
web.port=5000
# 節點管理子系統服務端口
mgr.port=5001
# 節點前置子系統端口
front.port=5002

# 節點監聽Ip
node.listenIp=127.0.0.1
# 節點p2p端口
node.p2pPort=30300
# 節點鏈上鍊下端口
node.channelPort=20200
# 節點rpc端口
node.rpcPort=8545

# 是否使用國密(0: standard, 1: guomi)
encrypt.type=0

# 是否使用已有的鏈(yes/no)
if.exist.fisco=yes

# 使用已有鏈時需配置,這部分的配置能夠不用理了
# 已有鏈的路徑,start_all.sh腳本所在路徑
# 路徑下要存在sdk目錄,sdk裏存放sdk證書(ca.crt、node.crt和node.key)
fisco.dir=/data/app/nodes/127.0.0.1
# 前置所鏈接節點的絕對路徑
# 路徑下要存在conf文件夾,conf裏存放節點證書(ca.crt、node.crt和node.key)
node.path=/data/app/nodes/127.0.0.1/node0

# 搭建新鏈時需配置
# FISCO-BCOS版本
fisco.version=2.1.0
# 搭建節點個數(默認兩個)
node.counts=2

部署全部服務

python3 deploy.py installAll

備註:

  • 部署腳本會拉取相關安裝包進行部署,需保持網絡暢通。
  • 首次部署須要下載編譯包和初始化數據庫,重複部署時能夠根據提示不重複操做
  • 部署過程出現問題能夠查看常見問題解答

至此,部署的工做就已經徹底搞定了,下面放一些備用的命令行:

#中止全部服務:
python3 deploy.py stopAll

#服務部署後,若是須要單獨啓停,可使用如下命令:
啓動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-Front:        python3 deploy.py startFront
中止WeBASE-Front:        python3 deploy.py stopFront

訪問 WeBASE管理平臺 :

搭的這麼辛苦,咱們進去看看吧~

http://{deployIP}:{webPort}
示例:http://127.0.0.1:5000

備註:

  • 部署服務器IP和管理平臺服務端口需對應修改,網絡策略需開通
  • WeBASE管理平臺使用說明請查看使用手冊(獲取WeBASE管理平臺默認帳號和密碼,並初始化系統配置)

登陸系統,重置密碼:

管理平臺默認用戶爲admin,默認密碼爲Abcd1234(第一次登錄成功後會要求重置密碼,請按照密碼標準設置一個更加安全的密碼)。

再接下來的操做,好比添節點前置,你們就看官方的使用手冊吧:https://webasedoc.readthedocs...


完結撒花~

新年快樂,我在搭建完成使用了一段時間,發現會有一些問題。我用的是騰訊雲,假如我有一天沒有使用這個WeBASE平臺,一些相關進程就會自動關閉。。好比說JAVA,經過java -version命令查看,java是否還運行,沒運行的話,能夠 用root角色,cd /&&source /etc/profile,重載java配置。重置完成以後再java -version查看狀況。

永久加載配置文件,在etc/bash.bashrc 文件最後添加如下內容

export JAVA_HOME=/software/jdk-11.0.1
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH==.:$JAVA_HOME/lib
cd /&&source bash.bashrc

這樣就永久配置java了。

另外一個問題,得看看mysql是否在運行,docker ps命令查看所有運行容器,沒有的話,就docker ps -a查看所有容器,找到mysql容器ID,使用docker start 容器ID,啓動完成後,咱們再docker ps查看所有運行容器。

假若前面的兩個都啓動了以後,咱們進入到webase-deploy這個目錄,先執行python3 depoly.py stopAll命令,再執行python3 deploy.py startAll命令。主要是等到webase-node-manager與webase-front這兩個服務啓動,所有啓動完成以後,咱們就能夠從新遠程訪問WeABSE平臺了。。xxx.xxx.xxx.xxx:5000,跳到登陸頁面,要是能看到 驗證碼 出現,就說明,所有恢復了。注意:啓動是須要花必定的時間的,要等一下,按照上面的步驟,要是沒出現驗證碼的話,就等一下再刷新一下。

假如說,還遇到其餘問題,你們能夠去看各個服務的log,log裏面都有挺詳細的報錯信息的

相關文章
相關標籤/搜索