sovereign-ibc icon indicating copy to clipboard operation
sovereign-ibc copied to clipboard

Requirements from Sovereign SDK for provisioning client-side libraries

Open Farhad-Shabani opened this issue 1 year ago • 0 comments

Background

To properly support Sovereign SDK rollups, we require client-serving libraries akin to tendermint-rs. This library should provide integration kits and cater to the specific needs of IBC operators, bridging gaps between rollups, IBC client states, and relayers. As a minimum, it should mirror tendermint-rs by providing the following features and serving as an intermediary between ibc-rs and Hermes.

Key Features & Considerations

  1. Host rollup .proto types, domain data structures & serialization, e.g:

    1. Access AggregatedProofData and its (de)serialization through this library
    2. Access .proto files which now live in sovereign-ibc, but better to be part of this library
  2. Provide RPC client, methods & types Provide a client service with methods and response types to allow establishing a connection with the three core areas: consensus core (for DA Header retrieval), DA layer (for ZK proofs), and rollups (for IBC state queries and commitment proofs). Additionally, it should incorporate custom RPC methods and subscriptions beyond standard offerings from the DA layer and rollup.

  3. Include rollup light client verifier Contains methods implemented for verifying aggregated proofs or any other verification methods necessary for verifying data flowing from the rollup to the IBC light client on counterparty chains. Also methods for detecting and reporting attacks against the Sovereign light clients.

Farhad-Shabani avatar Jan 11 '24 17:01 Farhad-Shabani