前言:因爲學習須要,我得用上FISCO BCOS,而後我直接上官網找教程,單是搭建單羣組FISCO BCOS聯盟鏈,安裝教程走的確很簡單。可是我在部署區塊鏈瀏覽器,或者WeBASE管理平臺的時候,就屢屢踩坑,其實就是安裝軟件環境的問題。html
補充一下:聯盟鏈能夠手動搭建,也能夠直接搭建WeBASE平臺,由於它配置文件也能夠幫你自動建立的。不喜歡手動搭建的同窗,能夠直接看WeBASE的搭建。java
用官方的教程來進行便可,可是有一點須要注意:在搭建好鏈的環境,檢查日誌輸出以後,不要用教程的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/
第三步:配置環境變量
這裏用到的是官方的流程:
cd / && sudo vi /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
source /etc/profile
最後:查看版本
顯示版本爲11.0.1就成功了。
java -version
接下來配置控制檯的步驟,就能夠按照官方的流程走了:https://fisco-bcos-documentat...
搭建好控制檯以後,你也能夠部署調用你的第一個合約,感覺一下這裏的HelloWorld~
這個平臺執行部署腳本須要4個環境,咱們統一用Python3來部署。
環境 | 所用版本 |
---|---|
Java | OpenJDK11.0.1 |
Python | Python3.4+ |
MySQL | Mysql5.7 |
Pymysql | 默認最新 |
參考上面的安裝方式
先查看你的python版本,通常來講,都會有自帶一個高於3.4的python的
python3 --version
若是沒有Python3.4+環境的同窗,能夠參考:https://blog.csdn.net/weixin_...
我首先要吐槽一下,官方安裝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
docker search mysql
上面這條命令咱們能夠看到有不少鏡像,可是咱們不用想,直接用MySQL5.7就完事了
# 5.7是版本號 docker pull mysql:5.7
docker images | mysql # 返回結果 REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7 .... 33 hours ago ...MB
啓動Docker中的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 用戶的密碼。
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
sudo apt-get install -y python3-pip sudo pip3 install PyMySQL
至此4個所需環境都已經搭建完畢了。
獲取部署安裝包:
#回到用戶目錄 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.
若是不使用一鍵部署搭建新鏈,能夠參考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
備註:
登陸系統,重置密碼:
管理平臺默認用戶爲admin,默認密碼爲Abcd1234(第一次登錄成功後會要求重置密碼,請按照密碼標準設置一個更加安全的密碼)。
再接下來的操做,好比添節點前置,你們就看官方的使用手冊吧:https://webasedoc.readthedocs...
永久加載配置文件,在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了。