Juraj Hlista - Focus of the next grant period

The main focus of my work in the upcoming weeks will be:

Sync improvements

This task covers finishing work on moving some block and transaction validation checks from the conductor process to peer connection processes. Some of these validations are expensive operations (especially signature verification) and moving them from a single erlang process (conductor) to multiple ones (peer connection) should speed up the sync.


As Karol mentioned in his post, we are planning to bring some parts of the node into browser and I’d like to be a part of this effort.


It would be great to read a little bit more details about the challenges and planned work. Maybe including links to some open tickets and designs on GitHub.

If more information about it is shared publicly (including the progress, goals, challenges and solutions) as easier it might be for others to contribute to your efforts.

Thank you for the update!

The sync work can be split into:

  • peers management - the node keeps info about not-anymore-alive-peers for too long, and these peers are propagated to other nodes that try to connect to them. It can result in a lot of connection timeouts. This issue is mainly present on the testnet, tracked as Issue #3017. There are also 2 related PRs (that don’t fix the original issue yet): PR #3029, PR #3034;

  • block/tx validation - the Issue #3028 is still waiting for its PR, but work in progress can be found here;

  • block insertion throughput test - there is a block throughput write test (PR #2984 by Tino), which measures how long it takes to write 1000 blocks to the database. I’m going to write a similar test, but it will also measure time spent validating block (and possibly transactions) and other opearations. We can compare those results and see how to improve it.