FabNet

Demo links

FabNet tool, with the test configuration, start.sh script and the generated network are available at the following links.

Description

FabNet is an Hyperledger Fabric network generator, it was created for reducing the effort required by developers approaching this new technology.
It is based on a simple graphic interface where the user can insert information regarding the network such as organisations, peers and more.
Once completed, the server autogenerates a zip file containing all the network configuration files within the scripts needed to run the network.
FabNet can be used for different purposes like the generation of testing networks or for a production-ready one.
Indeed, it supports a high level of customizations that can be useful when working in a complex environment.

Network structure

Network folder structure

The Fabric network is structured as shown in the near figure. It is possible to find mainly two types of files, configuration and script.

The firsts are used to specify information for peers, certificates, channels and, more in general, the network.

The seconds are used to create the related network components starting from the configurations.


Generally, we can classify files into three main topics:

  1. Fabric Certification Authority server and client – each organization has a CA that provides certificates for members. CA server is created uisng docker-compose.yaml and fabric-ca-server-config.yaml. CA client is instead used to connect and is created using fabric-ca-client-config.yaml;
  2. peers and orderers container creation – for each peer a docker-compose.yaml must be defined, it contains peers configuration;
  3. channel configuration – to define network structure, internal and system channels configtx.yaml is used. For each is channel is also defined memebrs, policies, orgs and consritums;
  4. channel creation – config file is used to create the genesis.block and some other .tx files that contains channels info like the anchor peer

FabNet demo

The first page in figure 1 allows to specify the network name and the organizations involved (name, domain); it is also possible to add other organizations and to import/export JSON configuration.

Figure 1 – FabNet Network and Organizations page

Next, there is the panel related to organizations, where for each of them the user has to insert certification authority information and can handle members. In particular, it is possible to add or remove peers, clients, admins and orderers. Depending on the member type, different information is required, like host IP and ports.

Figure 2 – Certificate Authority and Members page

After organisations and networks are defined, the consortium must be created. It is possible to create 1 or more consortiums, defining their participating organizations. The last page specifies the channel in the network, requiring a consortium and, optionally, external organizations.

Figure 3 – Consortium page

The final page shows only the download button that generates the zip file containing the configurated network.

For a fast FabNet demo, import the test configuration into the FabNet interface, then download the generated network. Finally, put and execute the start script inside the download network. All the required files can be downloaded below.

N.B. To deploy the Fabric network is necessary to have the requirements installed (https://hyperledger-fabric.readthedocs.io/en/release-2.2/prereqs.html)