Skip to content

Block out-of-sync proposals #2784

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

shawn-zil
Copy link
Contributor

@shawn-zil shawn-zil commented May 20, 2025

I chose this approach - to refuse/block the broadcast of the proposal - as it has the least impact on the rest of the code, as opposed to checking/failing at every step of the proposal assembly. So, a node is allowed to go thru the motions of assembling a proposal but will only broadcast a proposal if-and-only-if it is in-sync at the time of broadcast.

In addition, the proposer checks that the proposed block is not lagging the chain, to address the situation where the node might have been out-of-sync at the start of proposal assembly but caught up by the time it had to broadcast the proposal.

The proposal itself could very well be a fork, and that is dealt with elsewhere, as usual.

@shawn-zil shawn-zil linked an issue May 20, 2025 that may be closed by this pull request
@shawn-zil shawn-zil force-pushed the 2775-do-not-propose-when-syncing branch from 29bf787 to 7fc6290 Compare May 20, 2025 07:36
Copy link
Contributor

github-actions bot commented May 20, 2025

🐰 Bencher Report

Branch2775-do-not-propose-when-syncing
Testbedself-hosted
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
milliseconds (ms)
(Result Δ%)
Upper Boundary
milliseconds (ms)
(Limit %)
full-blocks-erc20-transfers/full-blocks-erc20-transfers📈 view plot
🚷 view threshold
1,437.70 ms
(+12.63%)Baseline: 1,276.45 ms
1,709.53 ms
(84.10%)
full-blocks-evm-transfers/full-blocks-evm-transfers📈 view plot
🚷 view threshold
591.87 ms
(+18.28%)Baseline: 500.38 ms
658.99 ms
(89.81%)
full-blocks-giant-deploy/full-blocks-giant-deploy📈 view plot
🚷 view threshold
7,654.70 ms
(+1.65%)Baseline: 7,530.28 ms
10,852.25 ms
(70.54%)
full-blocks-scilla-add/full-blocks-scilla-add📈 view plot
🚷 view threshold
1,280.30 ms
(+6.65%)Baseline: 1,200.49 ms
1,697.64 ms
(75.42%)
full-blocks-scilla-load/full-blocks-scilla-load📈 view plot
🚷 view threshold
4,321.80 ms
(+3.86%)Baseline: 4,161.28 ms
5,278.92 ms
(81.87%)
full-blocks-scilla-store/full-blocks-scilla-store📈 view plot
🚷 view threshold
3,635.50 ms
(+4.47%)Baseline: 3,479.83 ms
4,303.51 ms
(84.48%)
full-blocks-zil-transfers/full-blocks-zil-transfers📈 view plot
🚷 view threshold
3,614.40 ms
(+12.90%)Baseline: 3,201.49 ms
7,198.85 ms
(50.21%)
process-empty/process-empty📈 view plot
🚷 view threshold
12.92 ms
(+4.28%)Baseline: 12.39 ms
14.12 ms
(91.52%)
🐰 View full continuous benchmarking report in Bencher

@shawn-zil shawn-zil force-pushed the 2775-do-not-propose-when-syncing branch from 7fc6290 to 4481044 Compare May 21, 2025 02:00
@shawn-zil shawn-zil changed the title Blocks out-of-sync nodes from proposing Block out-of-sync proposals May 21, 2025
@shawn-zil shawn-zil enabled auto-merge May 21, 2025 02:23
@shawn-zil shawn-zil force-pushed the 2775-do-not-propose-when-syncing branch from 830b7bc to 959a640 Compare May 22, 2025 02:03
@shawn-zil shawn-zil force-pushed the 2775-do-not-propose-when-syncing branch from 959a640 to ee7ce94 Compare May 26, 2025 03:37
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.

Prevent proposing while am_syncing is true
1 participant