附录

    1.2 FISCO-BCOS节点配置

    FISCO-BCOS节点配置用于配置服务连接的区块链节点,使得WeBASE-Collect-Bee服务能够访问连接节点,并通过该节点获取区块链网络上的数据。

    配置项是否必输说明举例默认值
    system.nodeStrY连接区块链节点的nodeStr,nodeName@[IP]:[PORT], 其中prot为channel portnode1@ip:8822-
    system.encryptTypeN加密类型: 0-RSA, 1-gm00

    1.3 数据库配置

    数据导出组件最终会把区块链网络上的数据导出到数据存储介质中,目前版本仅支持MySQL,所以需要进行数据库配置。

    其中sysTableName对应区块数据表和账户数据表,详情见 数据存储模型 章节。

    1.4 FISCO-WeBASE-Collect-Bee工程配置

    配置项是否必输说明举例默认值
    system.groupY同spring项目的groupcom.example-
    system.contractPackNameY编译智能合约所输入的包名com.webank.blockchain.wecredit.contracts-
    system.frequencyN所有method和event的抓取频率,默认几秒轮询一次105

    在单机部署下,必须配置线程池参数。数据导出配置用于配置数据导出的频率、线程数及启动多线程条件等。当system.multiLiving=true时,配置文件不会生成线程池相关配置。

    1.6 集群多活配置

    在集群多活部署的方案中,必须设置集群多活的配置。集群必须通过zookeeper进行服务注册和任务分发。当system.multiLiving=false时,配置文件不会生成zookeeper相关配置。

    配置项是否必输说明举例默认值
    system.multiLivingY启动多活开关truefalse
    regcenter.serverListN注册中心服务器列表[ip1:2181;ip2:2181]-
    regcenter.namespaceN注册中心命名空间wecredit_bee-

    1.7 其他高级配置

    2. Java安装

    Ubuntu环境安装Java

    1. $ rpm -qa|grep java
    2. # 删除查询到的Java版本
    3. $ rpm -e --nodeps java版本
    4. # 查询Java版本,没有出现版本号则删除完毕
    5. $ java -version
    6. # 创建新的文件夹,安装Java 8或以上的版本,将下载的jdk放在software目录
    7. # 从openJDK官网(https://jdk.java.net/java-se-ri/8)或Oracle官网(https://www.oracle.com/technetwork/java/javase/downloads/index.html)选择Java 8或以上的版本下载,例如下载jdk-8u201-linux-x64.tar.gz
    8. $ mkdir /software
    9. $ tar -zxvf jdk-8u201-linux-x64.tar.gz
    10. # 配置Java环境,编辑/etc/profile文件
    11. $ vim /etc/profile
    12. # 打开以后将下面三句输入到文件里面并退出
    13. export JAVA_HOME=/software/jdk-8u201-linux-x64.tar.gz
    14. export PATH=$JAVA_HOME/bin:$PATH
    15. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    16. # 生效profile
    17. $ source /etc/profile
    18. # 查询Java版本,出现的版本是自己下载的版本,则安装成功。
    19. java -version

    git:用于拉取最新代码

    centos:

    ubuntu:

    1. sudo apt install git

    4. Mysql安装

    (1)安装MariaDB

    • 安装命令
    1. sudo yum install -y mariadb*

    (2)启停

    1. 启动:sudo systemctl start mariadb.service
    2. 停止:sudo systemctl stop mariadb.service

    (3)设置开机启动

    (4)初始化root用户

    1. 执行以下命令:
    2. sudo mysql_secure_installation
    3. 以下根据提示输入:
    4. Enter current password for root (enter for none):<–初次运行直接回车
    5. Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
    6. New password: <– 设置root用户的密码
    7. Re-enter new password: <– 再输入一次你设置的密码
    8. Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
    9. Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车
    10. Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
    11. Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
    • 使用root用户登录,密码为初始化设置的密码
    1. mysql -uroot -p -h localhost -P 3306
    1. mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    2. mysql > flush PRIVILEGES;

    安全温馨提示:

    • 例子中给出的数据库密码(123456)仅为样例,强烈建议设置成复杂密码
    • 例子中root用户的远程授权设置会使数据库在所有网络上都可以访问,请按具体的网络拓扑和权限控制情况,设置网络和权限帐号

    (5)创建test用户并授权本地访问

    1. mysql > GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY '123456' WITH GRANT OPTION;
    2. mysql > flush PRIVILEGES;
    • 登录数据库
    • 创建数据库

    以上语句仅适用于开发环境,不能直接在实际生产中使用!!!以上设置会使数据库在所有网络上都可以访问,请按具体的网络拓扑和权限控制情况,设置网络和权限帐号

    zookeeper 支持单机和集群部署,推荐使用集群部署的方式,请参考zookeeper官网的说明:

    集群部署

    6. supervisor安装与部署

    安装脚本

    会生成默认配置/etc/supervisord.conf和目录/etc/supervisord.d,如果没有则自行创建。

    配置脚本

    cd /etc/supervisord.d 修改/etc/supervisord.conf的[include]部分:

    1. [include]
    2. files = supervisord.d/*.ini
    3. [supervisord]

    在/etc/supervisord.d目录下配置以下启动配置文件webasebee_config1.ini(请注意配置文件里需要包含webasebee,否则会导致关闭任务命令失效),注意修改相关的路径。

    1. [program:supervisor_webasebee]
    2. directory =【你的程序路径】/WeBASE-Collect-Bee/dist ; 程序的启动目录
    3. command = nohup java -jar 【你的安装包名,如WeBASE-Collect-Bee0.3.0-SNAPSHOT.jar & ; 启动命令,与命令行启动的命令是一样的
    4. autostart = true ; supervisord 启动的时候也自动启动
    5. startsecs = 15 ; 启动 15 秒后没有异常退出,就当作已经正常启动了
    6. autorestart = true ; 程序异常退出后自动重启
    7. startretries = 3 ; 启动失败自动重试次数,默认是 3
    8. user = app ; 用哪个用户启动
    9. redirect_stderr = true ; stderr 重定向到 stdout,默认 false
    10. stdout_logfile_maxbytes = 150MB ; stdout 日志文件大小,默认 50MB
    11. stdout_logfile_backups = 20 ; stdout 日志文件备份数
    12. stderr_logfile=【你的日志路径】/WeBASE-Collect-Bee/dist/log/webase_bee_error.log
    13. stdout_logfile = 【你的日志路径】/WeBASE-Collect-Bee/dist/log/webase_bee_out.log ;日志统一放在log目录下
    14. [supervisord]

    启动任务

    1. supervisord -c /etc/supervisord.d/webasebee_config1.ini
    1. ps -ef|grep supervisord|grep webasebee| awk '{print $2}'|xargs kill -9
    2. ps -ef|grep WeBASE-Collect-Bee|grep -v grep| awk '{print $2}'|xargs kill -9

    7.1 脚本没权限

    • 执行shell脚本报错误”permission denied”或格式错误
    1. 转格式:dos2unix *.sh