Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Hyperledger Cookbook

You're reading from   Hyperledger Cookbook Over 40 recipes implementing the latest Hyperledger blockchain frameworks and tools

Arrow left icon
Product type Paperback
Published in Apr 2019
Publisher Packt
ISBN-13 9781789534887
Length 310 pages
Edition 1st Edition
Languages
Concepts
Arrow right icon
Authors (3):
Arrow left icon
Chuangfeng Zhang Chuangfeng Zhang
Author Profile Icon Chuangfeng Zhang
Chuangfeng Zhang
Zhibin (Andrew) Zhang Zhibin (Andrew) Zhang
Author Profile Icon Zhibin (Andrew) Zhang
Zhibin (Andrew) Zhang
Xun (Brian) Wu Xun (Brian) Wu
Author Profile Icon Xun (Brian) Wu
Xun (Brian) Wu
Arrow right icon
View More author details
Toc

Table of Contents (12) Chapters Close

Preface 1. Working with Hyperledger Fabric FREE CHAPTER 2. Implementing Hyperledger Fabric 3. Modeling a Business Network Using Hyperledger Composer 4. Integrating Hyperledger Fabric with Explorer 5. Working with Hyperledger Sawtooth 6. Operating an Ethereum Smart Contract with Hyperledger Burrow 7. Working with Hyperledger Iroha 8. Exploring the CLI with Hyperledger Indy 9. Hyperledger Blockchain Scalability and Security 10. Hyperledger Blockchain Ecosystem 11. Other Books You May Enjoy

Using CouchDB

In this recipe, we will explore how to start up a network using CouchDB and then look at transactions applied into CouchDB from a web UI. To successfully execute this recipe, you need install the Hyperledger Fabric with samples and binaries on the AWS EC2 instance.

How to do it...

To use CouchDB, follow these steps:

  1. Make sure network is not up. If it is up, shut down the network, as shown here:
        $ cd fabric-samples/first-network
$ sudo ./byfn.sh down
  1. Start up the BYFN network using CouchDB:

Here we will start up the network by using the CouchDB database.

        $ cd fabric-samples/first-network
$ sudo ./byfn.sh up -c mychannel -s couchdb

Following screenshot shows our network starting up:

  1. Install chaincode by navigating into the CLI container using the command-line interface:
        $ sudo docker exec -it cli bash
$ peer chaincode install -n marbles -v 1.0
-p github.com/chaincode/marbles02/go
  1. Instantiate the chaincode:
        $ export CHANNEL_NAME=mychannel
$ peer chaincode instantiate -o orderer.example.com:7050
--tls --cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/
crypto/ordererOrganizations/example.com/orderers/
orderer.example.com/
msp/tlscacerts/tlsca.example.com-cert.pem
-C
$CHANNEL_NAME -n marbles -v 1.0 -c '{"Args":["init"]}' -P "OR
('Org0MSP.peer','Org1MSP.peer')"
  1. Invoke the chaincode. The following commands invoke chaincode to create marble.
        $ peer chaincode invoke -o orderer.example.com:7050 --tls 
--cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/
crypto/ordererOrganizations/example.com/orderers/
orderer.example.com/
msp/tlscacerts/tlsca.example.com-cert.pem
-C $CHANNEL_NAME -n marbles -c

'{"Args":["initMarble","marble5","blue","35","tom"]}'

Following screenshot shows successful creation of chanincode:

  1. Open the CouchDB UI by navigating to http://host-ip:5984/_utils/#/_all_dbs (in my case, my AWS public IP address is 3.91.245.92, so the URL is http://3.91.245.92:5984/_utils/#/_all_dbs):

In order to allow public access to CouchDB, we need open port 5984. Navigate to the AWS security group under the instance, launch the wizard, and choose Action | Edit Inbound Rules | Add Inbound Rule. This is shown as follows. After this, click Save. You can follow the below example to allow all IP address to access CouchDB:

  1. From mychannel_marbles, we can query and see the transaction ID with marble5:
  1. Click marble5, and you will see the default marble5 files:

Here, we saw how to use CouchDB to view how transactions get created, and updated them on the Fabric network. We will write a smart contract and deploy it as an application in the next recipe.

How it works...

In this recipe, we learned how to use CouchDB as the state database with Hyperledger Fabric. We also looked at how to use CouchDB to deploy Marbles to the network.

Hyperledger Fabric supports two types of peer databases: LevelDB is the default state database embedded in the peer node and stores chaincode data as simple key-value pairs; and CouchDB is an optional alternate state database that supports rich queries when chaincode data values are modeled as JSON. This recipe describes the steps required to use CouchDB as the state database with Fabric. CouchDB is a JSON document datastore rather than a pure key-value store, therefore enabling indexing of the contents of the documents in the database.

In the last recipe, we will show you how to write your first smart contract application and deploy it into the blockchain.

You have been reading a chapter from
Hyperledger Cookbook
Published in: Apr 2019
Publisher: Packt
ISBN-13: 9781789534887
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at AU $24.99/month. Cancel anytime