Categorygithub.com/hyperledger-labs/fabex
modulepackage
1.1.4
Repository: https://github.com/hyperledger-labs/fabex.git
Documentation: pkg.go.dev

# README

Block explorer for Hyperledger Fabric


Reference

Prerequisites

Microservice mode

UI

CLI usage

Testing


FabEx is inspired by ledgerfsck

Prerequisites

  1. Configure config.yaml (it's main config of the Fabex) and connection-profile.yaml (Hyperledger Fabric connection profile)

  2. Install and start database (MongoDB or CassandraDB)

    If you choose Mongo:

    1. set initial user name and password in db/mongo-compose/docker-compose.yaml
    2. start container:
    make mongo
    

    If you choose Cassandra:

    make cassandra
    
  3. (OPTIONAL) Start your Fabric blockchain network or sample test network with

    make fabric-test
    



Microservice mode

You can start Fabex as standalone microservice with Cassandra blocks storage:

./fabex -task=grpc -configpath=configs -configname=config -enrolluser=true -db=cassandra

or with Mongo storage

./fabex -task=grpc -configpath=configs -configname=config -enrolluser=true -db=mongo

Use fabex.proto as service contract.

Example of GRPC client implementation.



UI

UI is available on port 5252

UI



CLI

Build Fabex executable binary file:

go build

Enroll admin user:

./fabex -enrolluser=true

Save blocks data to db:

./fabex -task=explore -configpath=configs -configname=config -db=cassandra

Also you can start service for fetching blocks in daemon mode:

./fabex -task=explore -configpath=configs -configname=config -db=cassandra

Get transactions of specific block (chain operation):

./fabex -task=getblock -blocknum=14 -configpath=configs -configname=config -db=cassandra

Get all transactions (db operation):

./fabex -task=getall -configpath=configs -configname=config -db=cassandra

You can choose database for data saving and retrieving with -db flag (MongoDB or CassandraDB):

./fabex -task=explore -configpath=configs -configname=config -db=mongo
./fabex -task=explore -configpath=configs -configname=config -db=cassandra



Testing

unit tests: make unit-tests

integration tests: make integration-tests


# Packages

Package blockhandler provides functionality for fetching blocks from blockchain.
No description provided by the author
Package db provides database interface for storing and retrieving blocks and transactions.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

No description provided by the author
No description provided by the author

# Structs

No description provided by the author