Hello team,
I am building an indexer lately, so I am fetching all the events and txs from both optimism-sepolia and base-sepolia. I was thinking the portAddress is kind of an identifier on each chain for the counterparty to find each other. However, there are two questions I would like to seek your help:
Here are the logs for the questions:
// [1] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8878428,
tx: '0xcfe185bf2daec18b0d1fa344f0d7de532e00f6fd6d8097b76233023c352dc7f9'
}
// [2] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8879040,
tx: '0x3634168f6036ad43846e6404b76c1a23ea8d3dd9982dc3e63bb58099bbe27a33'
}
// [3] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8879135,
tx: '0xd2771a6f5c9a567e8ca5a6669f7559c34ee3432445579b5bb2a5440aa87fbdf8'
}
// [4] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8879304,
tx: '0xa561c4395059936d7c8df978de83c6b8a0da3b3ee1dfa779c53c93cbd4293a37'
}
// [5] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8879399,
tx: '0x5f844b70e340db97127358c059a38e832d8054f564f771529851794d729bff8c'
}
// [6] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8879887,
tx: '0xca02732f46a65f88b2df29c30f92ec51807d949ed52bac7201d9aa429d77a266'
}
// [7] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8880038,
tx: '0x7be9ec4e6e23a7efda271246741a680e495967d78bdb9a82f28fd61baf2a293a'
}
// [8] Attempt to create a channel
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-8', 'connection-11' ],
counterpartyPortId: 'polyibc.base-proofs.B9F295619224d14De6416C1209f3D373F0975C5f',
counterpartyChannelId: '',
portAddress: '0x1bc8117AFE861237ad8EC9eAE6976b08EBDe0282',
block: 8880203,
tx: '0x43818aa3c537d1383ff7000766404cdbbc0458dc7f3e6ef35969cf0952578885'
}
// Attempt to create a channel with a new portAddress from op
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-0', 'connection-5' ],
counterpartyPortId: 'polyibc.base-sim.28C7c1a52613fAaF8B7267cd7038520aaA18ce65',
counterpartyChannelId: '',
portAddress: '0xbfBec33c5Fa0420cC4f03F949D1B0c35fcBBfDeA',
block: 8880758,
tx: '0xc6500f2e88e863c8225c2ebb99b4afbb9a70f37c93b5401097fad85c03b65d23'
}
// base is responding the request
base-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 0,
feeEnabled: false,
connectionHops: [ 'connection-4', 'connection-1' ],
counterpartyPortId: 'polyibc.optimism-sim.bfBec33c5Fa0420cC4f03F949D1B0c35fcBBfDeA',
counterpartyChannelId: 'channel-32',
portAddress: '0x28C7c1a52613fAaF8B7267cd7038520aaA18ce65',
block: 6897892,
tx: '0xe5c2aa6856af65fa91b094aad0450b927df2a2f7611874310debd6419fca986e'
}
// channel established: channel-32
optimism-sepolia {
type: 'ConnectIbcChannel',
channelId: 'channel-32',
portAddress: '0xbfBec33c5Fa0420cC4f03F949D1B0c35fcBBfDeA',
block: 8880773,
tx: '0xa2dac6e109fb9d27f5ed85cb3685d812fd380d51e33bd2832794f775203cad6b'
}
// channel established: channel-33
base-sepolia {
type: 'ConnectIbcChannel',
channelId: 'channel-33',
portAddress: '0x28C7c1a52613fAaF8B7267cd7038520aaA18ce65',
block: 6897906,
tx: '0xbfb740a735192c3cabd97f0d433f20991a7c7d16dd67ffbe05cc7359d9585e3f'
}
// Attempt to create another channel with the same portAddress on op
optimism-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 1,
feeEnabled: false,
connectionHops: [ 'connection-0', 'connection-5' ],
counterpartyPortId: 'polyibc.base-sim.28C7c1a52613fAaF8B7267cd7038520aaA18ce65',
counterpartyChannelId: '',
portAddress: '0xbfBec33c5Fa0420cC4f03F949D1B0c35fcBBfDeA',
block: 8880788,
tx: '0x4941d592a2d763252699fc61e9777e7afef33de1f632b3da92a273d2852079db'
}
// base is responding
base-sepolia {
type: 'OpenIbcChannel',
version: '1.0',
ordering: 0,
feeEnabled: false,
connectionHops: [ 'connection-4', 'connection-1' ],
counterpartyPortId: 'polyibc.optimism-sim.bfBec33c5Fa0420cC4f03F949D1B0c35fcBBfDeA',
counterpartyChannelId: 'channel-34',
portAddress: '0x28C7c1a52613fAaF8B7267cd7038520aaA18ce65',
block: 6897920,
tx: '0xaf1d51dbd061ba1c4f25c1224122bc48408c3dff1df47aa39f7178a79d5f0bbd'
}
// New connection established: channel-34 (should this override channel-32?)
optimism-sepolia {
type: 'ConnectIbcChannel',
channelId: 'channel-34',
portAddress: '0xbfBec33c5Fa0420cC4f03F949D1B0c35fcBBfDeA',
block: 8880802,
tx: '0xdebe6e4b9efe028fbdc67bc55e05986b924030d853806a1cc274044131ce6b4d'
}
// New connection established: channel-35 (should this override channel-33?)
base-sepolia {
type: 'ConnectIbcChannel',
channelId: 'channel-35',
portAddress: '0x28C7c1a52613fAaF8B7267cd7038520aaA18ce65',
block: 6897934,
tx: '0x80978af01eb2fa991b50ffc731b8c81f1bc28b88e3f9b16e25692ed56063b5de'
}
- Can portAddress be re-used? If one connection has already been established successfully on both chain, can we attempt to establish another connection with the same portAddress? If so, is the latter one overrides the existing one?
- What happens if the handshake fail? In the provided logs, I can see there was a OpenIBCChannel request attempted to establish a new connection on optimism-sepolia for 8 times, but no response from base-sepolia. Is there a timeout mechanism for the handshake period?
Thank you very much!