[Shipped] Optimization of block creation


  • Improve the transaction throughput.


  • 3 month


@hyng; Advisor: @dungtran @0xkumi

Key results:

  • We have benchmarked on the Devnet environment and got 245 privacy transactions/10s/shard.
  • Results we expect after improvement: 500 privacy transactions/10s/shard.


  • Enhance the Propose and Voting phases of the multiview-pBFT process.

After a while of research and analysis, we realized that the problem lies with the way we design the current MemPool. So we have created a new Transaction Pool model, and in the next 2 weeks, we expect to complete the implementation of this new design. Then we will do the benchmark, if successful, the results will be updated.


We implemented 80%, progress was delayed about one week compared to expected because we found out that some parts of the Transaction package need to be refactored.
Besides, we also worked with the QC team to create some scripts for test performance, to serve the testing process. (Thanks @Rocky)


We have almost completed the development of the new Transaction Pool. In the past week, this version was deployed on DevNet and the benchmark results are quite impressive, better than we expected. This is fine, but we need more time to ensure that the new model is not only fast but also secure.
Next week, we will test more and improve this model to achieve the main goal - reducing block creation time.


Last week we went through stress tests and had some problems with the message receiving system. We found the cause and will improve them this week. However, this new model was designed for Privacy version 1, so we need time to upgrade it to accommodate the new version of Privacy.