Code Monkey home page Code Monkey logo

fisco-bcos-browser's Introduction

区块链浏览器说明

一、描述

1.1 基本描述

区块链浏览器将区块链中的数据可视化,并进行实时的展示。用户能够以Web页面的方式,方便的获取当前区块链中的信息。

index

1.2 架构

区块链浏览器分为三个部分:server、page和report agent。

server端

  • 定时从区块链节点的RPC接口中查数据,写入数据库中。
  • 接收report agent上报的数据,写入数据库中。

page端

  • 可配置需要监控的区块链节点。
  • 从数据库中拉取数据,在Web中展示。

report agent

  • 部署在每台运行有区块链节点的机器上。
  • 拉取区块链节点的监控数据,上报到server端。

注意:请使用chrome浏览器访问page。

二、区块链浏览器部署

1、环境

环境 版本
浏览器 chrome
Java jdk1.8.0_121
Python 2.7
gradle gradle-2.1或以上版本
数据库 mysql-5.6或以上版本
Web服务 Tomcat 9.0.1

环境部署方法请参考附录中的常见问题。

2、部署

2.1 clone代码

git clone http://github.com/FISCO-BCOS/fisco-bcos-browser.git
cd fisco-bcos-browser

2.2 浏览器部署

编辑文件

vim deploy_browser.sh

配置文件开头的参数,如下

######################  参数配置  ######################

userName="test"  #需要创建的数据库用户
password="123456" #需要创建的数据库用户密码
passwordRoot="123456" #数据库root账号的密码
dbName="bcos_browser"     #需要创建的数据库名
dbIp="192.168.1.100"   #数据库所在机器IP
tomcatpath="/software/tomcat/" #tomcat所在路径

###################### 参数配置结束 #################### 

运行脚本进行部署和启动

sh deploy_browser.sh

若执行成功,则浏览器服务会自动启动

2.3 节点上报程序(report agent)部署

每个部署了区块链节点的机器都需要部署report agent。参考:监控上报脚本部署

三、使用

打开chrome浏览器,访问URL,如:

http://192.168.1.100:8080/fisco-bcos-browser

3.1 接入区块链节点

请先确认连接的区块链节点是FISCO-BCOS V1.1.0+

  1. 进入页面:点击”配置“ -> ”节点配置“ ,进入页面。

  2. 配置节点:点击“新增节点”,填入节点IP和RPC端口,点击“提交”,提交后,区块链浏览器后台自动连接相应区块链节点,拉取数据。尽可能将链上所有的节点都配置进去。

  3. 查看数据:点击区块链浏览器的其它页面,查看区块链的相关数据。

  4. 修改配置:在节点配置页面,点击节点列表上的操作按钮进行“修改”或“删除”。

注意:目前区块链浏览器仅仅支持接入一条链,请勿配置多条链上的多个节点。

node_setting

3.2 首页

首页展示了区块链的主要信息。

3.2.1 全局信息

  • 当前块高:描述区块链当前的最后一个块的高度,区块链上,无交易不出快,有交易块高会有变化。

  • 交易总量:区块链上的所有交易数量总和。

  • 正在处理交易数:链上正在处理的交易数。可表现区块链是否正常。若不出块,出现阻塞,则此数量会一直不为0。

  • PBFT当前视图:共识算法PBFT中的参数。可描述区块链的状态。若无交易,此数量一直增加,有交易时,为某一较小的数。

3.2.2 交易量折线图

以天为单位显示交易量,当天无交易,则不显示当天的交易量。

3.2.3 节点状态列表

在节点配置页面中,仅需配置一个节点,就能显示链上所有存活的节点。

若需要实时跟踪某个节点的存活状态,则需要通过节点配置页面配置上相应的节点。配置后,若节点不存活,则会显示存活状态为“否”。

3.2.4 最新区块、最新区块交易

显示最新的5个区块或交易的简要信息。

3.3 查看区块链信息

包括:查看区块、查看交易、正在处理的交易

功能:给出相应列表,支持哈希值模糊查询,生成时间筛选。

3.4 查看监控统计信息

要查看监控信息,需在每台部署了区块链节点的机器上正确部署report agent。

3.4.1 统计指标

显示区块链上的各种统计指标折线图。可根据日期,时间,节点,指标等维度进行筛选。

3.4.2 交易流

交易在各个节点被执行的时间点和统计描述。

3.4.3 共识流

区块出块流程,在各个节点上的时间点。

四、附录

1、Java环境部署

此处给出简单步骤,供快速查阅。更详细的步骤,请参考官网

(1)从官网下载对应版本的java安装包,并解压到相应目录

mkdir /software
tar -zxvf jdkXXX.tar.gz /software/

(2)配置环境变量

export JAVA_HOME=/software/jdk1.8.0_141
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2、gradle环境部署

此处给出简单步骤,供快速查阅。更详细的步骤,请参考官网

(1)从官网下载对应版本的gradle安装包,并解压到相应目录。

mkdir /software/
unzip -d /software/ gradleXXX.zip

(2)配置环境变量

export GRADLE_HOME=/software/gradle-2.14
export PATH=$GRADLE_HOME/bin:$PATH

3、数据库部署

此处以Centos/Fedora为例。

(1)切换到root

sudo -s

(2)安装mysql

yum install mysql*
#某些版本的linux,需要安装mariadb,mariadb是mysql的一个分支
yum install mariadb*

(3)启动mysql

service mysqld start
#若安装了mariadb,则使用下面的命令启动
service mariadb start

(4)初始化root用户

mysql -u root
/*授权test用户本地访问数据库*/
create user 'test'@'localhost' identified by 'test1234';

(5)用SQL语句给root分配密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

(6)测试是否成功

另开一个ssh测试用户是否可以登陆,并成功授权,登陆数据库

mysql -utest -ptest@2107 -h 127.0.0.1 -P 3306

登陆成功后,执行sql语句,若出现错误,则用户授权不成功

show databases;
use test;
select * from tb_txnByDay;

4、Tomcat操作

(1)部署(以Centos/Fedora为例)

sudo yum install tomcat

(2)部署Web的应用

此处即是部署浏览器的page部分,war包的生成请参考page部署

cp fisco-bcos-browser.war /nemo/tomcat/webapps

(3)启动/关闭Tomcat服务

cd /nemo/tomcat/bin
#启动
./startup.sh
#关闭
./shutdown.sh

(4)访问Web

浏览器访问URL

http://127.0.0.1:8080/fisco-bcos-browser

5、gradle build问题

第一次执行时,会下载一些包,请耐心等待。若出现如下的ERROR,可忽略,让其继续运行。之后若出现SUCCESSFUL,则表示build成功。

[Fatal Error] spring-core-4.1.8.RELEASE.pom:2:127: XML document structures must start and end within the same entity.

fisco-bcos-browser's People

Contributors

fisco-dev avatar haoxuan40404 avatar jimmyshi22 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.