DEV Community

Varun Raj for Skcript

Posted on

Hyperledger Fabric Architecture: Explained in detail

Hyperledger Fabric Architecture

DOMAIN

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.

ORDERERS

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

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.

CERTIFICATE AUTHORITIES

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.

PEERS

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.

Top comments (4)

Collapse
 
kcorlidy profile image
kcorlidy

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?

Collapse
 
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?

Collapse
 
zathvarun profile image
Varun Raj

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

Collapse
 
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"