Skip to content

Developed decentralized application by using Hyperledger Fabric. Enhanced application by using existing fabcar samples from Hyperledger Fabric repository with my own customization logic. Created a single channel, two organizations, a single orderer with each organization having a single peer. Integrated with Explorer, Caliper, and Node JS for th…

Notifications You must be signed in to change notification settings

Sudhanmanoharan/Vehicle-Management

Repository files navigation

Simple Vehicle Management System

About Project

  • Implemented using existing Fabcar samples from Hyperledger Fabric git repository with my own customization logic.
  • Created a single channel, two organizations, a single orderer with each organization having a single peer.
  • Each organization implemented with own Fabric CA standard of X509 certificates.
  • Developed fast and efficient chaincode written in Go and Javascript to manipulate, format client data, and then store it in the ledger.
  • Used the internal CouchDB database for world state which allows for quick data retrieval and operation.
  • Used Docker Volumes for persisting data generated by and used by Docker containers. Volumes are stored in the local machine whenever the network got restart, retrieved the data by using the docker volume mount mechanisum.
  • Utilized implicit Private Data Collection model which is used to see data by organization level.
  • Improved performance by integrating Hyperledger Explore which provides necessary network information of the blockchain and also integrated Hyperledger Caliper benchmark tool which allows users to measure the performance of a blockchain network with predefined use cases.
  • Created Rest API routes by using NodeJS server which will invoke and query data from the fabric network.
  • Node js application having the functionality of enrolling Admin and Registering user, invoke and query data from chaincode by using fabric network.

Tools, Frameworks, Languages

  • Hyperledger Fabric [ v2.3.0 ]
  • Hyperledger Explorer [ latest ]
  • Hyperledger Caliper [ v0.4.0 ]
  • Go [ go1.15.5 ]
  • Docker [ v19.03.4 ]
  • Node [ v12.13.1 ]
  • npm [ 6.12.1 ]
  • Node JS
  • Shell Script
  • Postman

Project Structure

  • api [ Rest API Service used communicate with fabric network ]
  • bin [ Hyperledger Fabric binaries ]
  • caliper [ Caliper benchmark tool integration setup ]
  • chaincode [ Application Chaincode in Go and NodeJS SDK ]
  • cmd [ Script used to start and stop the fabric network ]
  • common-utils [ Private Data Collection JSON File ]
  • config [ Channel Configuration ]
  • explorer [ Explorer tool integration setup ]
  • dev [ Start network in dev environment ]
  • test-network
    • Under test network having couples of provision like creating the Fabric CA certficates to the entities, creating the Channel, Organization and deploy the Chanicode in each organization peer networks so on...

Command's to Run Project

Start Network

Network Up

  $ cd cmd/
  $ ./startFabric.sh

Network Down

  $ cd cmd/
  $ ./networkDown.sh

Network Restart

Note : Network restart command used to restart the network without disturbing the world state couch DB, channel and entities. Data will persistence by using docker volume mount

  $ cd cmd/
  $ ./networkDown.sh restart

Start Node JS Server

Start Server

  $ cd api/fabcar/javascript
  $ npm run start

Stop Server

Ctrl + C

Explorer

Start

  $ cd explorer
  $ ./startExplorer.sh

Stop

  $ cd explorer
  $ ./stoptExplorer.sh

Caliper

Start

  $ cd caliper
  $ docker-compose up -d

Final Output Screenshot

Network Fabric

...


Node Server

...


Explorer

...


Caliper

...


Contact

About

Developed decentralized application by using Hyperledger Fabric. Enhanced application by using existing fabcar samples from Hyperledger Fabric repository with my own customization logic. Created a single channel, two organizations, a single orderer with each organization having a single peer. Integrated with Explorer, Caliper, and Node JS for th…

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published