As a best practice, you must back up all the data on the Client nodes within the Client group to perform operations such as restoring or cloning.

Backing up Client node data lets you save data. If an operation fails, you can restore the lost or corrupted data.

Prerequisites

  • Familiarize yourself with the backup and restore consideration for your VMware Blockchain nodes. See VMware Blockchain Node Backup and Restore Considerations on vSphere.

  • Verify that you have access to the latest version of VMware Blockchain.

  • Identify the following details from the VMware Blockchain Orchestrator output directory, /home/blockchain/output.

    Blockchain ID

Current blockchain version

Replica node IP address

Client node IP address

VMware Blockchain vmbc user password for all the Replica and Client node VMs

Procedure

  1. SSH into the VMware Blockchain Orchestrator appliance.
  2. Enter the login credentials for the blockchain user account.
  3. Navigate to the /home/blockchain directory.
  4. Instantiate the Concord container.

    You can only use one Client node, which is part of the original blockchain, as an Concord operator container.

    1. SSH into a Client node designated to host the operator Client node.
      Note:

      Reboot the Concord container before using an operator container from a different Client node.

    2. Verify that the Client node has a Concord operator container image and identify the operator image ID.

      sudo docker images | grep "operator"

    3. Verify that the Concord operator container configuration file is available.
      sudo cat /config/daml-ledger-api/concord-operator/operator.config
    4. For deployments with unencrypted configuration, copy the private key content into the following location.
      sudo vi /config/daml-ledger-api/concord-operator/operator_priv.pem
    5. For deployments with encrypted configuration, deploy the encrypted operator private key content into the following location.

      The private key is encrypted and stored on disk because the deployment secure store configuration requires private keys not to be saved unprotected on disk.

      # Replace <OP_IMAGE_ID> and paste the operator private key when prompted
      sudo docker run -ti --network=blockchain-fabric --name=operator --entrypoint /operator/install_private_key.py --rm -v /config/daml-ledger-api/concord-operator:/operator/config-local -v /config/daml-ledger-api/concord-operator:/concord/config-public -v /config/clientservice/cert:/config/clientservice/cert -v /config/daml-ledger-api/config-public:/operator/config-public <Operator_IMAGE_ID>
    6. Launch the Concord operator container Client node.
      curl -X POST 127.0.0.1:8546/api/node/start-operator
    7. Access the Concord operator container Client node.
      sudo docker exec -it operator bash
  5. Stop all the applications that invoke connection requests to the Daml Ledger.
  6. Stop all the Client node components.
    curl -X POST 127.0.0.1:8546/api/node/management?action=stop
  7. Verify that all the containers except the agent and deployed Concord operator container are running on the selected Client node.
    sudo docker ps -a

    If the sudo docker ps -a command shows that some containers, with the exception of agent and deployed Concord operator container, are still running, rerun the command or use the sudo docker stop <container_name> command to stop the containers.

  8. Back up data on each of the Client nodes in the group.
    sudo tar cvzf <backup_name> /mnt/data/db 
    #For large data 
    cd /mnt/data/ 
    sudo nohup tar cvzf <backup_name> db & 
    sudo tail -f nohup.out 
    #Wait for the tar to complete

    The <backup_name> must end in .tar.gz. For example, db-backup.tar.gz.

    The large data backup command might time out due to SSH inactivity. Incrementally rerun the command.

  9. (Optional) If the Concord operator containers were deployed, pause all the Replica nodes at the same checkpoint and check the status periodically until all the Replica nodes status is true.

    Any blockchain node or nodes in state transfer or down for other reasons cause the Wedge status command status to return false. The Wedge status command returns true when state transfer completes and all Replica nodes are healthy, allowing all Replica nodes to stop at the same checkpoint successfully.

    The Wedge command might take some time to complete. If the Wedge command times out, the system operator must execute the Wedge command again.

    sudo docker exec -it operator sh -c './concop wedge stop' 
    sudo docker exec -it operator sh -c './concop wedge status' 
  10. Start all the Client node components.
    curl -X POST 127.0.0.1:8546/api/node/management?action=start
  11. Start all the Replica nodes in the Replica Network.
    curl -X POST 127.0.0.1:8546/api/node/management?action=start
  12. Start all the applications that invoke connection requests to the Daml Ledger.