dusk-network / rusk

The reference Dusk platform implementation and tools
Mozilla Public License 2.0
163 stars 60 forks source link

consensus: Nodes might ask blocks too early #2386

Closed fed-franz closed 1 month ago

fed-franz commented 2 months ago

Summary

The block syncup at startup might be triggered when the node is not yet well connected with the network. We should wait for good-enough connectivity before doing it.

Detailed Description

The GetBlocks request on startup (introduced by #2358) might occur when the Kadcast routing table is still too empty. This might invalidate the usefulness of the request and create problems when boostrapping several nodes at the same time.

Possible Solution

Wait for the Kadcast routing table to be filled with enough peers and then send the request. This can be done in parallel with the consensus process, or we could start consensus once the routing table is good enough.

To decide:

autholykos commented 1 month ago

This is confirmed by the improved logging.

herr-seppia commented 1 month ago

This is confirmed by the improved logging.

2024-10-11T07:12:32.147835Z  INFO node::chain: event="Ledger block loaded" height=0 hash="6fd6ba47eedbd7cde26366750dfed50661315e2aabe31c0d2931df196c075c3d" state_root="64da218d87dcc7aca87f3409cdb8e6822378cb27cb110a1fb44363f1027b5515" label=Final(0)
2024-10-11T07:12:32.147934Z  WARN node::network: event="Not enought alive peers to send msg, increased" topic=GetBlocks requested=16 current=0 increased=0