Skip to content

[IBC] Update IBC identifier logic #974

@h5law

Description

@h5law

Objective

Relayers need to use identifiers to specify clients, connections, channels and ports. Currently the identifiers are generated randomly. However, to aid the relayers they should be semi-structured.

The proposed changes are as follows:

  1. Client Identifiers should be prefixed with their client type for consistency with ibc-go
  • they should have a unique 8 character suffix matching [0-9a-zA-Z]
  • example: 08-wasm-Fj06bZ84
  1. Connection Identifiers should be prefixed with connection
  • they should have a unique 8 character suffix matching [0-9a-zA-Z]
  • example connection-8bvC6762
  1. Channel Identifiers should be prefixed with channel
  • they should have a unique 8 character suffix matching [0-9a-zA-Z]
  • example channel-972309bR
  1. Port Identifiers should be chosen depending on their purpose
  • example transfer

Origin Document

https://hermes.informal.systems/tutorials/local-chains/add-a-new-relay-path.html#identifiers

Goals

  • Update the identifier logic to follow the patterns above
  • Update the unit tests
  • Update any usages of the identifiers in the code to match the new pattern

Deliverable

  • Identifier logic is consistent with the patterns above
  • All unit tests pass

Non-goals / Non-deliverables

  • Change any logic where identifiers are being used outside of making them conform to the new standard

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

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions