XenonStack Recommends

DevOps

BlockChain App Development with Serverless and Microservices

Gursimran Singh | 17 November 2021

What is BlockChain?

The Blockchain is a distributed database that maintains a continuously-growing list of ordered records called blocks. This technology underlying Bitcoin and other cryptocurrencies. It is a public ledger of all Bitcoin transaction. These blocks are added in chronological order. In order to deploy a Blockchain application, you need a distributed Hyperledger Blockchain on your choice of infrastructure (on-premise or cloud). blockchain technology In this article, we will deploy a Hyperledger Fabric cluster using Docker.

Why BlockChain is important?

To follow this guide you need a system with working Docker engine and docker-compose on it. We will use Fabric which is an implementation of Blockchain technology written in Golang, so go version go1.6.2 or above is required. Before proceeding further let’s have a look on Hyperledger Fabric.

The HyperLedger Project

Hyperledger is an open source project with collaborative effort created to advance Blockchain technology. It helps in cross-industry distributed ledgers which support transaction system, property transaction, and other services.

What is HyperLedger Fabric?

The Fabric is an implementation of blockchain technology. It provides a modular architecture allowing pluggable implementations of the various function.

Setting up HyperLedger Cluster

The below are the steps involved in setting up HyperLedger cluster:

Pulling Images

First, pull the latest images published by the Hyperledger fabric project from DockerHub. docker pull hyperledger/fabric-peer:latest docker pull hyperledger/fabric-membersrvc:latest Now in order to run these images. Create a docker-compose file which will launch both of these services.

membersrvc:
 image: hyperledger / fabric - membersrvc
ports:
 -"7054:7054"
command: membersrvc
vp0:
 image: hyperledger / fabric - peer
ports:
 -"7050:7050" - "7051:7051" - "7053:7053"
environment:
 -CORE_PEER_ADDRESSAUTODETECT = true - CORE_VM_ENDPOINT = unix: ///var/run/docker.sock
 -CORE_LOGGING_LEVEL = DEBUG - CORE_PEER_ID = vp0 - CORE_PEER_PKI_ECA_PADDR = membersrvc: 7054 - CORE_PEER_PKI_TCA_PADDR = membersrvc: 7054 - CORE_PEER_PKI_TLSCA_PADDR = membersrvc: 7054 - CORE_SECURITY_ENABLED = false - CORE_SECURITY_ENROLLID = test_vp0 - CORE_SECURITY_ENROLLSECRET = MwYpmSRjupbT
links:
 -membersrvc
command: sh - c "sleep 5; peer node start --peer-chaincodedev"
That’s it now we are ready to launch these service by simply running docker-compose up blockchain technology

Running the ChainCode

Before running chaincode you need to set your $GOPATH and then make a directory to download the sample chaincode in the src directory.

mkdir - p $GOPATH / src / github.com / chaincode_example02 /
 cd $GOPATH / src / github.com / chaincode_example02
Curl--request GET https: //raw.githubusercontent.com/hyperledger/fabric/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go > chaincode_example02.go
Next, you’ll need to download the Hyperledger fabric to your local $GOPATH, after that you have to build the chaincode.

mkdir - p $GOPATH / src / github.com / hyperledger
cd $GOPATH / src / github.com / hyperledger
git clone http: //gerrit.hyperledger.org/r/fabric
Go to chaincode_example02 directory and build the code

cd $GOPATH / src / github.com / chaincode_example02
go build

Starting And Registering The ChainCode

Run the following command to start the chaincode.

CORE_CHAINCODE_ID_NAME = mycc CORE_PEER_ADDRESS = 0.0 .0 .0: 7051. / chaincode_example02
After that chaincode console will display the message “Received REGISTERED, ready for invocations” which shows that chaincode is ready for use. blockchain technology

Running Rest API

To log in with the help of REST API, send a POST request to the /registrar endpoint, with the enrollment ID and enrollment PW. These parameters are listed in the eca.users section of the membersrvc.yaml file.

REST Request


POST localhost: 7050 / registrar

{
 "enrollId": "jim",
 "enrollSecret": "6avZQLwcUe9b"
}

REST Response:

 200 OK {
  "OK": "Login successful for user 'jim'."
 }	
If try to log in again it should say user already logged in. blockchain technology

REST Request


POST / chaincode

{
 "jsonrpc": "2.0",
 "method": "deploy",
 "params": {
  "type": 1,
  "chaincodeID": {
   "name": "mycc"
  },
  "ctorMsg": {
   "args": ["init", "a", "100", "b", "200"]
  }
 },
 "id": 1
}

REST Response


{
 "jsonrpc": "2.0",
 "result": {
  "status": "OK",
  "message": "mycc"
 },
 "id": 1
}
blockchain technology You can also track the events on the console also. blockchain technology

Summary

BlockChains can support the creation of new, more efficient business processes. Now as you understand the basic fundamentals of BlockChain Technology, you need to decide whether BlockChain fits your needs or not. There will be a rush to develop new decentralized apps so as to enable the decentralized world that we are moving towards. Considering this fact, Business Leaders need to learn a new vocabulary around crypto-related frameworks. Developers need to learn how to write decentralized apps that are enabled by BlockChain Technology. And End Users need to learn how to create or use smart contracts, e.g. as depicted via the Mist browser vision (Ethereum), which is a mix of marketplace discovery, management dashboard, and creation platform, all-in-one. Yo can also learn more about Serverless Framework in this blog. Decentralized Apps will come in different sizes, flavors and complexity levels. At XenonStack we are prepared for that and have specialized professionals to develop the solutions. Reach Us for Deployment and Consulting on BlockChain Technology Solutions.

Holistic Strategy