Skip to content

Conversation

mwtian
Copy link
Contributor

@mwtian mwtian commented Sep 11, 2024

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:

@mwtian mwtian requested a review from mystenmark as a code owner September 11, 2024 23:00
Copy link

vercel bot commented Sep 11, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
sui-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 13, 2024 6:55pm
3 Skipped Deployments
Name Status Preview Comments Updated (UTC)
multisig-toolkit ⬜️ Ignored (Inspect) Visit Preview Sep 13, 2024 6:55pm
sui-kiosk ⬜️ Ignored (Inspect) Visit Preview Sep 13, 2024 6:55pm
sui-typescript-docs ⬜️ Ignored (Inspect) Visit Preview Sep 13, 2024 6:55pm

Copy link
Contributor

@arun-koshy arun-koshy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!!

Copy link
Contributor

@akichidis akichidis left a 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.


pub(crate) fn default_propagation_delay_stop_proposal_threshold() -> u32 {
// In experiments, propagation delay is usually 0 round.
10
Copy link
Contributor

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?

Copy link
Contributor Author

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.

@mwtian mwtian merged commit cb17e68 into main Sep 13, 2024
48 checks passed
@mwtian mwtian deleted the consensus-proposer branch September 13, 2024 21:07
mwtian added a commit that referenced this pull request Sep 13, 2024
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:
mwtian added a commit that referenced this pull request Sep 13, 2024
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:
suiwombat pushed a commit that referenced this pull request Sep 16, 2024
## 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:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants