From 245b23c885950f009db220289f6ce290724df2de Mon Sep 17 00:00:00 2001 From: Susannah Evans <65018876+womensrights@users.noreply.github.com> Date: Tue, 4 Mar 2025 22:38:20 +0100 Subject: [PATCH 1/2] aggregate troubleshooting page into integration and empty protobuf page when linked in resources --- docs/docs/01-ibc/02-integration.md | 18 +++++++++++++----- docs/docs/01-ibc/06-proposals.md | 2 +- docs/docs/01-ibc/07-relayer.md | 2 +- ...-best-practices.md => 08-best-practices.md} | 2 +- docs/docs/01-ibc/08-proto-docs.md | 11 ----------- ...12-permissioning.md => 09-permissioning.md} | 2 +- docs/docs/01-ibc/10-troubleshooting.md | 15 --------------- 7 files changed, 17 insertions(+), 35 deletions(-) rename docs/docs/01-ibc/{11-best-practices.md => 08-best-practices.md} (98%) delete mode 100644 docs/docs/01-ibc/08-proto-docs.md rename docs/docs/01-ibc/{12-permissioning.md => 09-permissioning.md} (99%) delete mode 100644 docs/docs/01-ibc/10-troubleshooting.md diff --git a/docs/docs/01-ibc/02-integration.md b/docs/docs/01-ibc/02-integration.md index a444e7ab621..d301666d1b6 100644 --- a/docs/docs/01-ibc/02-integration.md +++ b/docs/docs/01-ibc/02-integration.md @@ -218,13 +218,11 @@ var ( ) ``` -#### Integrating light clients +### Integrating light clients -> Note that from v9 onwards, all light clients are expected to implement the [`LightClientInterface` interface](../03-light-clients/01-developer-guide/02-light-client-module.md#implementing-the-lightclientmodule-interface) defined by core IBC, and have to be explicitly registered in a chain's app.go. This is in contrast to earlier versions of ibc-go when `07-tendermint` and `06-solomachine` were added out of the box. Follow the steps below to integrate the `07-tendermint` light client. +> Note that from v7 onwards, all light clients are expected to implement the [`LightClientInterface` interface](../03-light-clients/01-developer-guide/02-light-client-module.md#implementing-the-lightclientmodule-interface) defined by core IBC, and have to be explicitly registered in a chain's app.go. This is in contrast to earlier versions of ibc-go when `07-tendermint` and `06-solomachine` were added out of the box. Follow the steps below to integrate the `07-tendermint` light client. -All light clients must be registered with `module.Manager` in a chain's app.go file. - -The following code example shows how to instantiate `07-tendermint` light client module and register its `ibctm.AppModule`. +All light clients must be registered with `module.Manager` in a chain's app.go file. The following code example shows how to instantiate `07-tendermint` light client module and register its `ibctm.AppModule`. ```go title="app.go" import ( @@ -252,6 +250,16 @@ app.ModuleManager = module.NewManager( + ibctm.NewAppModule(tmLightClientModule), ) ``` +#### Allowed Clients Params + +The allowed clients parameter defines an allow list of client types supported by the chain. The +default value is a single-element list containing the [`AllowedClients`](https://github.com/cosmos/ibc-go/blob/main/modules/core/02-client/types/client.pb.go#L248-L253) wildcard (`"*"`). Alternatively, the parameter +may be set with a list of client types (e.g. `"06-solomachine","07-tendermint","09-localhost"`). +A client type that is not registered on this list will fail upon creation or on genesis validation. +Note that, since the client type is an arbitrary string, chains must not register two light clients +which return the same value for the `ClientType()` function, otherwise the allow list check can be +bypassed. + ### Application ABCI ordering diff --git a/docs/docs/01-ibc/06-proposals.md b/docs/docs/01-ibc/06-proposals.md index 9a78f0b2aec..13b27fbd364 100644 --- a/docs/docs/01-ibc/06-proposals.md +++ b/docs/docs/01-ibc/06-proposals.md @@ -1,7 +1,7 @@ --- title: Governance Proposals sidebar_label: Governance Proposals -sidebar_position: 7 +sidebar_position: 6 slug: /ibc/proposals --- diff --git a/docs/docs/01-ibc/07-relayer.md b/docs/docs/01-ibc/07-relayer.md index 7caf072c275..b5b37f5a4f2 100644 --- a/docs/docs/01-ibc/07-relayer.md +++ b/docs/docs/01-ibc/07-relayer.md @@ -1,7 +1,7 @@ --- title: Relayer sidebar_label: Relayer -sidebar_position: 8 +sidebar_position: 7 slug: /ibc/relayer --- diff --git a/docs/docs/01-ibc/11-best-practices.md b/docs/docs/01-ibc/08-best-practices.md similarity index 98% rename from docs/docs/01-ibc/11-best-practices.md rename to docs/docs/01-ibc/08-best-practices.md index 47e10d36ac2..e7b1ad9553a 100644 --- a/docs/docs/01-ibc/11-best-practices.md +++ b/docs/docs/01-ibc/08-best-practices.md @@ -1,7 +1,7 @@ --- title: Best Practices sidebar_label: Best Practices -sidebar_position: 13 +sidebar_position: 8 slug: /ibc/best-practices --- diff --git a/docs/docs/01-ibc/08-proto-docs.md b/docs/docs/01-ibc/08-proto-docs.md deleted file mode 100644 index 1666d3b7dd2..00000000000 --- a/docs/docs/01-ibc/08-proto-docs.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Protobuf Documentation -sidebar_label: Protobuf Documentation -sidebar_position: 9 -slug: /ibc/proto-docs ---- - - -# Protobuf documentation - -See [ibc-go Buf Protobuf documentation](https://buf.build/cosmos/ibc/docs/main). diff --git a/docs/docs/01-ibc/12-permissioning.md b/docs/docs/01-ibc/09-permissioning.md similarity index 99% rename from docs/docs/01-ibc/12-permissioning.md rename to docs/docs/01-ibc/09-permissioning.md index c96ecf3cc26..9bbfb3839e9 100644 --- a/docs/docs/01-ibc/12-permissioning.md +++ b/docs/docs/01-ibc/09-permissioning.md @@ -1,7 +1,7 @@ --- title: Permissioning sidebar_label: Permissioning -sidebar_position: 14 +sidebar_position: 9 slug: /ibc/permissioning --- diff --git a/docs/docs/01-ibc/10-troubleshooting.md b/docs/docs/01-ibc/10-troubleshooting.md deleted file mode 100644 index 4080f3b449b..00000000000 --- a/docs/docs/01-ibc/10-troubleshooting.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Troubleshooting -sidebar_label: Troubleshooting -sidebar_position: 11 -slug: /ibc/troubleshooting ---- - -# Troubleshooting - -## Unauthorized client states - -If it is being reported that a client state is unauthorized, this is due to the client type not being present -in the [`AllowedClients`](https://github.com/cosmos/ibc-go/blob/v6.0.0/modules/core/02-client/types/client.pb.go#L345) array. - -Unless the client type is present in this array or the `AllowAllClients` wildcard (`"*"`) is used, all usage of clients of this type will be prevented. From 96927ab188b34c844f077517f4c67ef344236e26 Mon Sep 17 00:00:00 2001 From: Susannah Evans <65018876+womensrights@users.noreply.github.com> Date: Wed, 12 Mar 2025 13:59:11 +0100 Subject: [PATCH 2/2] Update 02-integration.md --- docs/docs/01-ibc/02-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/01-ibc/02-integration.md b/docs/docs/01-ibc/02-integration.md index d301666d1b6..bfae909c1eb 100644 --- a/docs/docs/01-ibc/02-integration.md +++ b/docs/docs/01-ibc/02-integration.md @@ -250,6 +250,7 @@ app.ModuleManager = module.NewManager( + ibctm.NewAppModule(tmLightClientModule), ) ``` + #### Allowed Clients Params The allowed clients parameter defines an allow list of client types supported by the chain. The @@ -260,7 +261,6 @@ Note that, since the client type is an arbitrary string, chains must not registe which return the same value for the `ClientType()` function, otherwise the allow list check can be bypassed. - ### Application ABCI ordering One addition from IBC is the concept of `HistoricalInfo` which is stored in the Cosmos SDK `x/staking` module. The number of records stored by `x/staking` is controlled by the `HistoricalEntries` parameter which stores `HistoricalInfo` on a per-height basis.