Skip to content

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

@h5law

Description

@h5law

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

Metadata

Metadata

Assignees

Labels

ibcIBC specific changes

Type

No type
No fields configured for issues without a type.

Projects

Status
In Research

Relationships

None yet

Development

No branches or pull requests

Issue actions