refactor: extract script snippets to reusable scripts
All checks were successful
Documentation Validation / validate-docs (push) Successful in 9s
All checks were successful
Documentation Validation / validate-docs (push) Successful in 9s
- Create modular scripts for multi-node blockchain setup - Extract 6 core setup scripts from workflow documentation - Add master orchestrator script for complete setup - Replace inline code with script references in workflow - Create comprehensive README for script documentation - Copy scripts to aitbc for cross-node execution - Improve maintainability and reusability of setup process Scripts created: - 01_preflight_setup.sh - System preparation - 02_genesis_authority_setup.sh - Genesis node setup - 03_follower_node_setup.sh - Follower node setup - 04_create_wallet.sh - Wallet creation - 05_send_transaction.sh - Transaction sending - 06_final_verification.sh - System verification - setup_multinode_blockchain.sh - Master orchestrator This makes the workflow cleaner and scripts reusable while maintaining all functionality.
This commit is contained in:
191
scripts/workflow/README.md
Normal file
191
scripts/workflow/README.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# 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
|
||||
|
||||
1. **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
|
||||
|
||||
2. **02_genesis_authority_setup.sh** - Genesis authority node setup (aitbc1)
|
||||
- Pulls latest code
|
||||
- Configures genesis authority
|
||||
- Creates genesis block
|
||||
- Starts blockchain services
|
||||
|
||||
3. **03_follower_node_setup.sh** - Follower node setup (aitbc)
|
||||
- Configures follower node
|
||||
- Sets up cross-node communication
|
||||
- Starts follower services
|
||||
|
||||
4. **04_create_wallet.sh** - Wallet creation on follower node
|
||||
- Creates new wallet using CLI tool
|
||||
- Verifies wallet creation
|
||||
- Returns wallet address
|
||||
|
||||
5. **05_send_transaction.sh** - Transaction sending
|
||||
- Sends AIT from genesis to wallet
|
||||
- Monitors transaction confirmation
|
||||
- Verifies balance update
|
||||
|
||||
6. **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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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 script
|
||||
- `GENESIS_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 -e` for 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 `.env` files 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
|
||||
1. **SSH Connection**: Verify SSH keys between nodes
|
||||
2. **Service Failures**: Check systemd logs
|
||||
3. **Network Issues**: Verify Redis and RPC connectivity
|
||||
4. **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
|
||||
Reference in New Issue
Block a user