-
Notifications
You must be signed in to change notification settings - Fork 316
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
tests: ❓ implement an IBC handshake using mock consensus engine #3758
Labels
A-IBC
Area: IBC integration with Penumbra
A-mock-consensus
Area: Relates to the mock consensus engine
A-testing
Area: Relates to testing of Penumbra
_P-medium
Medium priority
Milestone
Comments
this wasn't assigned during spring planning, so i am going to remove it from the current sprint. |
conorsch
pushed a commit
that referenced
this issue
Aug 22, 2024
## Describe your changes This adds a basic IBC handshake test, using the existing mock client. Some opportunistic refactoring is also included. This PR adds a new `tests::common::ibc_tests` module, which contains a `MockRelayer` that can be extended later on. Follow-up tasks should be basic transfer testing, transfer timeout testing, and testing with malformed requests. While debugging this test, bugs were found in the various IBC query APIs, specifically that the `proof_height` was consistently being returned one lower than the height whose header would contain the app_hash necessary for validating the proof. The Go relayer is unaffected because it uses the ABCI RPC query interface instead, and Hermes uses the affected APIs but discards the affected `proof_height` fields and uses its own internal mechanisms for height tracking instead. Fixes were included for the affected APIs. ## Issue Closes #3758 ## Checklist before requesting a review - [ ] If this code contains consensus-breaking changes, I have added the "consensus-breaking" label. Otherwise, I declare my belief that there are not consensus-breaking changes, for the following reason: > There are changes to TendermintProxy and IBC RPC responses however anyone using the affected RPCs would quickly run into the issues we saw in testing that revealed the bugs in the RPC responses, and the chain would properly block any requests made based on the incorrect response values. The changeset also affects the test code heavily however there should be nothing that affects consensus or state. --------- Co-authored-by: Ava Howell <ava@avahowell.me>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-IBC
Area: IBC integration with Penumbra
A-mock-consensus
Area: Relates to the mock consensus engine
A-testing
Area: Relates to testing of Penumbra
_P-medium
Medium priority
stub issue.
see #3588.
once we have the basics of our consensus engine working, we should proceed to provide facilities to test IBC functionality. let's start by writing a test that an IBC handshake works properly between two chains.
The text was updated successfully, but these errors were encountered: