Update Composable Light Client

Client 07-tendermint-35 on Celestia is expired. This proposal will replace it with a new client, 07-tendermint-60.

proposal json placeholder

The cli command used to generate this proposal is:

celestia-appd tx gov submit-legacy-proposal --title="Update Composable Client" --description="Replace 07-tendermint-35 with 07-tendermint-60" update-client --deposit="10test" --from mykey

Hermes is configured like this:

[global]
log_level = "info"

[mode.clients]
enabled = true
refresh = true
misbehaviour = true

[mode.connections]
enabled = false

[mode.channels]
enabled = false

[mode.packets]
enabled = true
clear_interval = 100
clear_on_start = true
tx_confirmation = false
auto_register_counterparty_payee = false

[rest]
enabled = false
host = "127.0.0.1"
port = 3000

[telemetry]
enabled = false
host = "127.0.0.1"
port = 3001

[telemetry.buckets.latency_submitted]
start = 500
end = 20000
buckets = 10

[telemetry.buckets.latency_confirmed]
start = 1000
end = 30000
buckets = 10

[[chains]]
type = "CosmosSdk"
id = "celestia"
rpc_addr = "https://r-celestia--<yournotionalpikey>.gw.notionalapi.com"
grpc_addr = "https://g-celestia--<yournotionalpikey>.gw.notionalapi.com"
rpc_timeout = "10s"
trusted_node = false
account_prefix = "celestia"
key_name = ""
key_store_type = "Test"
store_prefix = "ibc"
default_gas = 100000
max_gas = 400000
gas_multiplier = 1.1
max_msg_num = 30
max_tx_size = 180000
max_grpc_decoding_size = 33554432
clock_drift = "5s"
max_block_time = "30s"
ccv_consumer_chain = false
memo_prefix = ""
sequential_batch_tx = false
compat_mode = "v0.34"

[chains.event_source]
mode = "push"
url = "wss://r-celestia--<yournotionalpikey>.gw.notionalapi.com/websocket"
batch_delay = "500ms"

[chains.trust_threshold]
numerator = "1"
denominator = "3"

[chains.gas_price]
price = 0.02
denom = "utia"

[chains.packet_filter]
policy = "allow"
list = [[
    "transfer",
    "channel-12",
]]

[chains.packet_filter.min_fees]

[chains.address_type]
derivation = "cosmos"

[[chains]]
type = "CosmosSdk"
id = "centauri-1"
rpc_addr = "https://r-composable--<yournotionalpikey>.gw.notionalapi.com"
grpc_addr = "https://g-composable--<yournotionalpikey>.gw.notionalapi.com"
rpc_timeout = "10s"
trusted_node = false
account_prefix = "centauri"
key_name = ""
key_store_type = "Test"
store_prefix = "ibc"
default_gas = 100000
max_gas = 400000
gas_multiplier = 1.1
max_msg_num = 30
max_tx_size = 180000
max_grpc_decoding_size = 33554432
clock_drift = "5s"
max_block_time = "30s"
ccv_consumer_chain = false
memo_prefix = ""
sequential_batch_tx = false

[chains.event_source]
mode = "push"
url = "wss://r-composable--<yournotionalpikey>.gw.notionalapi.com/websocket"
batch_delay = "500ms"

[chains.trust_threshold]
numerator = "1"
denominator = "3"

[chains.gas_price]
price = 0.0
denom = "ppica"

[chains.packet_filter]
policy = "allow"
list = [[
    "transfer",
    "channel-38",
]]

[chains.packet_filter.min_fees]

[chains.address_type]
derivation = "cosmos"

[tracing_server]
enabled = false
port = 5555

After configuring Hermes, we ran:

hermes --config fix-composable-tia.toml create client --host-chain celestia --reference-chain centauri-1
2023-12-19T19:37:40.008269Z  INFO ThreadId(01) running Hermes v1.7.3+61260cf4c
SUCCESS CreateClient(
    CreateClient(
        Attributes {
            client_id: ClientId(
                "07-tendermint-60",
            ),
            client_type: Tendermint,
            consensus_height: Height {
                revision: 1,
                height: 2951334,
            },
        },
    ),
)

I’ve been working on this with @rustNinja from Composable, who wanted a guide to making client updates, so I’m trying to make this post include the directions needed for others to do the same in the future.

Please note that the command and the text of this proposal are both currently in draft form. Since this looks like this might be the first proposal on Celestia,

I would like to take the time needed to get it right.

Seems like 41 is also expired?

celestia-appd query ibc client status 07-tendermint-41

also returns “Expired”.

Also 41 seems to point to osmosis?

celestia-appd query ibc client state 07-tendermint-41 --node tcp://consensus-full-1.lunaroasis.net:26657
client_state:
  '@type': /ibc.lightclients.tendermint.v1.ClientState
  allow_update_after_expiry: true
  allow_update_after_misbehaviour: true
  chain_id: osmosis-1
[...]

compare 35: chain_id: centauri-1

1 Like

Hey, that is correct – I was out and about when I’d first written the forum post, and it turns out that the new, correct client is 07-tendermint-60, not 07-tendermint-41.

:slight_smile:

I’ll be updating the post with more information as we progress, and thanks for checking!

We’ll be iterating on the forum post until it is fully clear what was done to make the proposal, and what the prop should do.