Search code examples
hyperledger-fabrichyperledgerhyperledger-composer

Why does hyperledger-fabric need more than one orderer?


I have several questions:

  1. Why does hyperledger network need more than one orderer node? If I understand correctly, after nodes validate the transactions, they pass those transactions to an orderer node. orderer node will timestamp those transactions, push them in a block and send that block to the nodes back. nodes will append that block to the ledger. Did I say everything correctly? if Yes, why do we need more than one orderer?

  2. I know that I can add more entities to my network so that they can execute transactions and make smart contract calls and view my private blockchain. but where do nodes come from? do I add them? who adds them? organization is just someone who will have a certificate and who will make the transaction ,but what about nodes? nodes have to be computers and who brings nodes to network? if organizations can add nodes for their transaction to take place, why would they ever need to add more than one node?

  3. If I made the network and all is good, how do I connect it? I know I can use sdk or node.js client but in a nutshell, how to connect it? Do I use the IP address of the computer where that blockchain is running or what?


Solution

  • You will find full answers to your questions in the Fabric Docs, but quick answers below:

    1. In Hyperledger Fabric - (you have the process roughly correct in your description) a single orderer is a single point of failure, and a single unit of capacity - a multi node orderering service can be more resilient and more performant.
    2. Organisations would add multiple peer nodes for resiliency and capacity
    3. Yes, you could connect using the Node SDK or GoLang SDK. You would have (create) a connection profile that describes your Fabric Network of Nodes which would contain amongst other things the URLs needed to connect to the nodes.