DEV Community


Hyperledger Fabric Architecture: Explained in detail

zathvarun profile image Varun Raj ・2 min read

Hyperledger Fabric Architecture


This is the top-level namespace for your project. Say you’re building a network for a supply chain, then usually the project name or the domain name is used as the Hyperledger Fabric’s domain.


Under a domain, there are orderers (can be multiple instances) who are responsible for making sure that all the peers in the network have committed a transaction. When a transaction is proposed and committed by a peer, the orderer is informed about the new transaction and it forwards and commits this block to all adjacent peers.

Note: Orderers are not dependent on one organization. However, it is suggested to have multiple orderers to reduce failure rates.


Organizations are the containers for the peers and respective certificate authorities (CA). Each organization has its own CA and a list of peers. Usually, organizations are used for physical separation of the blockchain network where each organization who uses your product can set up their physical machines and join your network.


The certificate authority is responsible for creating users certificates. It is used for verifying ownership in the network. Each certificate authority is tied to an organization.


The peers are nodes which are connected to clients and are responsible for committing transactions to the world state. Each peer has its own copy of transactions in a couchdb database. An organization can have more than one peer. Though it is advised to have multiple peers in an orderer to avoid data loss, having more than 3 or 4 peers might result in higher latency rates.

Discussion (4)

Editor guide
kcorlidy profile image

If there are multiple orderers with different domain and different cert/pem, and i only created one channel in orderer1. So there is one orderer is fulfilling his responsibilities? And the rest of them will not do anything? Can i let them help orderer1?

damcosset profile image
Damien Cosset

What languages, tools or concepts do you think developers should learn to become efficient with Hyperledger Fabric? Is a knowledge of Go mandatory?

zathvarun profile image
Varun Raj Author

I'd strongly suggest, Docker, NodeJS, Go And server management.

marcelloromani profile image
Marcello Romani

This must be a typo:
"Though it is advised to have multiple peers in an orderer "
I take it to mean "multiple peers in an organization"