Skip to content

DLT Blockchain Network deployment using own Machine

Pre-requisites

To create a Production DLT/Blockchain network, ensure you have the following:

  1. One running Kubernetes Cluster and the Config file (default ~/.kube.config) per Organization.
  2. One running Hashicorp Vault server per Organization. Unsealed and configured as per guidance here.
  3. Domain Name(s) configured as per tutorial here.
  4. Git user details per Organization as per pre-requisites.
  5. Ansible controller configured as per guidance here.
  6. If using SSH for Git, Private key file per Organization for GitOps with write-access to the Git repo as per guidance here.

Important

All commands are executed from the bevel directory which is the default directory created when you clone our Git repo.

Prepare build folder

If not already done, clone the git repository on your Ansible controller.

git clone https://github.com/<your username>/bevel.git
Create a folder called build inside bevel.
cd bevel
mkdir build
Copy the following files into the build folder:

  • All the Kubernetes config files (config, kubeconfig.yaml).
  • All the private key files (if using SSH for git).

Edit the configuration file

Depending on your choice of DLT/Blockchain Platform, select a network.yaml and copy it to build folder.

# eg for Fabric
cp platforms/hyperledger-fabric/configuration/samples/network-fabricv2.yaml build/network.yaml
Open and update the network.yaml according to the following Platform specific guides.

In summary, you will need to update the following:

  1. docker url, username and password.
  2. external_url_suffix depending on your Domain Name(s).
  3. All DNS addresses depending on your Domain Name(s).
  4. cloud_provider
  5. k8s section depending on your Kubernetes zone/cluster name/config filepath.
  6. vault
  7. gitops section depending on your git username, tokens and private key filepath.

Execute provisioning script

After all the configurations are updated in the network.yaml, execute the following to create the DLT network

# Run the provisioning scripts
ansible-playbook platforms/shared/configuration/site.yaml -e "@./build/network.yaml" 
The site.yaml playbook, in turn calls various playbooks depending on the configuration file and sets up your DLT/Blockchain network.

Verify successful configuration

For instructions on how to troubleshoot network, read our troubleshooting guide

Deleting an existing network

The above mentioned playbook site.yaml (ReadMe) can be run to reset the network using the network configuration file having the specifications which was used to setup the network using the following command:

ansible-playbook platforms/shared/configuration/site.yaml -e "@./build/network.yaml" -e "reset=true"