文章目錄
- 前言
- 一、思路
- 一、版本及兼容
- WeBASE v1.5.3
- 三、安裝步驟
- 1.在有網路的電腦上下載相關的安裝包,如何上傳到沒有網路的服務器上
- 1.1.下載WeBase v1.5.3相關的安裝包
- 1.2.把下載的安裝包上傳到沒有網路的服務器中
- 2.配置安裝WeBASE-Sign
- 2.1.重點修改資料庫相關配置,需要提前創建好資料庫
- 2.2.進入webase-sign的檔案夾.修改conf/application.yml
- 2.3.給運行權限,啟動服務
- 3.配置安裝WeBASE-Front
- 3.1.將節點所在目錄nodes/${ip}/sdk下的所有檔案拷貝到當前conf目錄
- 3.2.如果在企業部署中使用WeBASE-Front,必須配置下文中的keyServer,用于連接WeBASE-Sign服務
- 3.3.給運行權限,啟動服務
- 3.4.測驗
- 4.配置安裝WeBASE-Node-Manager
- 4.1.進入資料庫控制臺創建webase-node-mgr的資料庫
- 4.2.修改/home/bcos/webase-node-mgr/script/webase.sh檔案配置如下(重點改資料庫鏈接配置):
- 4.3.在/home/bcos/webase-node-mgr/script目錄下給權限,并執行腳本匯入資料庫檔案
- 4.4.進入webase-node-mgr的檔案夾.修改conf/application.yml(重點修改資料庫連接配置和IP)
- 4.5.給運行權限,啟動服務
- 5.配置安裝WeBASE-Web
- 5.1.WeBASE-Web是基于vue的web,所以只需配置nginx即可跑起來
- 5.2.重啟nginx后,可以進行測驗,
- 總結
前言
WeBASE(WeBank Blockchain Application Software Extension) 是在區塊鏈應用和FISCO-BCOS節點之間搭建的一套通用組件,圍繞交易、合約、密鑰管理,資料,可視化管理來設計各個模塊,開發者可以根據業務所需,選擇子系統進行部署,WeBASE屏蔽了區塊鏈底層的復雜度,降低開發者的門檻,大幅提高區塊鏈應用的開發效率,包含節點前置、節點管理、交易鏈路,資料匯出,Web管理平臺等子系統, WeBASE四個服務的部署架構如下圖:節點前置需要和區塊鏈節點部署在同一臺機器,簽名服務可以和節點前置分開部署,也可以同機部署;節點管理和WeBASE管理平臺可以同機部署,也可以分開部署,在企業生產環境,為了容災往往會在多個節點上部署節點前置,也會部署多個簽名服務、節點管理和WeBASE管理臺,本文主要講解如何在沒有網路的服務器中部署WeBASE,
一、思路
先在在有網路的電腦上進行安裝包的下載,然后上傳至無網路的系統之中完成部署,
需要提前準備的環境(離線安裝以下環境教程點這里):
| 環境 | 版本 |
|---|---|
| Java | JDK8或以上版本 |
| MySQL | MySQL-5.6或以上版本 |
| Nginx | nginx1.6或以上版本(本文選擇1.17.8,不是硬性要求) |
所以我們要安裝webase之前得先離線安裝上表中的環境,
一、版本及兼容
WeBASE v1.5.3
WeBASE v1.5.3 版本支持 FISCO-BCOS 2.5.x及以上版本,WeBASE 子系統推薦使用下表的版本搭配,FISCO-BCOS 推薦使用 FISCO BCOS 2.8.0版本,
| WeBASE子系統名稱 | 配套版本地址 | FISCO-BCOS 2.X.X |
|---|---|---|
| 節點前置服務 | WeBASE-Front Release v1.5.3 | FISCO BCOS 2.8.0 |
| 節點管理服務 | WeBASE-Node-Manager Release v1.5.3 | FISCO BCOS 2.8.0 |
| WeBASE管理平臺 | WeBASE-Web Release v1.5.3 | FISCO BCOS 2.8.0 |
| 簽名服務 | WeBASE-Sign Release v1.5.3 | FISCO BCOS 2.8.0 |
| 交易服務 | WeBASE-Transaction Release v1.4.0 | FISCO BCOS 2.8.0 |
更多兼容版本見:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/ChangeLOG.html
三、安裝步驟
1.在有網路的電腦上下載相關的安裝包,如何上傳到沒有網路的服務器上
PS:有的服務器可能需要用專業的防泄密盤進行傳輸
1.1.下載WeBase v1.5.3相關的安裝包
官方CDN加速下載地址:
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.3/webase-front.zip
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.3/webase-sign.zip
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.3/webase-node-mgr.zip
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.3/webase-web.zip




1.2.把下載的安裝包上傳到沒有網路的服務器中

2.配置安裝WeBASE-Sign
2.1.重點修改資料庫相關配置,需要提前創建好資料庫
[root@localhost webase-sign]# mysql -uroot -p
Enter password:
mysql> create database webasesign;
Query OK, 1 row affected (0.01 sec)
2.2.進入webase-sign的檔案夾.修改conf/application.yml
server:
# 本工程服務埠,埠被占用則修改
port: 5004
context-path: /WeBASE-Sign
spring:
datasource:
# 資料庫連接資訊
url: jdbc:mysql://127.0.0.1:3306/webasesign?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8
# 資料庫用戶名
username: dbUsername
# 資料庫密碼
password: dbPassword
driver-class-name: com.mysql.cj.jdbc.Driver
constant:
# aes加密key(16位),如啟用,各互聯的子系統的加密key需保持一致
aesKey: EfdsW23D23d3df43
2.3.給運行權限,啟動服務
[root@localhost webase-front]# cd ../webase-sign
[root@localhost webase-sign]# chmod +x *.sh
[root@localhost webase-sign]# ./start.sh
===============================================================================================
Starting Server com.webank.webase.sign.Application Port 5004 ...PID(4175) [Starting]. Please check message through the log file (default path:./log/).
===============================================================================================
備注:服務行程起來后,需通過日志確認是否正常啟動,出現以下內容表示正常;如果服務出現例外,確認修改配置后,重啟提示服務行程在運行,則先執行stop.sh,再執行start.sh,
[root@localhost webase-sign]# tail -f log/WeBASE-Sign.log
2021-10-19 11:43:46.497 [main] INFO SimpleUrlHandlerMapping() - Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2021-10-19 11:43:46.986 [main] INFO AnnotationMBeanExporter() - Registering beans for JMX exposure on startup
2021-10-19 11:43:47.003 [main] INFO DefaultLifecycleProcessor() - Starting beans in phase 2147483647
2021-10-19 11:43:47.003 [main] INFO DocumentationPluginsBootstrapper() - Context refreshed
2021-10-19 11:43:47.063 [main] INFO DocumentationPluginsBootstrapper() - Found 1 custom documentation plugin(s)
2021-10-19 11:43:47.106 [main] INFO ApiListingReferenceScanner() - Scanning for api listing references
2021-10-19 11:43:47.431 [main] INFO ScheduledAnnotationBeanPostProcessor() - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
2021-10-19 11:43:47.546 [main] INFO TomcatEmbeddedServletContainer() - Tomcat started on port(s): 5004 (http)
2021-10-19 11:43:47.550 [main] INFO Application() - Started Application in 9.582 seconds (JVM running for 11.343)
2021-10-19 11:43:47.550 [main] INFO Application() - main run success...
查看日志
全量日志:tail -f log/WeBASE-Sign.log
錯誤日志:tail -f log/WeBASE-Sign-error.log
3.配置安裝WeBASE-Front
注意: 將節點所在目錄nodes/${ip}/sdk下的所有檔案拷貝到當前conf目錄,供SDK與節點建立連接時使用(SDK會自動判斷是否為國密,且是否使用國密SSL)
- 鏈的sdk目錄包含了ca.crt, sdk.crt, sdk.key和gm檔案夾,gm檔案夾包含了國密SSL所需的證書
- 拷貝命令可使用cp -r nodes/${ip}/sdk/* ./conf/
- 注,只有在建鏈時手動指定了-G(大寫)時節點才會使用國密SSL
3.1.將節點所在目錄nodes/${ip}/sdk下的所有檔案拷貝到當前conf目錄


3.2.如果在企業部署中使用WeBASE-Front,必須配置下文中的keyServer,用于連接WeBASE-Sign服務
修改前
# server version
version: v1.5.3
spring:
datasource:
url: jdbc:h2:file:../h2/webasefront;DB_CLOSE_ON_EXIT=FALSE
databaseName: db
driverClassName: org.h2.Driver
serverName:
username:
password:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
database: H2
openInView: false
show_sql: false
generate-ddl: true
hibernate:
ddl-auto: update
naming-strategy: org.hibernate.cfg.EJB3NamingStrategy
session:
events:
log: false
properties:
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: false
h2:
console:
enabled: true
path: /console
settings:
web-allow-others: false
trace: true
rabbitmq:
host: 127.0.0.1
port: 5672
username:
password:
virtual-host:
publisher-confirm: true
ssl:
enabled: false
http:
multipart:
max-request-size: 30MB # request max size
max-file-size: 20MB # single file size
server:
port: 5002
context-path: /WeBASE-Front
connection-timeout: 30000
tomcat:
max-threads: 200
max-connections: 10000
sdk:
corePoolSize: 50
maxPoolSize: 100
queueCapacity: 100
ip: 127.0.0.1
channelPort: 20200
certPath: conf # cert path of relative or absolute
logging:
config: classpath:log4j2.xml
level:
com.webank.webase.front: info
constant:
keyServer: 127.0.0.1:5004 # webase-sign服務的IP:Port(單個)
nodePath: /fisco/nodes/127.0.0.1/node0 # node's absolute path to read configuration and monitor node's log
aesKey: EfdsW23D23d3df43
transMaxWait: 30
monitorDisk: /
monitorEnabled: true
http_read_timeOut: 100000
http_connect_timeOut: 100000
# event sync map task (unit: ms)
eventRegisterTaskFixedDelay: 5000
syncEventMapTaskFixedDelay: 60000
# sync stat log data task (unit: ms)
syncStatLogTime: 5000
syncStatLogCountLimit: 10000
statLogEnabled: false
# get event callback wait (s)
eventCallbackWait: 4
修改后:
# server version
version: v1.5.3
spring:
datasource:
url: jdbc:h2:file:../h2/webasefront;DB_CLOSE_ON_EXIT=FALSE
databaseName: db
driverClassName: org.h2.Driver
serverName:
username:
password:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
database: H2
openInView: false
show_sql: false
generate-ddl: true
hibernate:
ddl-auto: update
naming-strategy: org.hibernate.cfg.EJB3NamingStrategy
session:
events:
log: false
properties:
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: false
h2:
console:
enabled: true
path: /console
settings:
web-allow-others: false
trace: true
rabbitmq:
host: 127.0.0.1
port: 5672
username:
password:
virtual-host:
publisher-confirm: true
ssl:
enabled: false
http:
multipart:
max-request-size: 30MB # request max size
max-file-size: 20MB # single file size
server:
port: 5002
context-path: /WeBASE-Front
connection-timeout: 30000
tomcat:
max-threads: 200
max-connections: 10000
sdk:
corePoolSize: 50
maxPoolSize: 100
queueCapacity: 100
ip: 127.0.0.1
channelPort: 20200
certPath: conf # cert path of relative or absolute
logging:
config: classpath:log4j2.xml
level:
com.webank.webase.front: info
constant:
keyServer: 127.0.0.1:5004 # webase-sign服務的IP:Port(單個)
nodePath: /home/bcos/nodes/127.0.0.1/node0 # node's absolute path to read configuration and monitor node's log
aesKey: EfdsW23D23d3df43
transMaxWait: 30
monitorDisk: /
monitorEnabled: true
http_read_timeOut: 100000
http_connect_timeOut: 100000
# event sync map task (unit: ms)
eventRegisterTaskFixedDelay: 5000
syncEventMapTaskFixedDelay: 60000
# sync stat log data task (unit: ms)
syncStatLogTime: 5000
syncStatLogCountLimit: 10000
statLogEnabled: false
# get event callback wait (s)
eventCallbackWait: 4
3.3.給運行權限,啟動服務
// 給運行權限
[root@localhost webase-front]# chmod +x *.sh
// 啟動服務
[root@localhost webase-front]# ./start.sh
===============================================================================================
Server com.webank.webase.front.Application Port 5002 ...PID(3984) [Starting]. Please check message through the log file (default path:./log/).
===============================================================================================
3.4.測驗
訪問地址:http://192.168.119.132:5002/WeBASE-Front/#/home

能正常顯示節點的數量說明服務正常
4.配置安裝WeBASE-Node-Manager
4.1.進入資料庫控制臺創建webase-node-mgr的資料庫
[root@localhost webase-front]# mysql -uroot -p
Enter password:
mysql> create database nodemgr;
Query OK, 1 row affected (0.01 sec)
4.2.修改/home/bcos/webase-node-mgr/script/webase.sh檔案配置如下(重點改資料庫鏈接配置):
#!/usr/bin/env bash
echo -e "\n init start...."
IP=${1}
PORT=${2}
if [[ ! $IP || ! $PORT ]] ; then
echo "Usage: sh ${0} ip port"
echo "eg: sh ${0} 127.0.0.1 8501"
exit 1
fi
#dbUser
DBUSER="defaultAccount"
#dbPass
PASSWD="defaultPassword"
#dbName
DBNAME="webasenodemanager"
#connect to database then execute init
cat webase-sql.list | mysql --user=$DBUSER --password=$PASSWD --host=$IP --database=$DBNAME --port=$PORT --default-character-set=utf8;
if [ "$?" == "0" ]; then
echo -e "init success... \n"
else
echo -e "init fail... \n"
fi
exit
4.3.在/home/bcos/webase-node-mgr/script目錄下給權限,并執行腳本匯入資料庫檔案
[root@localhost webase-node-mgr]# cd script/
[root@localhost script]# ls
deploy upgrade webase-ddl.sql webase-dml.sql webase.sh webase-sql.list
[root@localhost script]# chmod +x *.sh
[root@localhost script]# ./webase.sh 127.0.0.1 3306
init start....
mysql: [Warning] Using a password on the command line interface can be insecure.
init success...
[root@localhost script]#
4.4.進入webase-node-mgr的檔案夾.修改conf/application.yml(重點修改資料庫連接配置和IP)
# server version
version: v1.5.3
#server config
server:
port: 5001
servlet:
context-path: /WeBASE-Node-Manager
#mybatis config
mybatis:
configuration:
map-underscore-to-camel-case: true
typeAliasesPackage: com.webank.webase.node.mgr
mapperLocations: classpath:mapper/*.xml
# database connection configuration
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/nodemanagerdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
username: nodemanagerdb
password: irsHBjmMJ74W3ryk
initialSize: 10
minIdle: 5
maxActive: 30
aop:
proxy-target-class: true
#log config
logging:
config: classpath:log/log4j2.xml
level:
com.webank.webase.node.mgr: info
#constants
constant:
###http request
# login's authorization whether enable, if false, default login as `admin` account
isUseSecurity: true
# verification code expire time (s)
verificationCodeMaxAge: 300
# if disabled as false, code would be constant value
enableVerificationCode: true
# verification code constant value, only when enableVerificationCode is false works
verificationCodeValue: "8888"
# auth token code expire time (s)
authTokenMaxAge: 3600
ignoreCheckFront: /account/login,/account/pictureCheckCode,/login,/user/privateKey,/front/new,/front/find,,/group/generate,/group/start
###front http request
frontUrl: http://%1s:%2d/WeBASE-Front/%3s
httpTimeOut: 5000
contractDeployTimeOut: 30000
isPrivateKeyEncrypt: true
maxRequestFail: 3
sleepWhenHttpMaxFail: 60000
###common
developerModeEnable: true
deployedModifyEnable: true
isDeleteInfo: true
transRetainMax: 10000
deleteInfoCron: "0 0/1 * * * ?"
statisticsTransDailyCron: "0 0/1 * * * ?"
resetGroupListCycle: 600000
groupInvalidGrayscaleValue: 1M # y:year, M:month, d:day of month, h:hour, m:minute, n:forever valid
notSupportFrontIp:
###application integration
# app request timestamp timeout (ms)
appRequestTimeOut: 300000
appStatusCheckCycle: 3000
###block info (pulling data from chain)
isBlockPullFromZero: false
pullBlockInitCnts: 1000
pullBlockSleepTime: 200
pullBlockTaskFixedDelay: 30000
blockRetainMax: 10000
###transaction monitor
transMonitorTaskFixedRate: 60000 #How long does it take to start the next task after the end (second)
analysisSleepTime: 200
monitorInfoRetainMax: 10000
isMonitorIgnoreUser: false
isMonitorIgnoreContract: false
monitorUnusualMaxCount: 20
###alert mail monitor task interval: 5mins unit: ms
auditMonitorTaskFixedDelay: 300000
nodeStatusMonitorTaskFixedDelay: 60000 #must larger than @pullBlockTaskFixedDelay
certMonitorTaskFixedDelay: 300000
permitUrlArray: /account/login,/account/pictureCheckCode,/login,/user/privateKey/**,/config/encrypt,/config/version,/front/refresh,/api/*
###interval to async refresh group list locally
resetGroupListInterval: 15000
###interval block statistic, unit: ms
statBlockRetainMax: 100000
statBlockFixedDelay: 10000
statBlockPageSize: 20 # block stat data to pull in one time
enableExternalFromBlock: true # enable record account and contract from block
#### 1.4.0 visual deploy
#### deployType 部署方式:
# 0, 先使用 build_chain.sh 部署鏈并啟用 WeBASE-Front 服務,然后手動添加前置;
# 1, 使用可視化部署, 需要參考WeBASE檔案填寫下面引數
deployType: 0
#### if deployType = 0, ignore below properties ####
# 鏡像名
dockerRepository: "fiscoorg/fisco-webase"
# WeBASE-Sign 訪問地址,供節點前置訪問,不能填寫localhost或127.0.0.1
webaseSignAddress: "127.0.0.1:5004"
# 可視化操作的后臺超時時間 (unit: ms),若機器較慢,可動態設定超時時間
execDockerCheckTimeout: 55000
execHostCheckTimeout: 55000
execHostCheckPortTimeout: 50000
execHostInitTimeout: 300000
execHostConfigTimeout: 40000
execBuildChainTimeout: 40000
dockerRestartPeriodTime: 30000
execShellTimeout: 600000
execScpTimeout: 10000
execAddNodeTimeout: 40000
# runDockerSleepTime: 600000
#### if deployType = 0, ignore upper properties ####
sdk:
# 加密型別:0: 非國密; 1: 國密
## 可視化部署時,此配置將決定部署國密或非國密鏈
## 國密與非國密鏈的私鑰、合約資料不兼容
encryptType: 0
# executor config for async pulling data from chain
executor:
corePoolSize: 10
maxPoolSize: 20
queueSize: 50
threadNamePrefix: "node-mgr-async-"
# scheduler config for sync scheduled task
scheduler:
poolSize: 30
threadNamePrefix: "node-mgr-task-"
awaitTerminationSeconds: 600
waitForTasksToCompleteOnShutdown: true
4.5.給運行權限,啟動服務
[root@localhost webase-node-mgr]# chmod +x *.sh
[root@localhost webase-node-mgr]# ./start.sh
===============================================================================================
Server com.webank.webase.node.mgr.Application Port 5001 ...PID(4353) [Starting]. Please message check through the log file (default path:./log/).
===============================================================================================
備注:服務行程起來后,需通過日志確認是否正常啟動,出現以下內容表示正常;如果服務出現例外,確認修改配置后,重啟提示服務行程在運行,則先執行stop.sh,再執行start.sh,
…
Application() - main run success.
查看日志
全量日志:tail -f log/WeBASE-Node-Manager.log
錯誤日志:tail -f log/WeBASE-Node-Manager-error.log
5.配置安裝WeBASE-Web
5.1.WeBASE-Web是基于vue的web,所以只需配置nginx即可跑起來
PS: 因為我們的服務器已有nginx,可在原組態檔nginx.conf增加一個server:
upstream node_mgr_server{
server 192.168.119.132:5001; # 節點管理服務ip和埠
}
server {
listen 5000 default_server; # 前端埠(埠需要開通策略且不能被占用)
server_name 192.168.119.132; # 服務器ip,也可配置為域名
location / {
root /home/bcos/webase-web; # 前端檔案路徑(檔案需要有權限訪問)
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
location /mgr {
proxy_pass http://node_mgr_server/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
5.2.重啟nginx后,可以進行測驗,
訪問http://192.168.119.132:5000/#/home

默認用戶名:admin
默認密碼:Abcd1234

檢查后發現正常,后續配置相關配置即可,本文重點是離線安裝而不是配置,所以不做過多的演示!
有需要的可以參考官方的檔案:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Console-Suit/index.html#id16
總結
無網路離線安裝部署FISCO BCOS 中間件webase平臺,還是比較簡單 ,大家可以安裝教程一步一步的操作,希望可以幫助有需要的小伙伴快速入坑!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/335257.html
標籤:區塊鏈
上一篇:監聽Solidity合約事件
