Fisco-Bcos2.X+WeBase的搭建

因为需要搭建Fisco-Bcos和Webase进行业务开发,但是按照官方技术文档中一键搭建的方法以及docker中搭建的方法,均无法搭建成功。主要存在部分服务无法启动的问题,所以才有了本文。本文分为两个部分,前半部分为Fisco-Bcos的搭建,后半部分为Console和Webase的搭建。

官方文档

Fisco-Bcos:https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/introduction.html

WeBase:https://webasedoc.readthedocs.io/zh-cn/latest/docs/WeBASE-Front/README.htmlCode language: JavaScript (javascript)

1.Fisco-Bcos2.X的安装和部署

1.1 ubuntu基础环境的安装

(1)Ubuntu使用20.04以上的版本,然后再虚拟机中进行安装。

(2)等待安装完成之后,开启ssh服务,使用ssh服务连接到系统中,安装基本的环境。

sudo apt-get update
sudo apt-get install -y openssl curl wget unzip git openjdk-11-jdkCode language: JavaScript (javascript)

(3)安装完成之后,系统自带java的环境变量。如果使用jdk包进行解压安装需要创建java环境变量,创建环境变量的代码命令如下。

sudo gedit /etc/profile
export JAVA_HOME=java地址
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#重载一下 
source /etc/profileCode language: PHP (php)

(4)如果已经存在多个版本,那么就需要进行切换,可以使用alternatives的版本管理进行不同的切换。

sudo update-alternatives --config java

(5)切换完成之后,成功切换到java。

java --version

1.2 Fisco-Bcos的部署

 (1)下载建链脚本,  创建工作目录并使用下载build_chain.sh。

    <code>mkdir -p ~/fisco && cd ~/fisco curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x build_chain.sh</code>Code language: HTML, XML (xml)

    (2)  执行刚才创建的脚本,开始启动四个节点的创建。本次使用开发环境进行配置,所以在一台机器上同时模拟了四个节点。

    bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545Code language: CSS (css)
    • 成功标志:看到 All nodes start successfully 提示,并在当前目录生成 nodes/127.0.0.1 文件夹。
    • 下载fisco-bcos:如果下载太慢,可以手动下载然后本地使用-e参数指定本地下载的文件。

    (3)  安装完成之后启动节点。

    bash nodes/127.0.0.1/start_all.sh

    (4)  验证运行状态,首先检查进程是否正常常驻。

    ps -ef | grep fisco-bcos

    (5)  查看节点之间是否成功握手(4个节点互相连接,connected count 应当为 3)。

    tail -f nodes/127.0.0.1/node0/log/log* | grep "connected count"Code language: JavaScript (javascript)

    2.配置 FISCO BCOS 控制台 (Console)

    (1)下载并解压

    mkdir -p ~/fisco && cd ~/fisco && curl -#LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh
     bash download_console.shCode language: PHP (php)

    (2)  配置证书与连接文件

    控制台需要通过 SSL 证书接入节点的 Channel 端口,并且将模板配置文件修改回来:

    cp -r nodes/127.0.0.1/sdk/* console/conf
    cp console/conf/config-example.toml  console/conf/config.toml

    (3)  启动并交互

    cd ~/fisco/console && bash start.shCode language: JavaScript (javascript)

    3.WeBASE的安装

    WeBASE是在区块链应用和FISCO-BCOS节点之间搭建的一套通用组件。围绕交易、合约、密钥管理,数据,可视化管理来设计各个模块,开发者可以根据业务所需,选择子系统进行部署。WeBASE屏蔽了区块链底层的复杂度,降低开发者的门槛,大幅提高区块链应用的开发效率,包含节点前置、节点管理、交易链路,数据导出,Web管理平台等子系统。

    3.1 节点前置服务Webase-front

    WeBASE-Front是和FISCO-BCOS节点配合使用的一个子系统。此分支支持FISCO-BCOS 2.0以上版本,集成web3sdk,对接口进行了封装,可通过HTTP请求和节点进行通信。另外,具备可视化控制台,可以在控制台上开发智能合约,部署合约和发送交易,并查看交易和区块详情。还可以管理私钥,对节点健康度进行监控和统计。

    (1)首先设置java环境该节点支持JDK8到JDK14。并且验证JAVA_HOME变量的信息,如果JAVA_HOME环境变量信息存在,则跳过该步骤。如果该变量为空则进行如下的配置。

    首先验证JAVA版本,确保符合要求的信息。

    java --version

    然后验证找到JAVA的实际路径,并且配置环境变量,最后输出验证。

    readlink -f $(which java)
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64Code language: JavaScript (javascript)

    (2)然后下载安装包,并且解压。

    wget https://github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v1.5.5/webase-front.zip
    unzip webase-front.zipCode language: JavaScript (javascript)

    (3)然后进入到webase-front目录,给sh脚本赋予执行权限。

    cd webase-front
    chmod +x ./*sh

    (4)然后把fisco-bcos的证书复制到conf文件夹下,最后启动脚本。

     cp ../nodes/127.0.0.1/sdk/* conf/
     ./start.sh
     ./status.sh
     netstat -lntp | grep 5002

    (5)等待几秒钟后运行检查脚本,发现程序正在运行。并且查看端口发现5002端口已经打开。

    (6)然后在浏览器中访问http://{deployIP}:{5002}/WeBASE-Front,可以成功访问到控制台。

    3.2 节点管理服务WeBASE-Node-Manager

    WeBASE-Node-Manager可以是处理前端页面所有web请求,管理各个节点的状态,管理链上所有智能合约,对区块链的数据进行统计、分析,对异常交易的审计,私钥管理等。

    (1)首先下载安装包,并且解压。

    git clone https://github.com/WeBankBlockchain/WeBASE-Node-Manager.gitCode language: PHP (php)

    (2)然后进入到WeBASE-Node-Manager目录,使用自带的gradlew进行编译。

    cd ~/fisco/WeBASE-Node-Manager
    chmod +x ./gradlew && ./gradlew build -x testCode language: JavaScript (javascript)

    (4)成功编译则跳过该步骤。如果编译的时候,发现没有办法拉取gradlew的时候,可以先从github手动下载,然后修改:~/fisco/WeBASE-Node-Manager/gradle/wrappergradle-wrapper.properties将其gradlew指向下载的本地文件。

    cd ~/fisco/WeBASE-Node-Manager
    wget https://services.gradle.org/distributions/gradle-6.6.1-bin.zip
    vim /home/wh/fisco/WeBASE-Node-Manager/gradle/wrapper/gradle-wrapper.propertiesCode language: JavaScript (javascript)

    (5)编译完成之后进入到dist目录,给所有sh脚本赋予可执行权限。

    (6)进入到数据库准备为服务创建数据库,数据的安装见网络安全运行与维护的3.6.5的使用Centos 7搭建PHP+Mariadb服务器章节。

    其中需要设置mysql的root密码为admin@123

    netstat -lntp | grep 3306
    mysql -u root -p

    (7)登录到数据库然后开始创建数据库。

    mysql -u root -padmin@123
    CREATE DATABASE IF NOT EXISTS webasenodemanager DEFAULT CHARSET utf8 COLLATE utf8_general_ci;Code language: CSS (css)

    (8)然后进入到编译好的script目录,修改数据库名字和数据库用户名密码,如果数据库名字为webasenodemanager,则不用修改数据库名,最后运行脚本注入基础数据。

    cd  dist/script
    sed -i "s/defaultAccount/root/g" webase.sh
    sed -i "s/defaultPassword/admin@123/g" webase.sh
    bash webase.sh 127.0.0.1 3306Code language: JavaScript (javascript)

    (9)回到dist目录,dist目录提供了一份配置模板conf_template,拷贝成conf,然后修改服务配置,官方脚本需要修改运行端口,数据库等,本文保持默认。

    cp -r conf_template conf
    sed -i "s/defaultAccount/root/g" conf/application.yml
    sed -i "s/defaultPassword/admin@123/g" conf/application.ymlCode language: JavaScript (javascript)

    (10)然后运行启动脚本,等待数秒查看运行状态发现服务已经启动,最后查看系统端口发现5001端口已经启动。

     ./start.sh
     ./status.sh
     netstat -lntp | grep 5001

    3.3 WeBASE管理平台

    WeBASE支持FISCO-BCOS 2.0以上版本,支持群组和群组切换,是区块链中间件平台WeBASE管理平台。

    (1)首先下载Webase安装包,然后进入到WeBASE-Web目录,开始下载solc。

    cd ~/fisco
    git clone https://github.com/WeBankBlockchain/WeBASE-Web.git
    cd WeBASE-Web
    bash ./get_solc_js.shCode language: PHP (php)

    (2)如果下载成功则跳过该步骤,如果get_solc_js.sh下载不成功,则手动执行下面的命令进行下载,下载到WeBASE-Web文件夹中。

    curl -<em>#L https</em><em>:</em><em>//github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.0.0/v0.4.25.js -o ./dist/static/js/v0.4.25.js</em>
    curl -<em>#L https</em><em>:</em><em>//github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.0.0/v0.4.25-gm.js -o ./dist/static/js/v0.4.25-gm.js</em>
    curl -<em>#L https</em><em>:</em><em>//github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.0.0/v0.5.2.js -o ./dist/static/js/v0.5.2.js</em>
    curl -<em>#L https</em><em>:</em><em>//github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.0.0/v0.5.2-gm.js -o ./dist/static/js/v0.5.2-gm.js</em>
    curl -<em>#L https</em><em>:</em><em>//github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.0.0/v0.6.10.js -o ./dist/static/js/v0.6.10.js</em>
    curl -<em>#L https</em><em>:</em><em>//github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.0.0/v0.6.10-gm.js -o ./dist/static/js/v0.6.10-gm.js</em>Code language: HTML, XML (xml)

    (3)继续拉取移动端的代码,代码和WeBASE-Web放在同级目录。

    git clone https://github.com/WeBankBlockchain/WeBASE-Web-Mobile.gitCode language: PHP (php)

    (4)使用apt安装nginx,并且设置开机启动。

    sudo apt install nginx
    sudo systemctl enable nginx
    sudo systemctl restart nginx

    (5)然后继续修改配置,在docs目录下有配置文件nginx.conf,修改完后替换安装的nginx的配置文件nginx.conf。

    cd docs/
    <em># 修改服务器ip,也可以使用域名</em>
    sed -i "s%127.0.0.1%192.168.90.15<em>%g</em>" docs/nginx.conf
    <em># 修改静态文件路径(文件需要有权限访问)</em>
    sed -i "s%/data/WeBASE-Web/dist%/home/wh/fisco/WeBASE-Web/dist<em>%g</em>" docs/nginx.conf
    <em># 节点管理服务ip和端口</em>
    sed -i "s%10.0.0.1:5001%127.0.0.1<em>%g</em>" docs/nginx.conf
    #修改节点的日志路径为绝对路径
    sed -i "s%error_log  log/error.log;%error_log  /var/log/nginx/error.log;<em>%g</em>" docs/nginx.conf
    sed -i "s%pid        log/nginx.pid;%pid        /run/nginx.pid;<em>%g</em>" docs/nginx.conf
    sed -i "s%access_log  log/access.log ;%access_log  /var/log/nginx/access.log;<em>%g</em>" docs/nginx.confCode language: HTML, XML (xml)

    (6)全部修改完成之后,将该nginx.conf文件复制到/etc/nginx/服务中。

    sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
    sudo cp docs/nginx.conf /etc/nginx/

    (7)最后重启nginx服务,服务正常启动,并且使用浏览器访问http://{deployIP}:{5000},可以成功访问。

    sudo systemctl restart nginx
    netstat -lntp | grep 5000

    (8)使用admin/Abcd1234则可以成功登录到后台。

    3.4 WeBASE-Sign服务

    本系统为签名服务子系统。功能:管理公私钥、对数据进行签名。

    (1)首先下载安装包,然后进入到目录,使用自带的gradlew进行编译。

    cd ~/fisco
    git clone https://github.com/WeBankBlockchain/WeBASE-Sign.git
    cd WeBASE-Sign
    chmod +x ./gradlew && ./gradlew build -x testCode language: PHP (php)

    (2)然后登录数据库创建基本webasesigin数据库。

    mysql -u root -padmin@123
    CREATE DATABASE IF NOT EXISTS webasesign DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
     show databases;Code language: CSS (css)

    (3)进入到编译好的dist目录,根据配置模板生成一份实际配置conf。初次部署可直接拷贝。

    cd dist
    chmod +x ./*.sh
    cp conf_template conf -r

    (4)继续修改conf/application.yml文件。

    sed -i "s%Encoding=utf8%Encoding=utf8\&useSSL=false<em>%g</em>" conf/application.yml
    sed -i "s%dbUsername%root<em>%g</em>" conf/application.yml
    sed -i "s%dbPassword%admin@123<em>%g</em>" conf/application.ymlCode language: HTML, XML (xml)

    (5)然后运行启动脚本,等待数秒查看运行状态发现服务已经启动,最后查看系统端口发现5004端口已经启动。

     ./start.sh
     ./status.sh
     netstat -lntp | grep 5004

    3.5 WeBASE-Transaction交易服务

    本系统为交易上链代理子系统。主要接收无状态交易请求,缓存到数据库中,再异步上链。本系统可大幅提升吞吐量,解决区块链的tps瓶颈。

    (1)下载安装包,然后进入到WeBASE-Transaction目录,使用自带的gradlew进行编译,如果编译不通过可手动下载gradlew修改配置文件即可。

    cd ~/fisco
    git clone https://github.com/WeBankBlockchain/WeBASE-Transaction.git
    cd WeBASE-Transaction
    chmod +x ./gradlew && ./gradlew build -x testCode language: PHP (php)

    (2)进入到dist文件夹,并且给所有sh文件赋予执行权限。dist目录提供了一份配置模板conf_template:

    可以直接复制模板。

    cd dist
    chmod +x ./*.sh
    cp conf_template conf -r

    (3)将fisco-bcos的证书复制到conf文件夹下。

    将节点所在目录nodes/${ip}/sdk下的所有文件拷贝到当前conf目录(包括ca.crt, sdk.crt, sdk.key, node.crt, node.key),供SDK与节点建立连接时使用。(若没有node.crt, node.key,可通过cp复制sdk.crt为node.crt, 复制sdk.key为node.key)

    cp ../../nodes/127.0.0.1/sdk/* conf/
    cd conf
    cp sdk.crt node.crt
    cp sdk.key  node.key

    (4)然后创建数据库。

    mysql -u root -padmin@123
    CREATE DATABASE IF NOT EXISTS webasetransaction0 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    CREATE DATABASE IF NOT EXISTS webasetransaction1 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
     show databases;Code language: CSS (css)

    (5)修改application.properties配置文件,其余保持默认,具体配置见官方文档。修改数据库的用户名和密码。

    sed -i "s%dbUsername%root<em>%g</em>" conf/application.properties
    sed -i "s%dbPassword%admin@123<em>%g</em>" conf/application.propertiesCode language: HTML, XML (xml)

    (6)然后运行启动脚本,等待数秒查看运行状态发现服务已经启动,最后查看系统端口发现5003端口已经启动。

     ./start.sh
     ./status.sh
     netstat -lntp | grep 5003

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇