Skip to content
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

[IBC] Implement ICS-08 WASM light clients for Pocket V1 #912

Open
11 tasks
h5law opened this issue Jul 18, 2023 · 0 comments
Open
11 tasks

[IBC] Implement ICS-08 WASM light clients for Pocket V1 #912

h5law opened this issue Jul 18, 2023 · 0 comments
Assignees
Labels
ibc IBC specific changes

Comments

@h5law
Copy link
Contributor

h5law commented Jul 18, 2023

Objective

ICS-08 defines the WASM client specification. Using WASM clients has numerous benefits over traditional IBC light clients, mainly in client upgradability.

This ticket encompasses the following tasks:

  1. Implement an IBC light client for the Pocket V1 network (for testing purposes)
  2. Implement an IBC light client for the Cosmos ecosystem

These should both be accomplished in such a manner that enables the following:

  • ICS-02 interfaces are fully satisfied and function correctly
  • WASM binary code can be called within the golang host
  • WASM binary code can utilise functions imported from the golang host

This should be done by utilising wazero and Rust to compile to WASM.

These clients should only be for use on the Pocket V1 network.

Origin Document

ICS-08 Specification
IBC Light Client Document

Goals

  • An ICS-08 implementation of the Pocket V1 IBC light client that can:
    • Track and maintain state
    • Be updated
    • Check for misbehaviour
    • Verify (non)membership of elements
    • ...
  • Add an ICS-08 implementation of the Tendermint IBC light client that can:
    • Track and maintain state
    • Be updated
    • Check for misbehaviour
    • Verify (non)membership of elements
    • ...

Deliverable

Non-goals / Non-deliverables

  • Change the ICS-02 interfaces in such a way that they no longer conform to the specification
  • Implement ICS-08 Pocket client using CosmWasm for use in the cosmos ecosystem

General issue deliverables

  • Update the appropriate CHANGELOG(s)
  • Update any relevant local/global README(s)
  • Update relevant source code tree explanations
  • Add or update any relevant or supporting mermaid diagrams

Testing Methodology

  • Task specific tests or benchmarks: make ...
  • New tests or benchmarks: make ...
  • All tests: make test_all
  • LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md
  • k8s LocalNet: verify a k8s LocalNet is still functioning correctly by following the instructions here

Creator: @h5law
Co-Owners: @h5law

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ibc IBC specific changes
Projects
Status: In Research
Development

No branches or pull requests

1 participant