Re: How to increase capacity of peer node to handle many transactions simultaneously #hyperledger-fabric #fabric


Prasanth Sundaravelu
 

Hi Keerthi, 

You might want to check at the client. The reason transactions fail in your case is not because of peer's incapability. I'm assuming you have created your client based on samples provided in the tutorials.

In node.js client script samples (from tutorials), for every transaction, the following happens: 

 1. A new grpc channel gets created and opened between client and every peer, and the invocation request is sent.
2. Client receives the response of peers and creates a transaction proposal.
3. A new grpc channel gets created between client and orderer, and the proposal is sent.
4. Client recieved response(status) from orderer.
5. Grps channels get closed.

Notice here, a new grpc channel gets created for every transaction in this case, which is costly. 

Also, everytime when a communication channel is being created, client also requests for metadata of blockchain like channel, chaincodes etc. This meta data wont change on transaction basis, hence it is also unnecessarily costly.

If you reuse already created grpc channels for multiple transactions, you could achieve higher TPS.

An ideal approach would be to manage sessions for users and reuse open communication channels. After certain amount of inactivity, they can be closed.

On Thu, 12 Mar 2020, 12:28 am , <keerthycbe@...> wrote:
Hi,

Currently, our endosring peer node can't execute more than 30 transactions simultaneously. If I send a batch with 30 transactions, peer node is able to execute all transactions successfully. if the batch has more than 30 then the transaction fails. I would like to understand the design of peer node like how many transactions it can execute simultaneously and how can we improve it?

Thanks and Regards
Keerthi

Join fabric@lists.hyperledger.org to automatically receive all group messages.