前言
專案背景是 csdn 舉行的 2020 部落格之星 TOP200 的投票活動,當時為了拉票彪哥就開發了《基於區塊鏈的自動抽獎系統》這個專案,這裡就應用了 FISCO-BCOS 區塊鏈平臺的預言機服務解決方案 Truora。主要是用於獲取鏈下 API 資料,智慧合約實現更公平抽獎場景。這裡系列文章講解本次小專案的真實的實施過程,因為在開發的時候並沒有記錄,所以這裡系列文章我們會一步一步的重新來一遍。第一篇文章我們重點講解《一鍵部署 Truora》。
一、Truora 是什麼?Truora 是 FISCO-BCOS 區塊鏈平臺的預言機服務解決方案,是在廣泛調研的基礎上針對聯盟鏈場景設計的可信預言機服務。
區塊鏈愈發展,對鏈下資料的需求就會愈強烈,預言機的重要性也會愈發凸顯。
作為連線 FISCO-BCOS 聯盟鏈和網際網路的橋樑,Truora 致力於解決網際網路資料安全可信的上鍊,助力擴寬聯盟鏈的應用場景和豐富聯盟鏈的生態。
Truora 服務主要由後端 Java 元件 Truora-Service 和前端 Vue 元件 Truora-Web 組成。
官方介紹:https://truora.readthedocs.io/zh_CN/latest/docs/introduction.html
二、專案總體架構三、專案最終效果展示四 、知道了緣由開始動手一鍵部署 Truora使用一鍵部署 Truora 服務時,僅支援 Linux 作業系統!!
因為官方的文件已經很詳細了,這裡就講重點的步驟,理論的東西就不在概述,但是有興趣的小夥伴可以自行閱讀官方文件:https://truora.readthedocs.io/zh_CN/latest/docs/introduction.html
使用的系統介紹centos7.5(虛擬機器)
2. 下載部署包(推薦使用)
## 從 GitHub 下載最新部署包wget "https://github.com/WeBankBlockchain/Truora-Service/releases/download/v1.0.0/docker-deploy.zip"## 解壓部署包unzip docker-deploy.zip
如果需要下載指定版本,在版本列表中 選擇相應版本下載。
3. 進入部署指令碼(deploy_all.sh)所在目錄,執行命令:
# 自動安裝依賴服務,預設從 CDN 拉取 Docker 映象# Docker Hub 官方倉庫拉取映象時,不僅速度比較慢,同時成功率也相對較低
# -d : 自動安裝系統依賴# -g : 使用國密# -k : 從 Docker Hub 官方倉庫拉取 Docker 映象bash deploy_all.sh -d
4. 遇到問題如下(如果伺服器沒安裝過 mysql 跳過這步):
[root@localhost tra]# bash deploy_all.sh -d============================================================================================[INFO] call script [./util/deploy_util.sh] with parameter: [ -m -w -f ]+ bash ./util/deploy_util.sh -m -w -f -d============================================================================================[INFO] Current deploy root dir : [ /root/tra/util ]============================================================================================[INFO] Install requirements[INFO] [openssl] already installed.[INFO] [wget] already installed.[INFO] [curl] already installed.[INFO] Install Docker.[INFO] Docker is already installed.============================================================================================[INFO] Check requirements.[INFO] Try to start Docker service.[INFO] Disabled SELinux temporarily.setenforce: SELinux is disabled[INFO] Check Docker is ready to run containers.9c27e219663c: Loading layer [==================================================>] 15.36kB/15.36kBLoaded image: hello-world:latest[INFO] Check minimize available memory.============================================================================================[INFO] Check ports.[WARN] Port:[3306] is already in use\, please leave the port:[3306] for service:[MySQL]Aborted\, error 5 in command: bash "${__root}/util.sh" check_ports
上面的報錯是說 mysql 的 3306 埠衝突了,因為服務我之前已經安裝了預設 3306 埠的 mysql 資料庫了。
解決方案:
查詢官方文件得知 \, 一鍵部署 指令碼 deploy_all.sh 和 獨立部署 指令碼 deploy_single.sh 本質上都是透過呼叫 util/deploy_util.sh 指令碼來完成部署。區別是 deploy_all.sh 指令碼執行時,自帶 -m,-w,-f 引數。檢視部署指令碼引數bash util/deploy_util.sh -h
[root@localhost tra]# bash util/deploy_util.sh -h============================================================================================[INFO] Current deploy root dir : [ /root/tra/util ]Usage:deploy_util.sh [-k] [-m] [-w] [-f] [-M 3306] [-W 5002] [-B 5020] [-S 5021] [-d] [-g] [-i fiscoorg] [-t] [-p] [-D] [-h]-k Pull images from Docker hub.-m Deploy a MySQL instance with Docker.-w Deploy a WeBASE-Front service.-f Deploy a 4 nodes FISCO-BCOS service.-M Listen port of MySQL\, default 3306.-W Listen port of WeBASE-Front\, default 5002.-B Listen port of Truora-Web\, default 5020.-S Listen port of Truora-Service\, default 5021.-d Install dependencies during deployment.-g Use guomi.-i Organization of docker images\, default fiscoorg.-t Use [dev] tag for images of Truora-Service and Truora-Web. Only for test.-p Pull [dev] latest for images of Truora-Service and Truora-Web. Only works when option [-t] is on.-D Set log level of Truora to [ DEBUG ]\, default [ INFO ].-h Show help info.
那麼結合上述的資料我們可以得到以下這個命令:
可以在不使用-m 該引數時,不部署 MySQL。需要在部署時輸入 MySQL 資訊
bash util/deploy_util.sh -w -f
結果如下:
5. 等待指令碼自動完成安裝過程
Enter MySQL IP, default: 127.0.0.1 ?Enter MySQL port, default: 3306 ?Enter MySQL user, default: truora ?Enter MySQL password, default: defaultPassword ?[INFO] Deploy Truora of version: [ v1.0.0 ].==============================================================[INFO] Generate deploy files success:FISCO-BCOS : [ v2.6.0 ]WeBASE-Front : [ v1.4.2 ]Truora : [ v1.0.0 ]============================================================================================[INFO] Pull Docker images.[INFO] Docker image [ docker/compose:1.27.4 ] not exists!!Pull image [ docker/compose:1.27.4 ] from cdn!!--2021-02-03 17:15:47-- https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBankBlockchain/Truora/docker/official/docker-compose-1.27.4.tar 正在解析主機 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)… 183.56.147.86\, 183.56.147.92\, 183.56.147.109\, …正在連線 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)|183.56.147.86|:443… 已連線。已發出 HTTP 請求,正在等待迴應… 200 OK長度:81187328 (77M) [application/x-tar]正在儲存至 : “docker-compose-1.27.4.tar”44% [==================================================================> ] 36\,279\,46% [====================================================================> ] 37\,408\,47% [======================================================================> ] 38\,620\,49% [=========================================================================> ] 39\,896100%[==========================================================================================================================>] 81\,187\,328 7.29MB/s 用時 20s2021-02-03 17:16:07 (3.81 MB/s) - 已儲存 “docker-compose-1.27.4.tar” [81187328/81187328])beee9f30bc1f: Loading layer [==================================================>] 5.862MB/5.862MB96d878488b7a: Loading layer [==================================================>] 4.096kB/4.096kB03b31e131feb: Loading layer [==================================================>] 65.83MB/65.83MB6db2e0a439c1: Loading layer [==================================================>] 9.468MB/9.468MBLoaded image: docker/compose:1.27.4[INFO] Docker image [ fiscoorg/webase-front:v1.4.2 ] not exists!!Pull image [ fiscoorg/webase-front:v1.4.2 ] from cdn!!--2021-02-03 17:16:11-- https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBankBlockchain/Truora/docker/WeBASE/webase-front-v1.4.2.tar 正在解析主機 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)… 183.56.147.92\, 183.56.147.109\, 183.56.147.89\, …正在連線 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)|183.56.147.92|:443… 已連線。已發出 HTTP 請求,正在等待迴應… 200 OK長度:588814336 (562M) [application/x-tar]正在儲存至 : “webase-front-v1.4.2.tar”100%[==========================================================================================================================>] 588\,814\,336 2.68MB/s 用時 1m 52s2021-02-03 17:18:04 (5.00 MB/s) - 已儲存 “webase-front-v1.4.2.tar” [588814336/588814336])805802706667: Loading layer [==================================================>] 65.61MB/65.61MB3fd9df553184: Loading layer [==================================================>] 15.87kB/15.87kB7a694df0ad6c: Loading layer [==================================================>] 3.072kB/3.072kB9c061fb764cc: Loading layer [==================================================>] 364.4MB/364.4MB2851c4990935: Loading layer [==================================================>] 94.14MB/94.14MBf73ead30a09a: Loading layer [==================================================>] 52.58MB/52.58MB83027d069e4c: Loading layer [==================================================>] 11.99MB/11.99MBLoaded image: fiscoorg/webase-front:v1.4.2[INFO] Docker image [ fiscoorg/fiscobcos:v2.6.0 ] not exists!!Pull image [ fiscoorg/fiscobcos:v2.6.0 ] from cdn!!--2021-02-03 17:18:57-- https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBankBlockchain/Truora/docker/FISCO-BCOS/fiscobcos-v2.6.0.tar 正在解析主機 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)… 183.56.147.109\, 183.56.147.89\, 183.56.147.85\, …正在連線 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)|183.56.147.109|:443… 已連線。已發出 HTTP 請求,正在等待迴應… 200 OK長度:135297024 (129M) [application/x-tar]正在儲存至 : “fiscobcos-v2.6.0.tar”100%[==========================================================================================================================>] 135\,297\,024 3.21MB/s 用時 38s2021-02-03 17:19:35 (3.36 MB/s) - 已儲存 “fiscobcos-v2.6.0.tar” [135297024/135297024])7ef368776582: Loading layer [==================================================>] 65.61MB/65.61MB83f4287e1f04: Loading layer [==================================================>] 991.7kB/991.7kBd3a6da143c91: Loading layer [==================================================>] 15.87kB/15.87kB8682f9a74649: Loading layer [==================================================>] 3.072kB/3.072kBd99c7442c0d5: Loading layer [==================================================>] 41.45MB/41.45MB58e8a5a9a5d3: Loading layer [==================================================>] 27.2MB/27.2MBLoaded image: fiscoorg/fiscobcos:v2.6.0[INFO] Docker image [ fiscoorg/truora-web:v1.0.0 ] not exists!!Pull image [ fiscoorg/truora-web:v1.0.0 ] from cdn!!--2021-02-03 17:19:39-- https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBankBlockchain/Truora/docker/truora/truora-web-v1.0.0.tar 正在解析主機 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)… 183.56.147.92\, 183.56.147.89\, 183.56.147.88\, …正在連線 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)|183.56.147.92|:443… 已連線。已發出 HTTP 請求,正在等待迴應… 200 OK長度:24883200 (24M) [application/x-tar]正在儲存至 : “truora-web-v1.0.0.tar”100%[==========================================================================================================================>] 24\,883\,200 6.74MB/s 用時 3.6s2021-02-03 17:19:43 (6.52 MB/s) - 已儲存 “truora-web-v1.0.0.tar” [24883200/24883200])0fcbbeeeb0d7: Loading layer [==================================================>] 5.881MB/5.881MB816ad72dad7c: Loading layer [==================================================>] 17.47MB/17.47MBc4e38c3b23b3: Loading layer [==================================================>] 3.072kB/3.072kBf07d8248da8b: Loading layer [==================================================>] 4.096kB/4.096kBaa9a1fbe2932: Loading layer [==================================================>] 3.584kB/3.584kB474c1b7b4d85: Loading layer [==================================================>] 4.096kB/4.096kB2ccbf75f1d47: Loading layer [==================================================>] 5.12kB/5.12kB089df5f82d6c: Loading layer [==================================================>] 1.471MB/1.471MBLoaded image: fiscoorg/truora-web:v1.0.0[INFO] Docker image [ fiscoorg/truora-service:v1.0.0 ] not exists!!Pull image [ fiscoorg/truora-service:v1.0.0 ] from cdn!!--2021-02-03 17:19:45-- https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBankBlockchain/Truora/docker/truora/truora-service-v1.0.0.tar 正在解析主機 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)… 183.56.147.89\, 183.56.147.88\, 183.56.147.86\, …正在連線 osp-1257653870.cos.ap-guangzhou.myqcloud.com (osp-1257653870.cos.ap-guangzhou.myqcloud.com)|183.56.147.89|:443… 已連線。已發出 HTTP 請求,正在等待迴應… 200 OK長度:630119424 (601M) [application/x-tar]正在儲存至 : “truora-service-v1.0.0.tar”100%[==========================================================================================================================>] 630\,119\,424 2.11MB/s 用時 2m 55s2021-02-03 17:22:40 (3.44 MB/s) - 已儲存 “truora-service-v1.0.0.tar” [630119424/630119424])c95d2191d777: Loading layer [==================================================>] 65.62MB/65.62MB27502392e386: Loading layer [==================================================>] 15.87kB/15.87kB9f10818f1f96: Loading layer [==================================================>] 3.072kB/3.072kB2f7fbf8d5df9: Loading layer [==================================================>] 410.7MB/410.7MB043ffd2c9b1c: Loading layer [==================================================>] 1.536kB/1.536kBfc063d5ab031: Loading layer [==================================================>] 102.3MB/102.3MB20d7207b0483: Loading layer [==================================================>] 35.46MB/35.46MB5ac5a77392db: Loading layer [==================================================>] 15.96MB/15.96MBLoaded image: fiscoorg/truora-service:v1.0.0============================================================================================[INFO] Generate START and STOP shell scripts.[INFO] Deploy Truora service SUCCESS!! Try [ bash start.sh ] and Enjoy!![INFO] Start:[ bash start.sh ][INFO] Stop :[ bash stop.sh ]
如果一鍵部署指令碼 deploy_all.sh 執行成功後顯示 Deploy Truora service SUCCESS!! ,表示部署成功。
服務啟停使用 bash start.sh 啟動 Truora 服務。使用 bash stop.sh 停止服務。在啟動時,指令碼會依次啟動服務,並檢測服務啟動結果。
[root@localhost tra]# bash start.sh==============================================================Root dir: [/root/tra]Start FISCO-BCOS.Creating nodes127.0.0.1node0 … doneCreating nodes127.0.0.1node2 … doneCreating nodes127.0.0.1node1 … doneCreating nodes127.0.0.1node3 … done[INFO] Wait for FISCO-BCOS nodes start up…[INFO] FISCO-BCOS nodes start success.Start WeBASE-Front.Creating webase-front … done[INFO] Wait for WeBASE-Front start up on port:[5002]…[INFO] WeBASE-Front start success.String Truora..Creating truora-service … doneCreating truora-web … done[INFO] Wait for Truora-Service start up on port:[5021]…[INFO] Truora-Service start success.[INFO] Wait for Truora-Web start up on port:[5020]…[INFO] Truora-Web start SUCCESS.Truora service start up SUCCESS !!
如果提示 Truora service start up SUCCESS !!,表示 Truora 服務啟動成功。
訪問服務Truora 服務啟動成功後,開啟瀏覽器,輸入 http://[IP]:5020,我們這裡是:http://192.168.119.133:5020,訪問 Truora-Web 服務,成功後如下圖所示:
總結Truora 第一篇系列文章我們重點講解《一鍵部署 Truora》,透過上面的文章我們可以知道在一鍵安裝前伺服器上已經安裝了 mysql ,那麼我們就需要調整我們的一鍵部署命令及引數了。總體來講還是比較簡單,總結為:下載指令碼、執行指令碼、啟動服務、訪問檢查服務。