Skip to content

Trust quorum: reconfiguration and commit behavior #8052

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 4 commits into
base: main
Choose a base branch
from

Conversation

andrewjstone
Copy link
Contributor

This PR adds further functionality to the sans-io trust quorum protocol. Configurations can now be committed via Node::commit_reconfiguration. For each reconfiguration attempt made on top of a committed configuration, the rack secret for the last committed reconfiguration will be reconstructed after retreiving a threshold of shares from members of that configuration. At this point this "old" rack secret will be encrypted with a key derived from the rack secret for the current configuration being coordinated and included as necessary in prepare messages sent out during coordination.

The property based test for coordinator behavior has been expanded to include support for this functionality, as well as to allow dropping messages between nodes if such an action is generated. The bulk of this PR lies in the test code, and it has been restructured to handle multiple reconfigurations and commits. This has led to the tracking of shares across non-existent test nodes, and enhancements to the model.

Additionally, a small change was made to copy some of the errors out of validators.rs and into their own file.

This PR adds further functionality to the sans-io trust quorum protocol.
Configurations can now be committed via `Node::commit_reconfiguration`.
For each reconfiguration attempt made on top of a committed
configuration, the rack secret for the last committed reconfiguration
will be reconstructed after retreiving a threshold of shares from
members of that configuration. At this point this "old" rack secret will
be encrypted with a key derived from the rack secret for the current
configuration being coordinated and included as necessary in prepare
messages sent out during coordination.

The property based test for coordinator behavior has been expanded to
include support for this functionality, as well as to allow dropping
messages between nodes if such an action is generated. The bulk of
this PR lies in the test code, and it has been restructured to handle
multiple reconfigurations and commits. This has led to the tracking of
shares across non-existent test nodes, and enhancements to the model.

Additionally, a small change was made to copy some of the errors out of
`validators.rs` and into their own file.
@andrewjstone andrewjstone requested a review from sunshowers April 25, 2025 23:05
It's no longer necessary to filter out the coordinator explicitly, as
it's share is always included in the `collected_shares` upon construction.
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.

1 participant