Search code examples
hyperledger-fabricraft

Removing majority of orderers from OrdererAddresses section in channel in Hyperledger Fabric


Consider the following situation:

  1. I am running fabric-samples/first-network for the HLF in RAFT mode.
  2. I use the CLI container to fetch the latest block for mychannel and edit the OrdererAddresses section by removing 4 orderers namely, orderer2.example.com, orderer3.example.com, orderer4.example.com, orderer5.example.com from it.

I am assuming this should disturb RAFT protocol because orderers are meant to communicate with one another by looking at the endpoints in OrdererAddresses section.

Now, the issue is that, despite the above fact, the RAFT keeps working fine. I wait for 10 minutes, assuming RAFT would break after EvictionSuspicion timeout as no longer leader can comunicate to other orderers. But this does not happen. I am still able to read blocks from the mychannel as well as I am able to submit new transactions (invoke operations) on the chaincode on that channel.

This means that OrdererAddresses are not looked into while communicating. Please correct me if I am wrong. By this, I need to know:

What is the exact functionality of OrdererAddresses section in the RAFT channels?


Solution

  • I learnt that RAFT orderers communicate to one another using the host and port properties of the Consenters section for the purpose of consensus messages. The endpoints present in the OrdererAddresses section are used for replication of blocks.

    The learning could be verified from here as answered by Yacov M.