Blog

Creating a Car Auction Network with Hyperledger Fabric Node SDK

08 February 2019

We will be using Hyperledger Fabric Node and IBM Blockchain Starter Plan to invoke chaincode for error-free results and automatic processing while creating an auction system. In this example, we are creating a network on Blockchain that simulates a car auction network.

Hyperledger Composer and Hyperledger Fabric Node SDK

Hyperledger Composer is an open development toolset and framework which is very extensive and helps make Blockchain application development easier. Its primary purpose is to save time and make the development process more efficient, which allows easy integration of Blockchain applications into existing business systems.

Hyperledger Fabric SDK for Node.js provides an API that interacts with Hyperledger Fabric Blockchain. The SDK is designed for use in Node.js JavaScript. Hyperledger Fabric SDK Node is developed in an Object-Oriented programming style and hence enables developers to implement alternative blocks of code for key functions.

IBM Blockchain Starter Plan

IBM Platform Blockchain Starter Plan is an entry-level offering that allows businesses to simulate Blockchain networks, work with business networks, and enables prompt development of applications. It is a development and testing platform, not ideal for production. The Starter Plan network is built on the Hyperledger Fabric SDK.

Use case

This can be used for vehicle auctions in this scenario, but it can be expanded for use in many other types. Bidding, art auctions, vintage pieces, can all be worked upon in this process. This kind of process encourages transparency in a free market, as well as real-time inputs where all bids are verified on the chaincode system itself, which identifies errors on its own, thus ensuring that the correct winner is selected. After this, the Hyperledger is updated with the information automatically, thus ensuring that any bidding process conducted by this framework will take place error-free and seamlessly.

Development and Process Description

In this case, three components are of primary importance to develop the application: members of the auction, the vehicle in question, and an informational listing about the vehicle where the aforementioned members can place bids. Once the Starter Plan cloud service has been created, you can connect your Node app to the certificate authority (CA) of the Starter Plan. Once the credentials are given by the CA, each transaction (also called a chain code invocation) will have its own credentials and will be visible on a peer-to-peer network for easy verification.

Once the chaincode has been installed on peers and instantiated, it populates your auction. In this code, it will populate with three members, one vehicle and one informational listing where bids and offers can be made. The requirement is to make offers and sell the car, which can be done by simply invoking the chaincode, where it will check bids, ensure that they are error-free, and ensure that the correct highest bidder wins. The ledger then updates with this information where the highest bidder wins the auction and hence the car, and the seller gets the winning offer price. All the chaincode invocations are saved as blocks in the IBM Blockchain Starter Plan.

Process Flow

Intro to Certificate Authority

The first step before diving into the car-auction logic is to enroll your application with the CertificateAuthority from the IBM Blockchain Starter Plan. To do this, you need to give your application the API endpoints of the CA on the IBM Blockchain Starter plan so your app can interact with the network. The CA will then provide you with certificates that will prove your authenticity to the network, allowing you to transact (invoke chaincode) on the network.

Note: Any calls to the Hyperledger Fabric network will have to be signed with a private key and a properly signed X.509 certificate for verification purposes. Each of the actors within your network (peers, orderers, client apps, admins) will have a digital identity encapsulated in an X.509 certificate. You’ll need certificates for both an admin user and a new user, which you can call user1.

Intro to Chaincode

After you have finished generating keys and certificates, you need to install the chaincode on your peers. After the chaincode is installed, you will instantiate it, which will call the chaincode constructor and create blocks on the ledger. This is seen in the initLedgerfunction from the chaincode/carauction.js file. This will create a vehicle, a few members, and a vehicle listing (or a listing on which members can bid). After that, the members make offers for the car, which is actually invoking chaincode under the hood.

Note: When you invoke chaincode, you are making a transaction on the blockchain network. This is extremely important. Chaincode is how you make transactions on the network. When you make an offer, the chaincode checks for two types of errors:

1.    The owner of the car bids on his own car.

2.    The bidder doesn’t have enough money in his account to make the bid.

If both checks are passed, an offer is recorded on the ledger. Once the auction closes, you call

the closeBidding transaction as seen in the  chaincode/carauction.js file. That gives the car to the highest bidder, transferring funds from the buyer to the seller so the buyer gains ownership of the car.

To ensure that your auction has worked correctly, you can query the ledger at the end to ensure that the car has the correct owner and that the seller has been credited the correct amount in their account.

Finally, you can check the logs of the peers on the IBM Blockchain Starter Plan, and also view the details of the blocks to see how transactions are recorded.

When you have completed this code pattern, you will understand how to:

  • Interact with the IBM Blockchain Starter Plan
  • Build a blockchain network using Hyperledger Fabric Node SDK
  • Inspect and read logs from applications that are connected to the IBM Blockchain Starter Plan

Flow

1.  User downloads IBM Blockchain Starter Plan connection profile and adds the URL/secret for the CA in the Node app.

2.  User enrolls the admin and registers a user with the CA.

3.  The user installs, instantiates, and invokes the car auction chaincode on the peer.

4.  Ledger is updated, blocks are added to the Starter Plan service, and the response is sent to the Node app.

Instructions

Find the detailed instructions in the README. These steps show you how to:

1.    Clone the repo

2.    Enroll the app

3.    Register users

4.    Invoke the chaincode

5.    Run the app

6.    Query the ledger

For more information, visit https://ibm.co/2JnhR0l

AQv3uB-K_400x4001540788522.jpg

Debut Infotech A Top-Rated Web & Mobile App Development Company

Debut Infotech is a global mobile app and digital product development company that leverages Blockchain, IoT, AI, and other cutting-edge technologies to help SMEs, startups, and global enterprises harness the incredible power of modern digital products to drive their online businesses to unwavering new heights. 

Related Posts

Contact us for free app consultation

Project Inquiry

Send us your requirements and we will get back to you with a free quote!

How to Contact
https://github.com/bonecms/laravel-captcha