Verify and Test Multiple orderer using Kafka cluster


(Honey Shah) #1

My network is with 1 peer, 1 CA and 3 orderers
I have 3 zookeepers and 4 Kafka brokers. (All are in one machine)

I have fabric with 3 orderers but the problem is when I stop the orderer container which runs on 7050 port, I can’t make any transaction. It says me that “service unavailable” but when I stop another container (which is running on the port other than 7050) all works fine. What should be the reason behind this?

logs when I start the fabric:

1. peer logs: https://pastebin.com/hPhKu3QB
2. orderer0 logs: https://pastebin.com/57aYAeW2
3. orderer1 logs: https://pastebin.com/PzLKurE2
2. orderer2 logs: https://pastebin.com/5D4shcJN

By tracing the log we found that the orderer 0 gives following warning.

2018-06-25 09:53:23.723 UTC [common/deliver] deliverBlocks -> WARN 4da
[channel: composerchannel] Rejecting deliver requestfor
172.18.0.14:37702 because of consenter error

Note: I am testing it using composer tool. I can also share the code if anyone can look into.
Git repo link : https://github.com/HoneyShahOX/fabric-multiple-orderer
All the modified code for setting up kafka cluster with multiple orderers is in https://github.com/HoneyShahOX/fabric-multiple-orderer/tree/master/fabric-scripts/hlfv11 folder.

For start the network run startFabric.sh file of the root folder.

I hope it makes sense to your end. Let me know in case anything you would like to ask.

Thanks In Advance.


(Honey Shah) #2

Can anyone help please?


(Naveen Honest Raj) #3

Hey @Honey_Shah, if I am not wrong, you tried stopping one of the multiple orderer and tried making a transaction but it failed. You expected the other orderers will take up the failed transaction and execute.

There are two ways you can handle this.

  1. By docker-swarm approach. Please try understanding the working of docker-swarm.
  2. By writing a fault-tolerant logic in the fabric-client which uses other orderers to execute the transaction if the proposal failed.

I hope this helps.


(Honey Shah) #4

Hey, thanks for the answer. But I found later that there is issue with fabric node sdk https://jira.hyperledger.org/browse/FAB-10627 that it takes only first orderer defined in connection.json , but it is resolved now and I am waiting for composer upgrade. Can I overcome my issue using docker-swarm without waiting for composer upgrade?