I have implemented a simulator (in Java) to show the performance of my protocol designed for distributed and peer-to-peer networks, in which transactions are processed via a consensus mechanism. Since it is a simulator, the nodes/peers are virtual (and not a real machine.)
My question is that is it possible to perform the consensus outside the main application (e.g. in a real distributed network) by passing necessary inputs (such as, list of nodes/peers etc.) and after finishing each round of consensus, the result of consensus is returned to the simulator ?
Is this a practical method? If so, there are two main advantages: (1) The evaluation can be more precise, as the consensus has been performed by real machines. And (2) The simulator can get free of implementing several different consensus mechanisms.
Can Apache Zookeeper be used for this purpose in order to execute the consensus externally?
Or can something like micro service in RabbitMQ be efficient? Or even using cloud computing systems in order to perform consensus. (or any other practical method ...)
Following figure describes generally what I want:
P.S. If the question is not yet clear enough, please let me know to modify it.