-
Notifications
You must be signed in to change notification settings - Fork 331
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Packet memo string & testing case #2808
Comments
Context from Carlos:
|
There was a redesign (i.e., rename) from "metadata" to "memo string". Ref cosmos/ibc#877 |
Adding here a manual testing recipe with the steps I did to manually inspect if the memo field has any impact --or it's entirely opaque to the relayer. The conclusion was that the field is opaque and relayer needs no update/changes to support it. The impact this new field has is on message payload size and therefore likely on gas costs, but not on the relayer logic or dependencies. Dependencies:
Case 2: Relay between two networks which both have support for the new memo fieldgm config[global]
add_to_hermes = false
auto_maintain_config = true
extra_wallets = 1
gaiad_binary = '/Users/adiseredinschi/Hammers/ibc-go/build/simd'
hdpath = ''
home_dir = '$HOME/.gm'
ports_start_at = 27040
[global.hermes]
binary = '/Users/adiseredinschi/Hammers/hermes/target/debug//hermes'
config = '$HOME/.hermes/config.toml'
log_level = 'info'
telemetry_enabled = true
telemetry_host = '127.0.0.1'
telemetry_port = 3001
[ibc-0]
ports_start_at = 27000
[ibc-1]
ports_start_at = 27010
[node1]
network = 'ibc-0'
ports_start_at = 27020
add_to_hermes = true
[node2]
network = 'ibc-1'
ports_start_at = 27030
add_to_hermes =true The important part of Steps:
I tried relaying longer memo fields with different content, nothing jumped at me as problematic. Case 1: Relay between two networks where one network does not support the new memo fieldWe'll send a packet with a memo field from a network that enables that field to a network that has no support for it. gm config[global]
add_to_hermes = false
auto_maintain_config = true
extra_wallets = 1
gaiad_binary = '/Users/adiseredinschi/Hammers/ibc-go/build/simd'
#gaiad_binary = '/Users/adiseredinschi/go//bin/gaiad'
hdpath = ''
home_dir = '$HOME/.gm'
ports_start_at = 27040
[global.hermes]
binary = '/Users/adiseredinschi/Hammers/hermes/target/debug//hermes'
config = '$HOME/.hermes/config.toml'
log_level = 'info'
telemetry_enabled = true
telemetry_host = '127.0.0.1'
telemetry_port = 3001
[ibc-0]
ports_start_at = 27000
[ibc-1]
ports_start_at = 27010
gaiad_binary = '/Users/adiseredinschi/go//bin/gaiad'
[node1]
network = 'ibc-0'
ports_start_at = 27020
add_to_hermes = true
[node2]
network = 'ibc-1'
ports_start_at = 27030
add_to_hermes =true
gaiad_binary = '/Users/adiseredinschi/go//bin/gaiad' The important part of Redo the same steps as for case 1 above.
On the sending chain, the packet events look as follows:
Update: Confirmed with the IBC-go team that the behaviour highlighted in case 2 is expected.
|
Summary
There is a new field for adding metadata bytes as part of ICS20 Packets.
This will be released with IBC-go versions 2.5, v3.4, v4.2 and v5.1. And then also in v6.0.0 (scheduled for late November).
The changes are relatively straightforward and I suspect do not require any modifications in Hermes. This is because the
MsgTransfer
structure seems to be opaque to the relayer, encapsulated (hidden) inside thePacket.data
field, which Hermes does not typically deserialize, though I might be wrong.Since this is an important feature for the ecosystem, we should test and ensure relaying works as expected.
Acceptance Criteria
We should
Metadata
field of ICS20 Packets,Metadata
bytes in the packetFor Admin Use
The text was updated successfully, but these errors were encountered: