hyperledger-labs/mirbft

MIR nodes handling concurrent clients

Opened this issue · 2 comments

c5mao commented

Hi, mir is a very nice protocol, and I want to use it for my research. When I use mirbft to implement a state machine, I found that each client has to broadcast the request to every mirnode from the design, and every mir node will run mir to make an agreement on the order of the requests. It works perfectly for a small number of clients, such as 4 clients with 4 mir nodes setup. However, when I increase the number of clients but keep the number of mir nodes, I found that some of mir nodes do not have the payload when committing the request. For example, 16 clients with 4 mir nodes setup, each client has a unique client id, broadcast requests to mir nodes concurrently. In some cases, one or more of the mir nodes report "key not found" either when "Apply" the request or "Commit" the request. Can you please give me a hint on this issue? I am using the reqstore and processor in the mirbft library to handle the request.

The client API is currently in flux, and request forwarding is broken. Ultimately, once everything is working correctly, the nodes which have not acknowledged receipt of the client request to the leader which proposes a request in a batch will have that request forwarded to them by the leader. This was working for a period of time, but with a rather obtuse client interface, and it has been broken during the rework. Hopefully it should be back and working within a week or two.

c5mao commented

Hi, following up on my previous question. I updated my code with the latest mir-bft, April 15 version. But it seems that the issue I mentioned before is still there. Is there any update or plan for that? I think it is still related to the request forwarding.