--- description: Blockchain communication testing workflow for multi-node AITBC setup title: Blockchain Communication Test version: 1.0 --- # Blockchain Communication Test Workflow ## Purpose Test and verify blockchain communication between aitbc (genesis) and aitbc1 (follower) nodes running on port 8006 on different physical machines. ## Prerequisites - Both nodes (aitbc and aitbc1) must be running - AITBC CLI accessible: `/opt/aitbc/aitbc-cli` - Network connectivity between nodes - Git repository access for synchronization ## Quick Start ```bash # Run complete communication test cd /opt/aitbc ./scripts/blockchain-communication-test.sh --full # Run specific test type ./scripts/blockchain-communication-test.sh --type connectivity ./scripts/blockchain-communication-test.sh --type transaction ./scripts/blockchain-communication-test.sh --type sync # Run with debug output ./scripts/blockchain-communication-test.sh --full --debug ``` ## Test Types ### 1. Connectivity Test Verify basic network connectivity and service availability. ```bash # Test genesis node (aitbc) curl http://10.1.223.40:8006/health # Test follower node (aitbc1) curl http://:8006/health # Test P2P connectivity ./aitbc-cli network ping --node aitbc1 --host --port 8006 --verbose ./aitbc-cli network peers --verbose ``` ### 2. Blockchain Status Test Verify blockchain status and synchronization on both nodes. ```bash # Check genesis node status NODE_URL=http://10.1.223.40:8006 ./aitbc-cli blockchain info --verbose NODE_URL=http://10.1.223.40:8006 ./aitbc-cli blockchain height --output json # Check follower node status NODE_URL=http://:8006 ./aitbc-cli blockchain info --verbose NODE_URL=http://:8006 ./aitbc-cli blockchain height --output json # Compare block heights NODE_URL=http://10.1.223.40:8006 ./aitbc-cli blockchain height --output json NODE_URL=http://:8006 ./aitbc-cli blockchain height --output json ``` ### 3. Transaction Test Test transaction propagation between nodes. ```bash # Create test wallets ./aitbc-cli wallet create --name test-sender --password test123 --yes --no-confirm ./aitbc-cli wallet create --name test-receiver --password test123 --yes --no-confirm # Fund sender wallet (if needed) ./aitbc-cli wallet send --from genesis-ops --to test-sender --amount 100 --password --yes # Send transaction ./aitbc-cli wallet send --from test-sender --to test-receiver --amount 10 --password test123 --yes --verbose # Verify on both nodes ./aitbc-cli wallet transactions --name test-sender --limit 5 --format table NODE_URL=http://:8006 ./aitbc-cli wallet transactions --name test-receiver --limit 5 --format table ``` ### 4. Agent Messaging Test Test agent message propagation over blockchain. ```bash # Send agent message ./aitbc-cli agent message --to --content "Test message from aitbc" --debug # Check messages ./aitbc-cli agent messages --from --verbose # Verify on follower node NODE_URL=http://:8006 ./aitbc-cli agent messages --from --verbose ``` ### 5. Synchronization Test Verify git-based synchronization between nodes. ```bash # Check git status on both nodes cd /opt/aitbc && git status --verbose ssh aitbc1 'cd /opt/aitbc && git status --verbose' # Sync from Gitea git pull origin main --verbose ssh aitbc1 'cd /opt/aitbc && git pull origin main --verbose' # Verify sync git log --oneline -5 --decorate ssh aitbc1 'cd /opt/aitbc && git log --oneline -5 --decorate' ``` ## Automated Script ### Script Location `/opt/aitbc/scripts/blockchain-communication-test.sh` ### Script Usage ```bash # Full test suite ./scripts/blockchain-communication-test.sh --full # Specific test types ./scripts/blockchain-communication-test.sh --type connectivity ./scripts/blockchain-communication-test.sh --type blockchain ./scripts/blockchain-communication-test.sh --type transaction ./scripts/blockchain-communication-test.sh --type sync # Debug mode ./scripts/blockchain-communication-test.sh --full --debug # Continuous monitoring ./scripts/blockchain-communication-test.sh --monitor --interval 300 ``` ### Script Features - **Automated testing**: Runs all test types sequentially - **Progress tracking**: Detailed logging of each test step - **Error handling**: Graceful failure with diagnostic information - **Report generation**: JSON and HTML test reports - **Continuous monitoring**: Periodic testing with alerts ## Production Monitoring ### Monitoring Script ```bash # Continuous monitoring with alerts ./scripts/blockchain-communication-test.sh --monitor --interval 300 --alert-email admin@example.com ``` ### Monitoring Metrics - Node availability (uptime) - Block synchronization lag - Transaction propagation time - Network latency - Git synchronization status ### Alert Conditions - Node unreachable for > 5 minutes - Block sync lag > 10 blocks - Transaction timeout > 60 seconds - Network latency > 100ms - Git sync failure ## Training Integration ### Integration with Mastery Plan This workflow integrates with Stage 2 (Intermediate Operations) of the OpenClaw AITBC Mastery Plan. ### Training Script `/opt/aitbc/scripts/training/stage2_intermediate.sh` includes blockchain communication testing as part of the training curriculum. ## Troubleshooting ### Common Issues #### Node Unreachable ```bash # Check network connectivity ping curl http://:8006/health # Check firewall iptables -L | grep 8006 # Check service status ssh aitbc1 'systemctl status aitbc-blockchain-rpc' ``` #### Block Sync Lag ```bash # Check sync status ./aitbc-cli network sync status --verbose # Force sync if needed ./aitbc-cli cluster sync --all --yes # Restart services if needed ssh aitbc1 'systemctl restart aitbc-blockchain-p2p' ``` #### Transaction Timeout ```bash # Check wallet balance ./aitbc-cli wallet balance --name test-sender # Check transaction status ./aitbc-cli wallet transactions --name test-sender --limit 10 # Verify network status ./aitbc-cli network status --verbose ``` ## Success Criteria - Both nodes respond to health checks - Block heights match within 2 blocks - Transactions propagate within 30 seconds - Agent messages sync within 10 seconds - Git synchronization completes successfully - Network latency < 50ms between nodes ## Log Files - Test logs: `/var/log/aitbc/blockchain-communication-test.log` - Monitoring logs: `/var/log/aitbc/blockchain-monitor.log` - Error logs: `/var/log/aitbc/blockchain-test-errors.log` ## Related Workflows - [Multi-Node Operations](/multi-node-blockchain-operations.md) - [Multi-Node Setup Core](/multi-node-blockchain-setup-core.md) - [Ollama GPU Test OpenClaw](/ollama-gpu-test-openclaw.md)