chainmetric-network

module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2021 License: Apache-2.0

README

ChainMetric: Network

bash badge  blockchain badge  kubernetes badge  license badge

Overview

Chainmetric Network is an IoT-enabled permissioned blockchain network based on Hyperledger Fabric stack.

It is oriented on storing, managing, and handling the continuous flow of sensor readings data, which is sourced by IoT on-network devices, and validating those readings against organization assigned requirements, thus providing full control on the assets supply chain.

This solution provides a convenient way of deploying such a blockchain network onto the cloud-based Kubernetes cluster environment via Helm charts and dedicated Bash script.

Requirements

  • Kubernetes cluster is required to deploy a Chainmetric network (minikube is also suitable).
  • Helm binaries must be presented on a local machine from which deployment script will be used.

Deployment

Hyperledger Fabric is a powerful enterprise-grade permissioned distributed ledger framework. Its modular architecture and unique orderer-based approach to consensus enable versatility in use cases and production-ready performance and scalability.

However, its deployment procedure especially in the Kubernetes environment may require quite a lot of time and effort. Hyperledger Fabric's documentation is indeed helpful though it still covers the very basics.

The current solution provides a straightforward way of deploying permissioned blockchain network in the Kubernetes environment using a combination of a Bash script and Helm charts with the following commands:

Use init command to generate crypto materials and network channels artifacts:

$ ./network.sh init

Use deploy command with orderer action to deploy Ordering Service, which is responsible for ensuring data consistency and enables performance at scale while preserving privacy:

$ ./network.sh deploy orderer

Use deploy command with peer action to deploy single Blockchain peer which will store a copy of ledger and perform read/write operations on it:

$ ./network.sh deploy peer --peer='peer subdomain name' --org='organization name'

Use deploy command with channel action to deploy network channel which provides a secure way of communication between peers:

$ ./network.sh deploy channel --channel='channel name' --peer='peer subdomain name' --org='organization name'

Use deploy command with cc action to deploy or upgrade Chaincode (Smart Contract):

$ ./network.sh deploy cc --cc_name=`chaincode name` --channel='channel name' --peer='peer subdomain name' --org='organization name' --upgrade

Use following environmental variables to define some additional network properties:

$ export DOMAIN 'chainmetric.io'
$ export ORDERER 'orderer.chainmetric.io'
$ export CHAINCODES_DIR '../contracts'
$ export IMAGE_REGISTRY 'chainmetric'

Roadmap

Wrap up

Chainmetric network designed to be an enterprise-grade, confidential and scalable distributed ledger, which in combination with dedicated Smart Contracts, embedded sensor-equipped IoT devices, and cross-platform mobile application provides ambitious metric requirements control solutions for general assets supply chains.

License

Licensed under the Apache 2.0.

Directories

Path Synopsis
cli
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL