Raft orderers only use the endpoints in
that section for replication, but when exchanging consensus messages they
use the host and port in the consenters section (the one with the TLS certificates).
From:
chintanr97@...
To:
fabric@...
Date:
05/12/2020 03:48 PM
Subject:
[EXTERNAL] [Hyperledger
Fabric] Removing majority of orderers from OrdererAddresses section in
channel in Hyperledger Fabric #raft #fabric-orderer #hyperledger-fabric
Sent by:
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?