-
Notifications
You must be signed in to change notification settings - Fork 47
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
[TECH DEBT] Refactor memberships, remove non-staked nodes #3653
Conversation
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.
couple of things
crates/hotshot/src/traits/election/static_committee_leader_two_views.rs
Outdated
Show resolved
Hide resolved
crates/hotshot/src/traits/election/static_committee_leader_two_views.rs
Outdated
Show resolved
Hide resolved
Since you are already in here I want to pose some questions, why do we even have a DA membership at all? Why do we even have a DA leader concept at all, the leader is just the leader of a view. For DA even we theoretically could just send votes to whoever sent the proposal regardless of view/leadership. So can we just combine the memberships to just be 1 singular membership that is used everywhere and a DA committee is just a part of it |
Good question, I also thought this. I actually had gotten it to be almost removed in this PR, but didn't want to touch voting logic too much. I am 100% in favor of combining them though EDIT: We have decided to keep them this way for now, making the necessary changes for the above later. It comes down to a high coupling with voting/membership types |
This PR:
Refactors memberships to:
quorum leader == DA leader
hack we are doing)non_staked
nodesIt also removes non-staked node support from HotShot as a whole. We don't use the permissioned builder anymore, so it is increasing complexity on HS and the sequencer
Why do we need these changes?
While removing support for non-staked nodes, I remembered a few issues we had with memberships in the past; the primary one being that they are easy to get wrong. One time in the sequencer we constructed the DA membership with DA nodes (as would make sense), but this lead to an issue where DA votes were going to the wrong leaders. This makes things much more verbose