🔧 CLI Restructuring:
• Rename cli/simple_wallet.py to cli/aitbc_cli.py for better naming consistency
• Update aitbc-cli launcher to call aitbc_cli.py instead of simple_wallet.py
• Maintain all existing wallet functionality and command structure
• Preserve compatibility with /opt/aitbc/cli installation path
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