dymensionxyz / ibc-go

Interblockchain Communication Protocol (IBC) implementation in Golang.
https://ibc.cosmos.network/
MIT License
5 stars 3 forks source link

Update state #6

Closed liorzilp closed 1 year ago

liorzilp commented 1 year ago

Overview

The Tendermint light-client follows the Tendermint Failure Model based on the validator set and trusting period (and other indicators). For that the Tendermint light-client implements commit-verification for verifying headers and attack-detection for handle contradicting updates from different nodes. For IRC, a state is considered valid if the dispute period is over so the trust model is very simple and based only on the settlement to declare a state as finalized.

validity checks

Change #5 and remove validity checks that are derived from the tendermint-consensus. Consider a state update as it was updated from a trusted full-node.

ClientState changes:

ConsensusState changes:

Header changes:

Testing

Change all tests of #5 to support the new changes and delete irrelevant tests

Note

The validity of the state update will be checked by middleware in the application layer checking whether the state was finalized or not.