Skip to content
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

Vote hinting improvements for unconfirmed predecessors #4290

Closed
qwahzi opened this issue Sep 21, 2023 · 1 comment · Fixed by #4312
Closed

Vote hinting improvements for unconfirmed predecessors #4290

qwahzi opened this issue Sep 21, 2023 · 1 comment · Fixed by #4312
Assignees
Labels
performance Performance/resource utilization improvement
Milestone

Comments

@qwahzi
Copy link
Collaborator

qwahzi commented Sep 21, 2023

Summary

Piotr is working on potential vote hinting improvements for the Nano node. Screenshot from a heavily desynchronized local dev environment (~2M backlog):

image

More details from Piotr & Bob:

The larger the backlog the larger the timestamp differences between nodes. Elections start by least-recently-used timestamps, so each node starts a different set & everyone gets stuck. Hinting takes ~1k blocks with the most vote weight & starts elections for those (ignoring timestamps & buckets), which allows the whole network to make progress & resync

Vote hinting runs continuously, but Piotr's work makes it much better. Each node can only activate so many elections, & nodes only vote/confirm transactions in active elections. But if a threshold of votes is reached, vote hinting kicks in, & an election is started for that block. By default, there are 5000 slots for regular elections, & an additional 1000 slots for hinted elections

This approach appears to eliminate election churn; not a single scheduled election timed out. The problem was that elections always degraded to the point where some nodes had the dependencies confirmed and some did not. The improved hinting checks for that and activates elections for any predecessors that are not yet confirmed

@qwahzi qwahzi added the performance Performance/resource utilization improvement label Sep 21, 2023
@qwahzi qwahzi added this to the V26.0 milestone Sep 21, 2023
@pwojcikdev pwojcikdev linked a pull request Oct 9, 2023 that will close this issue
@qwahzi
Copy link
Collaborator Author

qwahzi commented Nov 20, 2023

Additional related PR here: #4334

@qwahzi qwahzi moved this to Merged / V26.0 in Nano Roadmap Jul 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Performance/resource utilization improvement
Projects
Status: Merged / V26.0
Development

Successfully merging a pull request may close this issue.

2 participants