Current Status: The system now uses real data to identify relayer addresses that process IBC transactions.
- Send IBC Transfer - Send real IBC transfer on vota-bobtail
- Extract Packet Sequence - Extract packet sequence from transaction logs
- Query Target Chain Reception - Query corresponding
MsgRecvPackettransaction on receiverChain-testnet - Identify Relayer Address - Extract real relayer address from transaction signers
- Verify Memo Identifier - Check if memo contains
relayed-by:<moniker>identifier
// Real acknowledgement query
const ackInfo = await ibcHelper.queryPacketAcknowledgement(
'transfer',
'channel-0',
sequence
)
console.log('Relayer Address:', ackInfo.relayerAddress)
console.log('Target Chain Transaction:', ackInfo.targetTxHash)IBC relayers produce MsgRecvPacket transactions on the target chain, which we can identify through:
// Query recv_packet events on receiverChain-testnet
const events = await targetClient.searchTx({
tags: [
{ key: 'recv_packet.packet_src_channel', value: 'channel-0' },
{ key: 'recv_packet.packet_sequence', value: sequence.toString() },
],
})
const relayerAddress = events[0].tx.body.messages[0].signer// Get transaction details, extract signer information
const tx = await client.getTx(txHash)
const relayerAddress = tx.tx.authInfo.signerInfos[0].address// Check message.sender in transaction events
const messageEvent = tx.events.find((e) => e.type === 'message')
const relayerAddress = messageEvent.attributes.find(
(a) => a.key === 'sender'
)?.value// Extract from transaction logs
const packetSequence = extractFromLog(result.rawLog, 'packet_sequence')
const sourceChannel = 'channel-0'
// Verify validator moniker in memo
const memo = 'relayed-by:validator1'
const moniker = memo.replace('relayed-by:', '')
// Query real acknowledgement information
const ackInfo = await ibcHelper.queryPacketAcknowledgement(
'transfer',
'channel-0',
sequence
)
console.log('Relayer Address:', ackInfo.relayerAddress)
console.log('Target Chain Transaction:', ackInfo.targetTxHash)- Real IBC Transfer Testing - Send real IBC transfers
- Packet Acknowledgement Query - Query real acknowledgement status
- Target Chain Transaction Query - Find recv_packet transactions on receiverChain
- Relayer Address Identification - Extract real addresses from transaction signers
- Performance Metrics Calculation - Calculate performance metrics based on real test data
- Persistent Storage - Save real test logs and metrics
- Report Generation - Generate HTML/Markdown reports based on real data
- Test Execution → Send real IBC transfers
- Data Collection → Query real acknowledgements and target chain transactions
- Address Identification → Extract real relayer addresses from transactions
- Performance Analysis → Calculate real latency, success rates, and other metrics
- Report Generation → Generate test reports based on real data
Current Status: The system fully uses real blockchain data and can accurately identify and evaluate validator IBC relayer performance.