Each blockchain platform, including Hyperledger Fabric, provides a way to record information on blockchain in an immutable manner. In the case of Hyperledger Fabric, information is recorded as a key/value
pair. All previous updates to a key
are recorded in the ledger of a Hyperledger Fabric peer, but only the latest value of a key
can be easily queried (see documentation). This mechanism makes it challenging to perform analysis of updates to a key
. Further, if an application groups together certain keys for application-level functions, it is challenging to analyze them together. In order to perform information provenance, it is necessary to
analyze all updates to a single key
or group of keys that together comprise an information unit.
To address this issue, we have created a project which can be used to analyze ledger data stored within a Hyperledger Fabric peer. This project can also be used to analyze operational data, such as number of blocks and transactions.
Currently, the project includes:
-
an Elastic beats module (in Go), that ships ledger data from a Hyperledger peer to an Elasticsearch instance.
-
generic Kibana dashboards, that allow selection of a particular key and visualization updates to it (channel, id, timestamp etc) - similar to Hyperledger Explorer.
-
scripts to create Hyperledger Fabric network in different configurations, i.e.,
basic
,mulitchannel
, andappledemo
. -
a program to generate test data
-
a standalone utility to dump Fabric transaction data as JSON file for loading and analyzing in any document store.
-
scripts to start and stop Elasticsearch and Kibana.
The eventual goal of this project is to evaluate transactions of any blockchain using any document databases or search engines such as MongoDB, CouchDB, or Elastic stack.
This project was developed as part of Hyperledger summer internship program.
We recommend that you start with the instructions for basic
network.
Once you have it up and running, you can try the multichannel
, and appledemo
.
If you want to learn more about fabricbeat
configuration or connect it to your own blockchain network, click here.
If you want to understand dataflow involving fabricbeat
, click here.
The Apache 2.0 License applies to the whole project, except for the stack directory and its contents.