Skip to content

Blockchain System Explorer application that allows for in-depth analysis of blockchain and system data

License

Notifications You must be signed in to change notification settings

YannickPferr/blockchain-system-explorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blockchain System Explorer

BlockchainSystemExplorer Screenshot

Blockchain System Explorer that enables researchers to monitor and analyze the status of a blockchain platform.

Features:

  • Expandable (supports multiple blockchains because of adapter-based approach)
  • Export data
  • Track system data of blockchain nodes via Telegraf
  • Visualize data via Chronograf

Currently supported Blockchains:

  • Ethereum

How to use

  1. Clone the repo
  2. Create the Jar with: mvn install
  3. Execute the Jar File: java -jar target/BlockchainSystemExplorerClient-1.0.jar -c config/BlockchainSystemExplorer.properties

Jar will automatically download and start all required dependencies. There are a few options regarding the start of the Java Application. You can either configure it via command line arguments or by passing it a config file. There are the following command line options:

-c,--config <file>                        Specify location of config file
-e,--ethNodes <ethereum node addresses>   Specify all ethereum nodes you
                                          want to connect to
-h,--help                                 Help flag to print usage
                                          message
-p,--props <property=value>               Specify the value of a property

You can configure a variety of settings:

ClientName = <Name of the Client: This specifies how the client will be identified in the DB entries> 
  Default: DefaultClient
InfluxURL = <Influx Address: This specifies the host where the InfluxDB is running> 
  Default: http://localhost:8086
EthNodes = <Ethereum Node Addresses: This specifies all ethererum nodes the client will connect to separated by commas. E.g.: node1,node2,node3> 
  Default: http://localhost:8545
DBName = <Name of the Database: This specifies how the DB will be named in InfluxDB> 
  Default: Blockchain
InfluxUser = <Influx User Name: This specifies the user used to authenticate to InfluxDB> 
  Default: root
InfluxPassword = <Influx Password: This specifies the password used to authenticate to InfluxDB> 
  Default: root
InfluxRetentionDuration = <Influx Retention Duration: This specifies the duration for which records are stored before they are deleted> 
  Default: INF (Unlimited Duration) 
InfluxRetentionReplication = <Influx Retention Duration: This specifies how many copies InfluxDB stores> 
  Default: 1
Log4jConfig = <Name of Log4j properties: This specifies the name and path of the Log4j properties file> 
  Default: log4j.properties

To change the default values, you can either use a config file or the --props command line option. You could for example start the application with --config cofig.properties and then have a config.properties file in which you set a different ClientName and a different Ethereum Node like this:

contents of config.properties
   
ClientName = TestClient
EthNodes = http://localhost:8545,http://localhost:8546

To do this via the command line, you start the application like this:

-pClientName=TestClient --ethNodes http://localhost:8545,http://localhost:8546

Telegraf

If you want to also gather system data about the machine running the blockchain node, you need to install Telegraf on the remote and specify your Influx address in the Telegraf config file. You can download Telegraf here.

Visualization

You can use Chronograf to visualize your collected data in customized dashboards (see screenshot above). You can also download it here.

Commands

Export data

To export data into a csv file, you can use Influx Query Language in the Java client. E.g. type: select * from Ethereum where BlockNumber = 1

About

Blockchain System Explorer application that allows for in-depth analysis of blockchain and system data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages