How To Get Transaction History Data In Hyperledger Composer
loader image
Blockchain Technical

How To Get Data Of Transaction History In Hyperledger Composer

Have you ever tried of getting the data of transaction history in Hyperledger Composer? If yes, have you succeeded in fetching data? or still trying to get but couldn’t find the right way to acquire the data of transaction in hyperledger composer? Then this guide would definitely will help you to get any specific data of transaction history in Hyperledger Composer.

Hyperledger Installation

Here I am using hyperledger fabric 1.2, composer 0.20 (latest), and mac Os.

     1) Hyperledger chain code,
     2) Orderer
     3) Business network
     4) Composer rest api

Follow this official doc to install

I hope u have installed all the dependencies,

 Check whether you have installed all the dependencies mentioned below,

  • Operating Systems: Ubuntu Linux 14.04 / 16.04 LTS (both 64-bit), or Mac OS 10.12
  • Docker Engine: Version 17.03 or higher
  • Docker-Compose: Version 1.8 or higher
  • Node: 8.9 or higher (note version 9 and higher is not supported)
  • npm: v5.x
  • git: 2.9.x or higher
  • Python: 2.7.x
  • We recommend VSCode for code editor choice
  • composer-cli@0.20
  • composer-rest-server@0.20
  • generator-hyperledger-composer@0.20
  • yo


Create bna File In Hyperledger

Before creating the business network, we need to understand the few basic concept of business module first. So, let me explain you this business module through simple example.

Assume that you are going to add a car as the asset, For that we’re going to store the data such as model name, owner name, price.
Before that, here you should understand the concept of “RESOURCES” and “REGISTRY” in hyperledger composer.

  • The resource class represents the type of  asset or participant in the car model in registry.
  • New instances are created by “FACTORY”.
  • We can get the existing instances by “REGISTRY”.


Factory In Hyperledger Composer

You can use the Factory to create instances of Resource: transactions, participants and assets.
Do not attempt to create an instance of this class, but you can use the getFactory method instead.

newConceptConceptCreate a new concept with a given namespace, type, and identifier
newEventResourceCreate a new type with a given namespace and type
newRelationshipRelationshipCreate a new relationship with a given namespace, type, and identifier
newResourceResourceCreate a new resource (an instance of an asset, participant, or transaction)



   There are two type of registry,

  • Asset registry
  • participant registry

 You can get the complete methods along with sample examples for both registry here.

Link for asset registry

Link for participant registry
Above links will have more examples so to narrow down the result here we’re going to use the getAssetRegistry and sub methods for crud operation.

crud - hyperledger

Related: Agira Featured as “10 Fastest Growing Blockchain Solution Provider To Watch In 2019”


Steps To Create BNA File

   Step 1: Using yo generator we can create the scaffolding of business network & you could use the below command for that.


Step 2: Here you will be asked to choose the type of project and there you can choose “Bussiness Network”.

Step 3: Give the required details of the project as mentioned in below screen.
hyperledger composer

Step 4: Now, it will create you a folder with the name as you mentioned in the business network.

Then enter into the car-bna folder

It will have three files such as,

model file – Where we need to change the namespace & also you can define assets, participants, transactions.
Logic file –  Here you could write a logic of what’re the actions can happen while transaction happens.
Permission file –  where you can give and restrict the permission.

Step 5: Change the name space and add the asset & the fields in the file.


In this stage, we must add the transaction in the model file.

Best To Read: 6 Essential Q&A We Must Know About Blockchain


Create Transaction In Hyperledger Composer

Transactions are executed by participant to change the asset, likely, events are emitted when the transaction is executed, here the transactions will automatically create transactionId and also will record the execution time using timestamp.

Hyperledger composer

Create transaction (createCar) with carNumber and carDetails like this,


Now the file will look like this,

hyperledger composer

Now we need to write the logic for this transaction,

Let’s start applying the REGISTRY and FACTORY.

Create new folder named “lib” and inside of it add new file called “logic.js”, also you can spread the LOGIC in different file and ANNOTATIONS will connect code to the model.

Here, we should write the logic for the transaction in this js file.

First we should make the connection to the mode we use “@param” to connect the model and asset like this  “” and right after that, you can pass the data “createCar”. Also the use key is “@transaction” this will indicate that this function is a transaction.


Then write the function name which should represent the transaction name.
And remember,  while you pass the data, make sure to use the same params name which you assigned initially. For eg * @param {} createCar

Here we’re using getAssetRegistry to get asset data in asset registry vice versa you can also use getPartcipantRegistry to get participants in participants registry.

getFactory().newResource() –  To Create a new resource (an instance of an asset, participant, or transaction)

carRegistry.add(newCar); – used to add the new asset to asset registry

emit(event) – Used to declare the created event details in transaction.

Now model file will look like this,

hyperledger composer

Then follow the steps to build and deploy node,

  1. mkdir dist
  2. cd dist
  3. composer network install -a car-bna@0.0.1.bna -c PeerAdmin@hlfv1
  4. composer network start -c PeerAdmin@hlfv1 -n car-bna -V 0.0.1 -A admin -S adminpw
  5. composer card import -f ./admin@car-bna.card
  6. composer network ping -c admin@car-bna

Start the composer rest server to test


Then give details like below image,

Then you create the asset in createCar transaction API, after executing the api you can able to get the desired transaction details in Historian.

So, the final output will be like this once you query this historian.

You can also get my full code in github :

That’s all guys, hope now you learned to get data of transaction in Hyperledger composer. Give it a try and let us know your doubts & thoughts in the comment section below! Our Blockchain enthusiasts would love to hear from you!

Happy coding “HYPERLEDGERS”

Like What You're Reading ?

The following two tabs change content below.
Guru Moorthy

Guru Moorthy

An active Full Stack Blockchain developer having 3+ years of experience in Blockchain. With great passion, he immensely adapted himself in complete life cycle of Blockchain & Crypto development. And, This rising Blockchain enthusiast have forked and modified 12 out of top 20 Crypto coins and aiming to explore all use cases of Blockchain.

Leave a Reply

Your email address will not be published. Required fields are marked *

Join our 30,000+ subscribers, never miss out anything on our latest blogs, tips, tutorials, updates & more.