EspressoSystems / HotShot

http://hotshot.docs.espressosys.com/
101 stars 25 forks source link

Increase delays to 5 seconds #3333

Open lukaszrzasik opened 2 weeks ago

lukaszrzasik commented 2 weeks ago

Closes #3199

This PR:

Please read the analysis of the delays and timeouts.

I've added a file with a staging env config plus the adjusted delays. This is the only change here.

This PR does not:

Key places to review:

shenkeyao commented 2 weeks ago

[Pasting my comment on Zulip]

Agree that secondary_network_delay, or CombinedNetworks::delay_duration in the doc, should be in the range of (3, 12) and 5 seems to make sense. Also +1 that it's better to adjust via HotShot config.

One thing I'm not sure about is the data_request_delay parameter, or NetworkRequestState::delay and DelayedRequester::delay in the doc. Is it an additional delay (i.e., the total delay is close to secondary_network_delay + data_request_delay), or are they more like parallel delays? If it's the former case, I think data_request_delay should be a small value, e.g., 200 ms as before, to not make the total delay too close to 12 seconds. If it's the latter case, then I think it makes sense to adjust these two parameters to the same/similar value.

lukaszrzasik commented 2 weeks ago

[Pasting my comment on Zulip]

Agree that secondary_network_delay, or CombinedNetworks::delay_duration in the doc, should be in the range of (3, 12) and 5 seems to make sense. Also +1 that it's better to adjust via HotShot config.

One thing I'm not sure about is the data_request_delay parameter, or NetworkRequestState::delay and DelayedRequester::delay in the doc. Is it an additional delay (i.e., the total delay is close to secondary_network_delay + data_request_delay), or are they more like parallel delays? If it's the former case, I think data_request_delay should be a small value, e.g., 200 ms as before, to not make the total delay too close to 12 seconds. If it's the latter case, then I think it makes sense to adjust these two parameters to the same/similar value.

My answer from Zulip:

They are more likely to be parallel. secondary_network_delay delays DA related messages (DA proposal, DA vote, DAC) + Quorum vote. On the other hand, data_request_delay delays the requests. At the moment requests are only used to get the missing VID and an older quorum proposal which are both needed to validate the current quorum proposal. So these are parallel to DA path.