You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trust Quorum: Prepare phase retries and testing (#8000)
This PR implements the ability for a trust quorum node to handle prepare
acknowledgements and send retries when time has advanced via
`Node::tick` calls.
The vast majority of the code is test code. `coordinator.rs` is the
start of a property based test to test the behavior of a node that is
coordinating reconfigurations. The coordinating node itself is the
system under test (SUT), and there is an abstract model that keeps
enough information to allow asserting properties about the behavior of
the SUT. A `TestInput` is generated which contains an initial
configuration for the coordinating node and a generated list of abstract
`Action`s to be executed by the test. Each action has a corresponding
method on the `TestState` for handling it. These methods update the
model state, SUT state, and then verify any properties they can.
The `Action` enum is going to grow in the next few PRs such that
reconfigurations beyond the initial configuration will run and messages
can be dropped. These will correspond with an expansion of the `Node`
implementation to allow recovering key shares from past committed
configuration and the ability to handle `Commit` and `Cancel` API calls
which ultimately are triggered from Nexus, as described in RFD 238.
0 commit comments