-
Notifications
You must be signed in to change notification settings - Fork 11.7k
[Consensus] stop proposing when propagation delay is high #19328
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
3 Skipped Deployments
|
32a64e7
to
6c2383d
Compare
6c2383d
to
632431d
Compare
17fdff4
to
0919949
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!!
0919949
to
00dc991
Compare
00dc991
to
d253384
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @mwtian ! Let's just try to test as much as possible edge case scenarios in PT.
consensus/config/src/parameters.rs
Outdated
|
||
pub(crate) fn default_propagation_delay_stop_proposal_threshold() -> u32 { | ||
// In experiments, propagation delay is usually 0 round. | ||
10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to be that strict? In today's round speed this seems to be < 1sec of latency. I guess we could be a bit more forgiving to avoid jitters?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe because of the streaming nature of TCP, this value is usually 0 in production. Occasionally it goes to 1. When a host has issues, usually it shoots up. Increased this to 20 to be on the safe side for the initial rollout.
Introduce `RoundProber` to gather information from each authority, on their received rounds from others. The gathered data on block propagation delays across the network are exported to metrics. The propagation delay for own blocks is used to control whether proposing blocks can happen. CI PT --- Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API:
Introduce `RoundProber` to gather information from each authority, on their received rounds from others. The gathered data on block propagation delays across the network are exported to metrics. The propagation delay for own blocks is used to control whether proposing blocks can happen. CI PT --- Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API:
## Description Introduce `RoundProber` to gather information from each authority, on their received rounds from others. The gathered data on block propagation delays across the network are exported to metrics. The propagation delay for own blocks is used to control whether proposing blocks can happen. ## Test plan CI PT --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API:
Description
Introduce
RoundProber
to gather information from each authority, on their received rounds from others. The gathered data on block propagation delays across the network are exported to metrics. The propagation delay for own blocks is used to control whether proposing blocks can happen.Test plan
CI
PT
Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.