-
Notifications
You must be signed in to change notification settings - Fork 87
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
Implement MBT for ICS04 Channel handlers #30
Comments
We have figured out that client handlers are too primitive to throw the heavy MBT machinery at them; e.g. the CreateClient handler is only incrementing one counter, so no real logic to test. Considering that now the Channel handlers are coming to completeness, we are shifting focus to them. They have quite non-trivial implementation, that deserves thorough testing; see e.g. the ChanOpenTry handler. The corresponding TLA+ model is also non-trivial, so this seems to be a good match for MBT. |
Closes: #30 Query of client consensus now distinguishes between query height and consensus height. Specifically: - `chain_height` is the height at which the query is made (can be 0 if the latest state on chain is queried). - `consensus_height` is the consensus height of the client running on this chain but it represents a height of the client's chain and should be used to construct the query path.
Closing this as stale; we should reformulate these issues when we address #148 (and our correctness strategy in general). |
Add Calculate method to CommitmentProof
We need to initiate model-based testing for IBC-rs; while initially IBC client handlers (ICS02) have been chosen for that, we have decided to do it for ICS04 Channel handlers instead; see the explanation below.
The goal is to complement the current manual tests for channel handlers with MBT-based ones, such that model-based tests will be able to explore unexpected corner cases.
We can split the work here in multiple parts, as follows:
Bugs found with MBT:
ctx.host_current_height().revision_height < ctx.host_chain_history_size()
informalsystems/hermes#685The text was updated successfully, but these errors were encountered: