An IBC Relayer testing and monitoring system specifically designed for the vota-bobtail incentivized testnet.
- β Basic Connectivity Testing - Verify IBC connection and channel status
- π Packet Transmission Testing - Test IBC packet sending and receiving
- β‘ Performance Testing - Evaluate relayer latency and throughput
- π― IBC Relayer Testing - Specifically test validator relayer services
- π Batch Stress Testing - Concurrent testing of relayer processing capacity
- β±οΈ Stability Testing - Long-term monitoring of relayer service stability
- π Identity Verification - Verify relayer identity and validator matching
- π Detailed Reports - Generate HTML and Markdown format test reports
- π Continuous Monitoring - Support scheduled automatic testing
npm install
Copy the environment variable example file:
cp env.example .env
Edit the .env
file and fill in the correct configuration:
# Chain A (vota-bobtail)
CHAIN_A_RPC=https://vota-bobtail-rpc.dorafactory.org:443
CHAIN_A_ID=vota-bobtail
CHAIN_A_PREFIX=dora
# Chain B (receiverChain-testnet)
CHAIN_B_RPC=https://rpc.testnet.receiverChain.zone:443
CHAIN_B_ID=osmo-test-5
CHAIN_B_PREFIX=osmo
# IBC Configuration - Must fill in real connection and channel IDs
CONNECTION_ID=connection-xxx # Query real connection ID
CHANNEL_ID=channel-xxx # Query real channel ID
# Test Configuration
TEST_MNEMONIC=your wallet mnemonic here
receiverChain_RECEIVE_ADDRESS=osmo1...your_receiverChain_address...
Method 1: Use Command Line Query
# Query all connections on vota-bobtail
dorad query ibc connection connections --node https://vota-bobtail-rpc.dorafactory.org:443
# Query all channels on vota-bobtail
dorad query ibc channel channels --node https://vota-bobtail-rpc.dorafactory.org:443
# Find channels connected to receiverChain
dorad query ibc channel channels --node https://vota-bobtail-rpc.dorafactory.org:443 | grep -A 10 -B 10 "osmo"
Method 2: Contact Project Team
- Contact the vota-bobtail project team for correct IBC configuration
- Check project documentation or Discord/Telegram groups
Method 3: Use Block Explorer
- Search for IBC-related transactions in the vota-bobtail block explorer
- View successful IBC transfer transactions to get the correct channel ID
npm run build
Run a complete test suite including basic tests, batch tests, and stability tests:
npm run dev relayer-test
# or
npm start relayer-test
Quick verification that the relayer is working properly:
npm run dev single-transfer
Start continuous monitoring with automatic testing every hour:
npm run dev relayer-test --continuous
Custom test interval (test every 2 hours):
npm run dev relayer-test --continuous --interval 2
npm run dev show-logs
Show the last 20 logs:
npm run dev show-logs --count 20
npm run dev generate-report
This will generate:
ibc-relayer-report.html
- Visual HTML reportibc-relayer-report.md
- Markdown format report
Check chain connection status:
npm run dev health
Display current configuration:
npm run dev config
# Connection stability test
npm run dev run connection
# Packet transmission test
npm run dev run packet
# Performance test
npm run dev run performance
# IBC Relayer test
npm run dev run relayer
According to the Test Rules Document, IBC Relayer testing includes the following steps:
- Check Channel Status - Verify that the IBC channel is in OPEN state
- Initiate IBC Transfer - Send test transaction to receiverChain-testnet
- Wait for Acknowledgement - Monitor packet acknowledgement
- Verify Target Chain Transaction - Confirm transaction receipt on receiverChain
- Record Test Logs - Save detailed test results
Each test records the following information:
Field | Description |
---|---|
Test Time | Timestamp when the transaction was initiated |
Transaction Hash | Transaction hash on vota-bobtail |
Packet Sequence | IBC packet sequence number |
Success Status | true/false |
Latency (seconds) | Time from send to acknowledgement receipt |
Target Chain Tx Hash | Receive transaction hash on receiverChain |
Relayer Signer | Actual relay address |
Memo Identifier | Moniker in memo |
Error Message | Specific error when failed |
The system calculates the following metrics for each validator:
- Success Rate - Proportion of successfully relayed transactions
- Average Latency - Average time for relaying transactions
- Stability - Consecutive failure count and uptime
- Activity - Last active time
Test reports include:
- π Overall Statistics - Key metrics like success rate, average latency
- π Validator Rankings - Performance-ranked validator list
- π Test Logs - Recent test records
- π‘ Improvement Suggestions - Optimization recommendations based on test results
Configure validators participating in tests in environment variables:
VALIDATORS_CONFIG='[
{
"moniker": "your-validator-moniker",
"operatorAddress": "doravaloper1...your_real_validator_address...",
"relayerAddresses": [],
"isActive": true
}
]'
π‘ Tip:
relayerAddresses
can be left empty, the system will automatically identify real relayer addresses from actual IBC transactions.
# Test amount
RELAYER_TEST_AMOUNT=1
# Test token
RELAYER_TEST_DENOM=stake
# Timeout (seconds)
RELAYER_TIMEOUT_SECONDS=60
# Batch test size
RELAYER_BATCH_SIZE=10
Issues and pull requests are welcome!
MIT License