Some checks failed
API Endpoint Tests / test-api-endpoints (push) Successful in 56s
Blockchain Synchronization Verification / sync-verification (push) Failing after 3s
CLI Tests / test-cli (push) Failing after 5s
Coverage Phase 1 (70% Target) / test-coverage-70 (push) Failing after 19s
Coverage Phase 2 (85% Target) / test-coverage-85 (push) Failing after 18s
Cross-Chain Functionality Tests / test-cross-chain-sync (push) Successful in 3s
Cross-Chain Functionality Tests / test-cross-chain-transactions (push) Successful in 4s
Cross-Chain Functionality Tests / test-multi-chain-consensus (push) Successful in 5s
Deploy to Testnet / deploy-testnet (push) Failing after 21s
Documentation Validation / validate-docs (push) Failing after 13s
Documentation Validation / validate-policies-strict (push) Successful in 4s
Integration Tests / test-service-integration (push) Failing after 2s
Multi-Chain Island Architecture Tests / test-multi-chain-island (push) Successful in 4s
Multi-Node Blockchain Health Monitoring / health-check (push) Failing after 14s
Node Failover Simulation / failover-test (push) Successful in 9s
P2P Network Verification / p2p-verification (push) Successful in 5s
Package Tests / Python package - aitbc-agent-sdk (push) Successful in 51s
Package Tests / Python package - aitbc-core (push) Failing after 3s
Package Tests / Python package - aitbc-crypto (push) Successful in 22s
Package Tests / Python package - aitbc-sdk (push) Successful in 16s
Package Tests / JavaScript package - aitbc-sdk-js (push) Successful in 21s
Package Tests / JavaScript package - aitbc-token (push) Failing after 18s
Production Tests / Production Integration Tests (push) Failing after 1m9s
Python Tests / test-python (push) Failing after 3s
Security Scanning / security-scan (push) Failing after 41s
Smart Contract Tests / test-solidity (map[name:aitbc-contracts path:contracts]) (push) Failing after 6s
Smart Contract Tests / test-solidity (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Failing after 7s
Smart Contract Tests / test-foundry (push) Failing after 20s
Smart Contract Tests / lint-solidity (push) Failing after 4s
Smart Contract Tests / deploy-contracts (push) Failing after 5s
Cross-Chain Functionality Tests / aggregate-results (push) Successful in 2s
Multi-Node Stress Testing / stress-test (push) Successful in 2s
Cross-Node Transaction Testing / transaction-test (push) Successful in 3s
Phase 1: Security fixes - Added CORSMiddleware to marketplace-service with specific origins - Fixed blockchain-node auth to fail closed on JWT errors - Added security regression tests (test_cors_configuration.py, test_dispute_auth.py) Phase 2: Repository cleanup - Removed 51 fix/backup/legacy files - Deleted marketplace-service-debug directory Phase 3.1: Python version constraints - Updated aitbc-crypto and aitbc-sdk with requires-python >=3.13 - Added explicit [tool.poetry].packages declarations Phase 3.2: Agent service DI architecture - Created aitbc-agent-core package with protocols and shared service - Implemented adapters for agent-management and coordinator-api - Created factory functions for gradual migration - Added migration comments to existing integration files Phase 4.1: Auth/utils extraction - Created auth.py module with JWT validation and security utilities - Created utils.py module with common helpers Phase 4.2: Router decomposition - Decomposed router.py into 10 domain modules (58 endpoints) - Created route table snapshot for verification - Preserved router_old.py as reference Phase 5: App shell classification - Documented app shell patterns across services Phase 6: Quality gates - Verified mypy type checking (75% error reduction) - Analyzed logging inconsistencies with structlog migration plan - Removed unused orjson dependency Documentation: - Created comprehensive remediation report - Added architecture documentation for DI pattern - Added quality analysis documents
AITBC Multi-Node Blockchain Setup Scripts
This directory contains modular scripts for setting up and managing a multi-node AITBC blockchain network.
Scripts Overview
Core Setup Scripts
-
01_preflight_setup.sh - Pre-flight system preparation
- Stops existing services
- Updates systemd configurations
- Sets up environment files
- Installs CLI tool
- Creates keystore and directories
-
02_genesis_authority_setup.sh - Genesis authority node setup (aitbc1)
- Pulls latest code
- Configures genesis authority
- Creates genesis block
- Starts blockchain services
-
03_follower_node_setup.sh - Follower node setup (aitbc)
- Configures follower node
- Sets up cross-node communication
- Starts follower services
-
04_create_wallet.sh - Wallet creation on follower node
- Creates new wallet using CLI tool
- Verifies wallet creation
- Returns wallet address
-
05_send_transaction.sh - Transaction sending
- Sends AIT from genesis to wallet
- Monitors transaction confirmation
- Verifies balance update
-
06_final_verification.sh - Complete system verification
- Checks blockchain synchronization
- Verifies transaction success
- Tests network health
- Validates service status
Master Script
- setup_multinode_blockchain.sh - Master orchestrator script
- Runs all scripts in sequence
- Provides interactive execution
- Includes comprehensive summary
- Handles error checking
Usage
Individual Script Execution
# Run individual scripts
./01_preflight_setup.sh
./02_genesis_authority_setup.sh
./03_follower_node_setup.sh
./04_create_wallet.sh
./05_send_transaction.sh
./06_final_verification.sh
Master Script Execution
# Run complete setup (interactive)
./setup_multinode_blockchain.sh
# Run complete setup (non-interactive)
echo "y" | ./setup_multinode_blockchain.sh
Script Dependencies
System Requirements
- aitbc1 node (genesis authority)
- aitbc node (follower)
- SSH access between nodes
- Redis service running
- Python virtual environment
Environment Variables
WALLET_ADDR- Set by wallet creation scriptGENESIS_ADDR- Set by genesis setup script
File Structure
/opt/aitbc/scripts/workflow/
├── 01_preflight_setup.sh
├── 02_genesis_authority_setup.sh
├── 03_follower_node_setup.sh
├── 04_create_wallet.sh
├── 05_send_transaction.sh
├── 06_final_verification.sh
├── setup_multinode_blockchain.sh
└── README.md
Script Features
Error Handling
- All scripts use
set -efor error detection - Comprehensive error messages
- Graceful failure handling
Logging
- Clear step-by-step output
- Progress indicators
- Success/failure confirmation
Modularity
- Each script is self-contained
- Can be run independently
- State management between scripts
Cross-Node Operations
- Automatic SSH handling
- Remote command execution
- File synchronization
Customization
Environment Modifications
- Edit
.envfiles for different configurations - Modify service names as needed
- Adjust network settings
Script Parameters
- Wallet names can be changed
- Transaction amounts are configurable
- Network settings are customizable
Troubleshooting
Common Issues
- SSH Connection: Verify SSH keys between nodes
- Service Failures: Check systemd logs
- Network Issues: Verify Redis and RPC connectivity
- Permission Errors: Ensure proper file permissions
Debug Mode
Add set -x to scripts for detailed execution tracing.
Log Locations
- Systemd logs:
journalctl -u aitbc-blockchain-* - Application logs:
/var/log/aitbc/ - Script logs: Console output
Security Considerations
Password Management
- Keystore passwords stored in
/var/lib/aitbc/keystore/.password - Change default password in production
- Use proper key management
Network Security
- SSH key authentication recommended
- Firewall rules for RPC ports
- Redis security configuration
File Permissions
- Keystore files:
600(owner only) - Scripts:
755(executable) - Configuration:
644(readable)
Maintenance
Regular Tasks
- Monitor blockchain synchronization
- Check service health
- Update scripts as needed
- Backup configurations
Updates
- Pull latest code changes
- Update script dependencies
- Test script modifications
- Document changes
Integration with Workflow
These scripts are referenced in the main workflow documentation:
/opt/aitbc/.windsurf/workflows/multi-node-blockchain-setup.md
The workflow now uses script references instead of inline code, making it:
- More maintainable
- Easier to test
- Reusable components
- Better organized