Ledgerium Tools

Ledgeriumtools is a CLI based tool for generating a docker-compose YML for deploying N nodes with IBFT consensus

Prior to running the application, follow below steps:

Edit initialparams.json and perform the following updates:

The setup will get the latest Ledgerium network files from GitHub and paste those files under ledgeriumtools/output/tmp

  1. External IPAddress: To host a node for a network that can be connected to by anyone outside your LAN.

  2. Node Name: Hostname of the machine where nodes will be hosted.

  3. Domain Name: This is needed for every node to which any client wants to send transactions or do geth attach.

Run Ledgerium tools application

Enter the Mnemonics and password which will generate the node keys and password. Takes
input from the command line interface, prompts to enter the number of mnemonics.
Enter Mnemonic 0 : **
Enter Password 0 : *

To start the application, run node index.js

The number of nodes brought up is equal to the number of keys/mnemonics provided in the file i.e. n keys signifies n nodes with the respective keys as coin-base/ether base.

The docker file will be generated in the output folder.

Change directory to output and run following commands.

docker-compose up -d // to start up the nodes
docker-compose down // to bring down the nodes

Docker-Compose Services

  • Validator : The validator Object holds the basic image information, and since validator is dependent on the privacy implementation selected, make sure that the volumes mapped are consistent. Defaults for volume mapping have been provided already and works as is without any extra config. The commands executed within the docker maybe be modified in the commands array, but make sure there is no mismatch in the commands executed within the docker.

  • Tessera : The tessera Object contains the basic configuration for the tessera service. To add or modify commands check the commands array

  • GovernanceApp : Returns the GovernanceApp for a particular validator, this service depends on a given validator node. So make sure that all the volumes in a validator node are reflected here. Make sure that the changes in the network don't overlap with any other IP/port. The object gov contains the basic configuration for the governance app service, and the string represents the set of commands which will be executed if appending/ adding a command make sure that the string is terminated with a newline character.

    • Note

      • This application is currently using tessera as the private transaction manager.

      • Don't use the -v option to bring down the nodes as the current blockchain data will be lost

      • For subsequent runs make sure the 'tmp' directory created in output folder is deleted.

  • Official Docker Containers: The official Docker containers can be found under Ledgerium engineering‚Äč