Hyperledger Fabric Tree
Just want to explain Blockchain in terms of a “TREE”, anyone can understand by looking at the tree, what is a trunk, root, etc., so this is a different step to explain blockchain. Hope you will like it.
For a tree, “root” is very important, without which it cannot survive, similarly in Blockchain we have something called “Root CA” to issue identity for a participant. Before we deep dive further, let’s understand the above blockchain tree first
It has One “Orderer” which means, we are using “SOLO” option and 4 Organization(Org1, Org2, Org3, Org4).
Each Org has 3 peers, of which one peer will be “Anchor Peer” in other words we call “Endorsing Peer”.
As you know, in blockchain network privacy, authenticity & atomic of the transaction is maintained by “Asymmetric Cryptographic” keys, it is issued by CA(Certificate Authority). So it is very important to generate the certificates for all the entity in the networks, let’s understand these two CA”s first, see below
CAs come in two flavors: Root CAs and Intermediate CAs. Because Root CAs (Symantec, Geotrust, etc) have to securely distribute hundreds of millions of certificates to internet users, it makes sense to spread this process out across what are called Intermediate CAs. These Intermediate CAs have their certificates issued by the root CA or another intermediate authority, allowing the establishment of a “chain of trust” for any certificate that is issued by any CA in the chain. This ability to track back to the Root CA not only allows the function of CAs to scale while still providing security — allowing organizations that consume certificates to use Intermediate CAs with confidence — it limits the exposure of the Root CA, which, if compromised, would endanger the entire chain of trust. If an Intermediate CA is compromised, on the other hand, there will be a much smaller exposure. — Source Hyperledger docs
So, Orderer is the one first will be started in the blockchain network and as soon as it started, but before we go-ahead with explaining other orgs / peers. we need to understand one important concept called “Channel”. Channel is nothing but a communication pipeline or you can even consider this as “You-tube channel” — just for example. Let’s say, you own a channel in you-tube & those who have subscribed to that channel, will get the video content right after you publish right?.. which means, it works in “pub-sub” format.
This is how Channel works here, the only exception is those peers who are participating in the channel can able to transact to other peers who have also joined that channel. Consider, in the above picture we have a “Common Channel” and all peers are joined in the same channel. So they can transact each other, whereas in production you won't find this easy way. You might have to create multiple channels in order to keep the private data transact to only intended participant in the network.
To put it in a simple way, let’s take a company, where we will have a different department. So do you communicate transparently a message to everyone in the organization or you send only to the required participants?. Of course, we send to those who should receive that message right. Absolutely, similarly here we will create multiple channels and ask peers to subscribe accordingly.
So when a peer participating in a channel, will have a ledger copy. yes, you are right!!, peer which is participating in more than one channel, will have more than one ledger copy accordingly.
Channel does have its own lifecycle
Similarly, CHAINCODE does have
SYSTEM CHAINCODE Types
- LSCC Lifecycle system chain code is to create and initialize a chain code on a channel.
- CSCC Configuration system chain code handles channel configuration on the peer side.
- QSCC Query system chain code provides ledger query APIs such as getting blocks and transactions.
So understand these key concepts will help you to debug. This article is quick bytes for those who really want to understand the blockchain picture in a better way!.
Check this: Teach Yourself: Hyperledger in 24 hours for complete tutorials