This is a bi-weekly update about what I’ve been working on since the last update.
Peers management issue
Related issue: Issue #3017
There was an issue with a node on testnet that couldn’t sync. After checking the number of available peers it turned out that nodes keep info about too many peers for too long - also those that are not available anymore. As a result, when the node loses connection with its current peers, it tries to connect to those mostly unavailable peers which results in connection timeouts.
Block/tx validations outside of conductor process
Related issues: Issue #3028, Issue #2167
Related branch: GH-2167-slow-sync
There has been some progress done, some validations can be performed in peer connection processes. This also means changing/removing the validations when a new block is being added inside the conductor process. This still requires more thought on how to proceed.
Throughput tests
Related PR: PR #3046
There is a test which shows how long it takes to add a block with its validations (and other operations) to the database vs. how long it takes to add a block to the database without the validations. It shows that the validations takes significant amount of time.
Peer connections in logs and HTTP /status endpoint
Related PRs: PR #3029, PR #3034
In order to easily check the number of currently connected peers (inbound and outbound connections) there was a new log message added and also the HTTP /status endpoint was extended.