feat: implement modular workflow structure for multi-node blockchain

BREAKING CHANGE: Split 64KB monolithic workflow into 6 focused modules

New Modular Structure:
- MULTI_NODE_MASTER_INDEX.md: Central navigation hub for all modules
- multi-node-blockchain-setup-core.md: Essential setup steps and basic configuration
- multi-node-blockchain-operations.md: Daily operations, monitoring, troubleshooting
- multi-node-blockchain-advanced.md: Smart contracts, security testing, performance optimization
- multi-node-blockchain-production.md: Production deployment, security hardening, scaling
- multi-node-blockchain-marketplace.md: Marketplace testing, GPU provider testing, AI operations
- multi-node-blockchain-reference.md: Configuration reference, verification commands, best practices

Benefits Achieved:
 Improved Maintainability: Each module focuses on specific functionality
 Enhanced Usability: Users can load only needed modules
 Better Documentation: Each module has focused troubleshooting guides
 Clear Dependencies: Explicit module relationships and learning paths
 Better Searchability: Find relevant information faster

Migration Features:
- Original 64KB workflow (2,098 lines) deprecated but preserved
- Clear migration guide with section mapping
- Master index provides navigation by task, role, and complexity
- Cross-references between all modules
- Quick start commands for each module

Learning Paths:
- New Users: Core → Operations → Reference
- System Administrators: Core → Operations → Advanced → Reference
- Production Engineers: Core → Operations → Advanced → Production → Reference
- AI Engineers: Core → Operations → Advanced → Marketplace → Reference

Technical Improvements:
- Reduced file complexity from 2,098 lines to ~300 lines per module
- Module-specific troubleshooting tables and command references
- Focused prerequisite chains and dependency management
- Production-ready configurations and security hardening
- Comprehensive AI operations and marketplace testing

Files:
- New: 6 focused workflow modules + master index
- Updated: Original monolithic workflow (deprecated with migration guide)
- Preserved: All existing functionality in modular format
- Added: Cross-references, learning paths, and quick navigation
This commit is contained in:
2026-03-30 16:08:37 +02:00
parent bd1221ea5a
commit 3e1b651798
14 changed files with 4681 additions and 79 deletions

View File

@@ -0,0 +1,388 @@
---
description: Master index for multi-node blockchain setup - links to all modules and provides navigation
title: Multi-Node Blockchain Setup - Master Index
version: 1.0
---
# Multi-Node Blockchain Setup - Master Index
This master index provides navigation to all modules in the multi-node AITBC blockchain setup documentation. Each module focuses on specific aspects of the deployment and operation.
## 📚 Module Overview
### 🏗️ Core Setup Module
**File**: `multi-node-blockchain-setup-core.md`
**Purpose**: Essential setup steps for two-node blockchain network
**Audience**: New deployments, initial setup
**Prerequisites**: None (base module)
**Key Topics**:
- Prerequisites and pre-flight setup
- Environment configuration
- Genesis block architecture
- Basic node setup (aitbc + aitbc1)
- Wallet creation and funding
- Cross-node transactions
**Quick Start**:
```bash
# Run core setup
/opt/aitbc/scripts/workflow/02_genesis_authority_setup.sh
ssh aitbc1 '/opt/aitbc/scripts/workflow/03_follower_node_setup.sh'
```
---
### 🔧 Operations Module
**File**: `multi-node-blockchain-operations.md`
**Purpose**: Daily operations, monitoring, and troubleshooting
**Audience**: System administrators, operators
**Prerequisites**: Core Setup Module
**Key Topics**:
- Service management and health monitoring
- Daily operations and maintenance
- Performance monitoring and optimization
- Troubleshooting common issues
- Backup and recovery procedures
- Security operations
**Quick Start**:
```bash
# Check system health
systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service
python3 /tmp/aitbc1_heartbeat.py
```
---
### 🚀 Advanced Features Module
**File**: `multi-node-blockchain-advanced.md`
**Purpose**: Advanced blockchain features and testing
**Audience**: Advanced users, developers
**Prerequisites**: Core Setup + Operations Modules
**Key Topics**:
- Smart contract deployment and testing
- Security testing and hardening
- Performance optimization
- Advanced monitoring and analytics
- Consensus testing and validation
- Event monitoring and data analytics
**Quick Start**:
```bash
# Deploy smart contract
./aitbc-cli contract deploy --name "AgentMessagingContract" --wallet genesis-ops
```
---
### 🏭 Production Module
**File**: `multi-node-blockchain-production.md`
**Purpose**: Production deployment, security, and scaling
**Audience**: Production engineers, DevOps
**Prerequisites**: Core Setup + Operations + Advanced Modules
**Key Topics**:
- Production readiness and security hardening
- Monitoring, alerting, and observability
- Scaling strategies and load balancing
- CI/CD integration and automation
- Disaster recovery and backup procedures
**Quick Start**:
```bash
# Production deployment
sudo systemctl enable aitbc-blockchain-node-production.service
sudo systemctl start aitbc-blockchain-node-production.service
```
---
### 🛒 Marketplace Module
**File**: `multi-node-blockchain-marketplace.md`
**Purpose**: Marketplace testing and AI operations
**Audience**: Marketplace operators, AI service providers
**Prerequisites**: Core Setup + Operations + Advanced + Production Modules
**Key Topics**:
- Marketplace setup and service creation
- GPU provider testing and resource allocation
- AI operations and job management
- Transaction tracking and verification
- Performance testing and optimization
**Quick Start**:
```bash
# Create marketplace service
./aitbc-cli marketplace --action create --name "AI Service" --price 100 --wallet provider
```
---
### 📖 Reference Module
**File**: `multi-node-blockchain-reference.md`
**Purpose**: Configuration reference and verification commands
**Audience**: All users (reference material)
**Prerequisites**: None (independent reference)
**Key Topics**:
- Configuration overview and parameters
- Verification commands and health checks
- System overview and architecture
- Success metrics and KPIs
- Best practices and troubleshooting guide
**Quick Start**:
```bash
# Quick health check
./aitbc-cli chain && ./aitbc-cli network
```
## 🗺️ Module Dependencies
```
Core Setup (Foundation)
├── Operations (Daily Management)
├── Advanced Features (Complex Operations)
├── Production (Production Deployment)
│ └── Marketplace (AI Operations)
└── Reference (Independent Guide)
```
## 🚀 Recommended Learning Path
### For New Users
1. **Core Setup Module** - Learn basic deployment
2. **Operations Module** - Master daily operations
3. **Reference Module** - Keep as guide
### For System Administrators
1. **Core Setup Module** - Understand deployment
2. **Operations Module** - Master operations
3. **Advanced Features Module** - Learn advanced topics
4. **Reference Module** - Keep as reference
### For Production Engineers
1. **Core Setup Module** - Understand basics
2. **Operations Module** - Master operations
3. **Advanced Features Module** - Learn advanced features
4. **Production Module** - Master production deployment
5. **Marketplace Module** - Learn AI operations
6. **Reference Module** - Keep as reference
### For AI Service Providers
1. **Core Setup Module** - Understand blockchain
2. **Operations Module** - Master operations
3. **Advanced Features Module** - Learn smart contracts
4. **Marketplace Module** - Master AI operations
5. **Reference Module** - Keep as reference
## 🎯 Quick Navigation
### By Task
| Task | Recommended Module |
|---|---|
| **Initial Setup** | Core Setup |
| **Daily Operations** | Operations |
| **Troubleshooting** | Operations + Reference |
| **Security Hardening** | Advanced Features + Production |
| **Performance Optimization** | Advanced Features |
| **Production Deployment** | Production |
| **AI Operations** | Marketplace |
| **Configuration Reference** | Reference |
### By Role
| Role | Essential Modules |
|---|---|
| **Blockchain Developer** | Core Setup, Advanced Features, Reference |
| **System Administrator** | Core Setup, Operations, Reference |
| **DevOps Engineer** | Core Setup, Operations, Production, Reference |
| **AI Engineer** | Core Setup, Operations, Marketplace, Reference |
| **Security Engineer** | Advanced Features, Production, Reference |
### By Complexity
| Level | Modules |
|---|---|
| **Beginner** | Core Setup, Operations |
| **Intermediate** | Advanced Features, Reference |
| **Advanced** | Production, Marketplace |
| **Expert** | All modules |
## 🔍 Quick Reference Commands
### Essential Commands (From Core Module)
```bash
# Basic health check
curl -s http://localhost:8006/health | jq .
# Check blockchain height
curl -s http://localhost:8006/rpc/head | jq .height
# List wallets
./aitbc-cli list
# Send transaction
./aitbc-cli send --from wallet1 --to wallet2 --amount 100 --password 123
```
### Operations Commands (From Operations Module)
```bash
# Service status
systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service
# Comprehensive health check
python3 /tmp/aitbc1_heartbeat.py
# Monitor sync
watch -n 10 'curl -s http://localhost:8006/rpc/head | jq .height'
```
### Advanced Commands (From Advanced Module)
```bash
# Deploy smart contract
./aitbc-cli contract deploy --name "ContractName" --wallet genesis-ops
# Test security
nmap -sV -p 8006,7070 localhost
# Performance test
./aitbc-cli contract benchmark --name "ContractName" --operations 1000
```
### Production Commands (From Production Module)
```bash
# Production services
sudo systemctl status aitbc-blockchain-node-production.service
# Backup database
sudo cp /var/lib/aitbc/data/ait-mainnet/chain.db /var/backups/aitbc/
# Monitor with Prometheus
curl -s http://localhost:9090/metrics
```
### Marketplace Commands (From Marketplace Module)
```bash
# Create service
./aitbc-cli marketplace --action create --name "Service" --price 100 --wallet provider
# Submit AI job
./aitbc-cli ai-submit --wallet wallet --type inference --prompt "Generate image" --payment 100
# Check resource status
./aitbc-cli resource status
```
## 📊 System Overview
### Architecture Summary
```
Two-Node AITBC Blockchain:
├── Genesis Node (aitbc) - Primary development server
├── Follower Node (aitbc1) - Secondary node
├── RPC Services (port 8006) - API endpoints
├── P2P Network (port 7070) - Node communication
├── Gossip Network (Redis) - Data propagation
├── Smart Contracts - On-chain logic
├── AI Operations - Job processing and marketplace
└── Monitoring - Health checks and metrics
```
### Key Components
- **Blockchain Core**: Transaction processing and consensus
- **RPC Layer**: API interface for external access
- **Smart Contracts**: Agent messaging and governance
- **AI Services**: Job submission, resource allocation, marketplace
- **Monitoring**: Health checks, performance metrics, alerting
## 🎯 Success Metrics
### Deployment Success
- [ ] Both nodes operational and synchronized
- [ ] Cross-node transactions working
- [ ] Smart contracts deployed and functional
- [ ] AI operations and marketplace active
- [ ] Monitoring and alerting configured
### Operational Success
- [ ] Services running with >99% uptime
- [ ] Block production rate: 1 block/10s
- [ ] Transaction confirmation: <10s
- [ ] Network latency: <50ms
- [ ] Resource utilization: <80%
### Production Success
- [ ] Security hardening implemented
- [ ] Backup and recovery procedures tested
- [ ] Scaling strategies validated
- [ ] CI/CD pipeline operational
- [ ] Disaster recovery verified
## 🔧 Troubleshooting Quick Reference
### Common Issues
| Issue | Module | Solution |
|---|---|---|
| Services not starting | Core Setup | Check configuration, permissions |
| Nodes out of sync | Operations | Check network, restart services |
| Transactions stuck | Advanced | Check mempool, proposer status |
| Performance issues | Production | Check resources, optimize database |
| AI jobs failing | Marketplace | Check resources, wallet balance |
### Emergency Procedures
1. **Service Recovery**: Restart services, check logs
2. **Network Recovery**: Check connectivity, restart networking
3. **Database Recovery**: Restore from backup
4. **Security Incident**: Check logs, update security
## 📚 Additional Resources
### Documentation Files
- **AI Operations Reference**: `openclaw-aitbc/ai-operations-reference.md`
- **Agent Templates**: `openclaw-aitbc/agent-templates.md`
- **Workflow Templates**: `openclaw-aitbc/workflow-templates.md`
- **Setup Scripts**: `openclaw-aitbc/setup.sh`
### External Resources
- **AITBC Repository**: GitHub repository
- **API Documentation**: `/opt/aitbc/docs/api/`
- **Developer Guide**: `/opt/aitbc/docs/developer/`
## 🔄 Version History
### v1.0 (Current)
- Split monolithic workflow into 6 focused modules
- Added comprehensive navigation and cross-references
- Created learning paths for different user types
- Added quick reference commands and troubleshooting
### Previous Versions
- **Monolithic Workflow**: `multi-node-blockchain-setup.md` (64KB, 2,098 lines)
- **OpenClaw Integration**: `multi-node-blockchain-setup-openclaw.md`
## 🤝 Contributing
### Updating Documentation
1. Update specific module files
2. Update this master index if needed
3. Update cross-references between modules
4. Test all links and commands
5. Commit changes with descriptive message
### Module Creation
1. Follow established template structure
2. Include prerequisites and dependencies
3. Add quick start commands
4. Include troubleshooting section
5. Update this master index
---
**Note**: This master index is your starting point for all multi-node blockchain setup operations. Choose the appropriate module based on your current task and expertise level.
For immediate help, see the **Reference Module** for comprehensive commands and troubleshooting guidance.

View File

@@ -0,0 +1,256 @@
---
description: Continue AITBC CLI Enhancement Development
auto_execution_mode: 3
title: AITBC CLI Enhancement Workflow
version: 2.1
---
# Continue AITBC CLI Enhancement
This workflow helps you continue working on the AITBC CLI enhancement task with the current consolidated project structure.
## Current Status
### Completed
- ✅ Phase 0: Foundation fixes (URL standardization, package structure, credential storage)
- ✅ Phase 1: Enhanced existing CLI tools (client, miner, wallet, auth)
- ✅ Unified CLI with rich output formatting
- ✅ Secure credential management with keyring
-**NEW**: Project consolidation to `/opt/aitbc` structure
-**NEW**: Consolidated virtual environment (`/opt/aitbc/venv`)
-**NEW**: Unified CLI wrapper (`/opt/aitbc/aitbc-cli`)
### Next Steps
1. **Review Progress**: Check what's been implemented in current CLI structure
2. **Phase 2 Tasks**: Implement new CLI tools (blockchain, marketplace, simulate)
3. **Testing**: Add comprehensive tests for CLI tools
4. **Documentation**: Update CLI documentation
5. **Integration**: Ensure CLI works with current service endpoints
## Workflow Steps
### 1. Check Current Status
```bash
# Activate environment and check CLI
cd /opt/aitbc
source venv/bin/activate
# Check CLI functionality
./aitbc-cli --help
./aitbc-cli client --help
./aitbc-cli miner --help
./aitbc-cli wallet --help
./aitbc-cli auth --help
# Check current CLI structure
ls -la cli/aitbc_cli/commands/
```
### 2. Continue with Phase 2
```bash
# Create blockchain command
# File: cli/aitbc_cli/commands/blockchain.py
# Create marketplace command
# File: cli/aitbc_cli/commands/marketplace.py
# Create simulate command
# File: cli/aitbc_cli/commands/simulate.py
# Add to main.py imports and cli.add_command()
# Update: cli/aitbc_cli/main.py
```
### 3. Implement Missing Phase 1 Features
```bash
# Add job history filtering to client command
# Add retry mechanism with exponential backoff
# Update existing CLI tools with new features
# Ensure compatibility with current service ports (8000, 8001, 8006)
```
### 4. Create Tests
```bash
# Create test files in cli/tests/
# - test_cli_basic.py
# - test_client.py
# - test_miner.py
# - test_wallet.py
# - test_auth.py
# - test_blockchain.py
# - test_marketplace.py
# - test_simulate.py
# Run tests
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ -v
```
### 5. Update Documentation
```bash
# Update CLI README
# Update project documentation
# Create command reference docs
# Update skills that use CLI commands
```
## Quick Commands
```bash
# Install CLI in development mode
cd /opt/aitbc
source venv/bin/activate
pip install -e cli/
# Test a specific command
./aitbc-cli --output json client blocks --limit 1
# Check wallet balance
./aitbc-cli wallet balance
# Check auth status
./aitbc-cli auth status
# Test blockchain commands
./aitbc-cli chain --help
./aitbc-cli node status
# Test marketplace commands
./aitbc-cli marketplace --action list
# Run all tests
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ -v
# Run specific test
python -m pytest cli/tests/test_cli_basic.py -v
```
## Current CLI Structure
### Existing Commands
```bash
# Working commands (verify these exist)
./aitbc-cli client # Client operations
./aitbc-cli miner # Miner operations
./aitbc-cli wallet # Wallet operations
./aitbc-cli auth # Authentication
./aitbc-cli marketplace # Marketplace operations (basic)
```
### Commands to Implement
```bash
# Phase 2 commands to create
./aitbc-cli chain # Blockchain operations
./aitbc-cli node # Node operations
./aitbc-cli transaction # Transaction operations
./aitbc-cli simulate # Simulation operations
```
## File Locations
### Current Structure
- **CLI Source**: `/opt/aitbc/cli/aitbc_cli/`
- **Commands**: `/opt/aitbc/cli/aitbc_cli/commands/`
- **Tests**: `/opt/aitbc/cli/tests/`
- **CLI Wrapper**: `/opt/aitbc/aitbc-cli`
- **Virtual Environment**: `/opt/aitbc/venv`
### Key Files
- **Main CLI**: `/opt/aitbc/cli/aitbc_cli/main.py`
- **Client Command**: `/opt/aitbc/cli/aitbc_cli/commands/client.py`
- **Wallet Command**: `/opt/aitbc/cli/aitbc_cli/commands/wallet.py`
- **Marketplace Command**: `/opt/aitbc/cli/aitbc_cli/commands/marketplace.py`
- **Test Runner**: `/opt/aitbc/cli/tests/run_cli_tests.py`
## Service Integration
### Current Service Endpoints
```bash
# Coordinator API
curl -s http://localhost:8000/health
# Exchange API
curl -s http://localhost:8001/api/health
# Blockchain RPC
curl -s http://localhost:8006/health
# Ollama (for GPU operations)
curl -s http://localhost:11434/api/tags
```
### CLI Service Configuration
```bash
# Check current CLI configuration
./aitbc-cli --help
# Test with different output formats
./aitbc-cli --output json wallet balance
./aitbc-cli --output table wallet balance
./aitbc-cli --output yaml wallet balance
```
## Development Workflow
### 1. Environment Setup
```bash
cd /opt/aitbc
source venv/bin/activate
pip install -e cli/
```
### 2. Command Development
```bash
# Create new command
cd cli/aitbc_cli/commands/
cp template.py new_command.py
# Edit the command
# Add to main.py
# Add tests
```
### 3. Testing
```bash
# Run specific command tests
python -m pytest cli/tests/test_new_command.py -v
# Run all CLI tests
python -m pytest cli/tests/ -v
# Test with CLI runner
cd cli/tests
python run_cli_tests.py
```
### 4. Integration Testing
```bash
# Test against actual services
./aitbc-cli wallet balance
./aitbc-cli marketplace --action list
./aitbc-cli client status <job_id>
```
## Recent Updates (v2.1)
### Project Structure Changes
- **Consolidated Path**: Updated from `/home/oib/windsurf/aitbc` to `/opt/aitbc`
- **Virtual Environment**: Consolidated to `/opt/aitbc/venv`
- **CLI Wrapper**: Uses `/opt/aitbc/aitbc-cli` for all operations
- **Test Structure**: Updated to `/opt/aitbc/cli/tests/`
### Service Integration
- **Updated Ports**: Coordinator (8000), Exchange (8001), RPC (8006)
- **Service Health**: Added service health verification
- **Cross-Node**: Added cross-node operations support
- **Current Commands**: Updated to reflect actual CLI implementation
### Testing Integration
- **CI/CD Ready**: Integration with existing test workflows
- **Test Runner**: Custom CLI test runner
- **Environment**: Proper venv activation for testing
- **Coverage**: Enhanced test coverage requirements

207
.windsurf/workflows/docs.md Executable file
View File

@@ -0,0 +1,207 @@
---
description: Comprehensive documentation management and update workflow
title: AITBC Documentation Management
version: 2.0
auto_execution_mode: 3
---
# AITBC Documentation Management Workflow
This workflow manages and updates all AITBC project documentation, ensuring consistency and accuracy across the documentation ecosystem.
## Priority Documentation Updates
### High Priority Files
```bash
# Update core project documentation first
docs/beginner/02_project/5_done.md
docs/beginner/02_project/2_roadmap.md
# Then update other key documentation
docs/README.md
docs/MASTER_INDEX.md
docs/project/README.md
docs/project/WORKING_SETUP.md
```
## Documentation Structure
### Current Documentation Organization
```
docs/
├── README.md # Main documentation entry point
├── MASTER_INDEX.md # Complete documentation index
├── beginner/ # Beginner-friendly documentation
│ ├── 02_project/ # Project-specific docs
│ │ ├── 2_roadmap.md # Project roadmap
│ │ └── 5_done.md # Completed tasks
│ ├── 06_github_resolution/ # GitHub integration
│ └── ... # Other beginner docs
├── project/ # Project management docs
│ ├── README.md # Project overview
│ ├── WORKING_SETUP.md # Development setup
│ └── ... # Other project docs
├── infrastructure/ # Infrastructure documentation
├── development/ # Development guides
├── summaries/ # Documentation summaries
└── ... # Other documentation categories
```
## Workflow Steps
### 1. Update Priority Documentation
```bash
# Update completed tasks documentation
cd /opt/aitbc
echo "## Recent Updates" >> docs/beginner/02_project/5_done.md
echo "- $(date): Updated project structure" >> docs/beginner/02_project/5_done.md
# Update roadmap with current status
echo "## Current Status" >> docs/beginner/02_project/2_roadmap.md
echo "- Project consolidation completed" >> docs/beginner/02_project/2_roadmap.md
```
### 2. Update Core Documentation
```bash
# Update main README
echo "## Latest Updates" >> docs/README.md
echo "- Project consolidated to /opt/aitbc" >> docs/README.md
# Update master index
echo "## New Documentation" >> docs/MASTER_INDEX.md
echo "- CLI enhancement documentation" >> docs/MASTER_INDEX.md
```
### 3. Update Technical Documentation
```bash
# Update infrastructure docs
echo "## Service Configuration" >> docs/infrastructure/infrastructure.md
echo "- Coordinator API: port 8000" >> docs/infrastructure/infrastructure.md
echo "- Exchange API: port 8001" >> docs/infrastructure/infrastructure.md
echo "- Blockchain RPC: port 8006" >> docs/infrastructure/infrastructure.md
# Update development guides
echo "## Environment Setup" >> docs/development/setup.md
echo "source /opt/aitbc/venv/bin/activate" >> docs/development/setup.md
```
### 4. Generate Documentation Summaries
```bash
# Create summary of recent changes
echo "# Documentation Update Summary - $(date)" > docs/summaries/latest_updates.md
echo "## Key Changes" >> docs/summaries/latest_updates.md
echo "- Project structure consolidation" >> docs/summaries/latest_updates.md
echo "- CLI enhancement documentation" >> docs/summaries/latest_updates.md
echo "- Service port updates" >> docs/summaries/latest_updates.md
```
### 5. Validate Documentation
```bash
# Check for broken links
find docs/ -name "*.md" -exec grep -l "\[.*\](.*.md)" {} \;
# Verify all referenced files exist
find docs/ -name "*.md" -exec markdownlint {} \; 2>/dev/null || echo "markdownlint not available"
# Check documentation consistency
grep -r "aitbc-cli" docs/ | head -10
```
## Quick Documentation Commands
### Update Specific Sections
```bash
# Update CLI documentation
echo "## CLI Commands" >> docs/project/cli_reference.md
echo "./aitbc-cli --help" >> docs/project/cli_reference.md
# Update API documentation
echo "## API Endpoints" >> docs/infrastructure/api_endpoints.md
echo "- Coordinator: http://localhost:8000" >> docs/infrastructure/api_endpoints.md
# Update service documentation
echo "## Service Status" >> docs/infrastructure/services.md
systemctl status aitbc-coordinator-api.service >> docs/infrastructure/services.md
```
### Generate Documentation Index
```bash
# Create comprehensive index
echo "# AITBC Documentation Index" > docs/DOCUMENTATION_INDEX.md
echo "Generated on: $(date)" >> docs/DOCUMENTATION_INDEX.md
find docs/ -name "*.md" | sort | sed 's/docs\///' >> docs/DOCUMENTATION_INDEX.md
```
### Documentation Review
```bash
# Review recent documentation changes
git log --oneline --since="1 week ago" -- docs/
# Check documentation coverage
find docs/ -name "*.md" | wc -l
echo "Total markdown files: $(find docs/ -name "*.md" | wc -l)"
# Find orphaned documentation
find docs/ -name "*.md" -exec grep -L "README" {} \;
```
## Documentation Standards
### Formatting Guidelines
- Use standard markdown format
- Include table of contents for long documents
- Use proper heading hierarchy (##, ###, ####)
- Include code blocks with language specification
- Add proper links between related documents
### Content Guidelines
- Keep documentation up-to-date with code changes
- Include examples and usage instructions
- Document all configuration options
- Include troubleshooting sections
- Add contact information for support
### File Organization
- Use descriptive file names
- Group related documentation in subdirectories
- Keep main documentation in root docs/
- Use consistent naming conventions
- Include README.md in each subdirectory
## Integration with Workflows
### CI/CD Documentation Updates
```bash
# Update documentation after deployments
echo "## Deployment Summary - $(date)" >> docs/deployments/latest.md
echo "- Services updated" >> docs/deployments/latest.md
echo "- Documentation synchronized" >> docs/deployments/latest.md
```
### Feature Documentation
```bash
# Document new features
echo "## New Features - $(date)" >> docs/features/latest.md
echo "- CLI enhancements" >> docs/features/latest.md
echo "- Service improvements" >> docs/features/latest.md
```
## Recent Updates (v2.0)
### Documentation Structure Updates
- **Current Paths**: Updated to reflect `/opt/aitbc` structure
- **Service Ports**: Updated API endpoint documentation
- **CLI Integration**: Added CLI command documentation
- **Project Consolidation**: Documented new project structure
### Enhanced Workflow
- **Priority System**: Added priority-based documentation updates
- **Validation**: Added documentation validation steps
- **Standards**: Added documentation standards and guidelines
- **Integration**: Enhanced CI/CD integration
### New Documentation Categories
- **Summaries**: Added documentation summaries directory
- **Infrastructure**: Enhanced infrastructure documentation
- **Development**: Updated development guides
- **CLI Reference**: Added CLI command reference

289
.windsurf/workflows/github.md Executable file
View File

@@ -0,0 +1,289 @@
---
description: Comprehensive GitHub operations including git push to GitHub
title: AITBC GitHub Operations Workflow
version: 2.0
auto_execution_mode: 3
---
# AITBC GitHub Operations Workflow
This workflow handles all GitHub operations including staging, committing, and pushing changes to GitHub repository.
## Prerequisites
### Required Setup
- GitHub repository configured as remote
- GitHub access token available
- Git user configured
- Working directory: `/opt/aitbc`
### Environment Setup
```bash
cd /opt/aitbc
git status
git remote -v
```
## GitHub Operations Workflow
### 1. Check Current Status
```bash
# Check git status
git status
# Check remote configuration
git remote -v
# Check current branch
git branch
# Check for uncommitted changes
git diff --stat
```
### 2. Stage Changes
```bash
# Stage all changes
git add .
# Stage specific files
git add docs/ cli/ scripts/
# Stage specific directory
git add .windsurf/
# Check staged changes
git status --short
```
### 3. Commit Changes
```bash
# Commit with descriptive message
git commit -m "feat: update CLI documentation and workflows
- Updated CLI enhancement workflow to reflect current structure
- Added comprehensive GitHub operations workflow
- Updated documentation paths and service endpoints
- Enhanced CLI command documentation"
# Commit with specific changes
git commit -m "fix: resolve service endpoint issues
- Updated coordinator API port from 18000 to 8000
- Fixed blockchain RPC endpoint configuration
- Updated CLI commands to use correct service ports"
# Quick commit for minor changes
git commit -m "docs: update README with latest changes"
```
### 4. Push to GitHub
```bash
# Push to main branch
git push origin main
# Push to specific branch
git push origin develop
# Push with upstream tracking (first time)
git push -u origin main
# Force push (use with caution)
git push --force-with-lease origin main
# Push all branches
git push --all origin
```
### 5. Verify Push
```bash
# Check if push was successful
git status
# Check remote status
git log --oneline -5 origin/main
# Verify on GitHub (if GitHub CLI is available)
gh repo view --web
```
## Quick GitHub Commands
### Standard Workflow
```bash
# Complete workflow - stage, commit, push
cd /opt/aitbc
git add .
git commit -m "feat: add new feature implementation"
git push origin main
```
### Quick Push
```bash
# Quick push for minor changes
git add . && git commit -m "docs: update documentation" && git push origin main
```
### Specific File Push
```bash
# Push specific changes
git add docs/README.md
git commit -m "docs: update main README"
git push origin main
```
## Advanced GitHub Operations
### Branch Management
```bash
# Create new branch
git checkout -b feature/new-feature
# Switch branches
git checkout develop
# Merge branches
git checkout main
git merge feature/new-feature
# Delete branch
git branch -d feature/new-feature
```
### Remote Management
```bash
# Add GitHub remote
git remote add github https://github.com/oib/AITBC.git
# Set up GitHub with token
git remote set-url github https://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@github.com/oib/AITBC.git
# Push to GitHub specifically
git push github main
# Push to both remotes
git push origin main && git push github main
```
### Sync Operations
```bash
# Pull latest changes from GitHub
git pull origin main
# Sync with GitHub
git fetch origin
git rebase origin/main
# Push to GitHub after sync
git push origin main
```
## Troubleshooting
### Push Failures
```bash
# Check if remote exists
git remote get-url origin
# Check authentication
git config --get remote.origin.url
# Fix authentication issues
git remote set-url origin https://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@github.com/oib/AITBC.git
# Force push if needed
git push --force-with-lease origin main
```
### Merge Conflicts
```bash
# Check for conflicts
git status
# Resolve conflicts manually
# Edit conflicted files, then:
git add .
git commit -m "resolve merge conflicts"
# Abort merge if needed
git merge --abort
```
### Remote Issues
```bash
# Check remote connectivity
git ls-remote origin
# Re-add remote if needed
git remote remove origin
git remote add origin https://github.com/oib/AITBC.git
# Test push
git push origin main --dry-run
```
## GitHub Integration
### GitHub CLI (if available)
```bash
# Create pull request
gh pr create --title "Update CLI documentation" --body "Comprehensive CLI documentation updates"
# View repository
gh repo view
# List issues
gh issue list
# Create release
gh release create v1.0.0 --title "Version 1.0.0" --notes "Initial release"
```
### Web Interface
```bash
# Open repository in browser
xdg-open https://github.com/oib/AITBC
# Open specific commit
xdg-open https://github.com/oib/AITBC/commit/$(git rev-parse HEAD)
```
## Best Practices
### Commit Messages
- Use conventional commit format: `type: description`
- Keep messages under 72 characters
- Use imperative mood: "add feature" not "added feature"
- Include body for complex changes
### Branch Strategy
- Use `main` for production-ready code
- Use `develop` for integration
- Use feature branches for new work
- Keep branches short-lived
### Push Frequency
- Push small, frequent commits
- Ensure tests pass before pushing
- Include documentation with code changes
- Tag releases appropriately
## Recent Updates (v2.0)
### Enhanced Workflow
- **Comprehensive Operations**: Added complete GitHub workflow
- **Push Integration**: Specific git push to GitHub commands
- **Remote Management**: GitHub remote configuration
- **Troubleshooting**: Common issues and solutions
### Current Integration
- **GitHub Token**: Integration with GitHub access token
- **Multi-Remote**: Support for both Gitea and GitHub
- **Branch Management**: Complete branch operations
- **CI/CD Ready**: Integration with automated workflows
### Advanced Features
- **GitHub CLI**: Integration with GitHub CLI tools
- **Web Interface**: Browser integration
- **Best Practices**: Documentation standards
- **Error Handling**: Comprehensive troubleshooting

View File

@@ -0,0 +1,430 @@
---
description: Advanced blockchain features including smart contracts, security testing, and performance optimization
title: Multi-Node Blockchain Setup - Advanced Features Module
version: 1.0
---
# Multi-Node Blockchain Setup - Advanced Features Module
This module covers advanced blockchain features including smart contract testing, security testing, performance optimization, and complex operations.
## Prerequisites
- Complete [Core Setup Module](multi-node-blockchain-setup-core.md)
- Complete [Operations Module](multi-node-blockchain-operations.md)
- Stable blockchain network with active nodes
- Basic understanding of blockchain concepts
## Smart Contract Operations
### Smart Contract Deployment
```bash
cd /opt/aitbc && source venv/bin/activate
# Deploy Agent Messaging Contract
./aitbc-cli contract deploy --name "AgentMessagingContract" \
--code "/opt/aitbc/apps/blockchain-node/src/aitbc_chain/contracts/agent_messaging_contract.py" \
--wallet genesis-ops --password 123
# Verify deployment
./aitbc-cli contract list
./aitbc-cli contract status --name "AgentMessagingContract"
```
### Smart Contract Interaction
```bash
# Create governance topic via smart contract
curl -X POST http://localhost:8006/rpc/messaging/topics/create \
-H "Content-Type: application/json" \
-d '{
"agent_id": "governance-agent",
"agent_address": "ait158ec7a0713f30ccfb1aac6bfbab71f36271c5871",
"title": "Network Governance",
"description": "Decentralized governance for network upgrades",
"tags": ["governance", "voting", "upgrades"]
}'
# Post proposal message
curl -X POST http://localhost:8006/rpc/messaging/messages/post \
-H "Content-Type: application/json" \
-d '{
"agent_id": "governance-agent",
"agent_address": "ait158ec7a0713f30ccfb1aac6bfbab71f36271c5871",
"topic_id": "topic_id",
"content": "Proposal: Reduce block time from 10s to 5s for higher throughput",
"message_type": "proposal"
}'
# Vote on proposal
curl -X POST http://localhost:8006/rpc/messaging/messages/message_id/vote \
-H "Content-Type: application/json" \
-d '{
"agent_id": "voter-agent",
"agent_address": "ait141b3bae6eea3a74273ef3961861ee58e12b6d855",
"vote_type": "upvote",
"reason": "Supports network performance improvement"
}'
```
### Contract Testing
```bash
# Test contract functionality
./aitbc-cli contract test --name "AgentMessagingContract" \
--test-case "create_topic" \
--parameters "title:Test Topic,description:Test Description"
# Test contract performance
./aitbc-cli contract benchmark --name "AgentMessagingContract" \
--operations 1000 --concurrent 10
# Verify contract state
./aitbc-cli contract state --name "AgentMessagingContract"
```
## Security Testing
### Penetration Testing
```bash
# Test RPC endpoint security
curl -X POST http://localhost:8006/rpc/transaction \
-H "Content-Type: application/json" \
-d '{"from": "invalid_address", "to": "invalid_address", "amount": -100}'
# Test authentication bypass attempts
curl -X POST http://localhost:8006/rpc/admin/reset \
-H "Content-Type: application/json" \
-d '{"force": true}'
# Test rate limiting
for i in {1..100}; do
curl -s http://localhost:8006/rpc/head > /dev/null &
done
wait
```
### Vulnerability Assessment
```bash
# Check for common vulnerabilities
nmap -sV -p 8006,7070 localhost
# Test wallet encryption
./aitbc-cli wallet test --name genesis-ops --encryption-check
# Test transaction validation
./aitbc-cli transaction test --invalid-signature
./aitbc-cli transaction test --double-spend
./aitbc-cli transaction test --invalid-nonce
```
### Security Hardening
```bash
# Enable TLS for RPC (if supported)
# Edit /etc/aitbc/.env
echo "RPC_TLS_ENABLED=true" | sudo tee -a /etc/aitbc/.env
echo "RPC_TLS_CERT=/etc/aitbc/certs/server.crt" | sudo tee -a /etc/aitbc/.env
echo "RPC_TLS_KEY=/etc/aitbc/certs/server.key" | sudo tee -a /etc/aitbc/.env
# Configure firewall rules
sudo ufw allow 8006/tcp
sudo ufw allow 7070/tcp
sudo ufw deny 8006/tcp from 10.0.0.0/8 # Restrict to local network
# Enable audit logging
echo "AUDIT_LOG_ENABLED=true" | sudo tee -a /etc/aitbc/.env
echo "AUDIT_LOG_PATH=/var/log/aitbc/audit.log" | sudo tee -a /etc/aitbc/.env
```
## Performance Optimization
### Database Optimization
```bash
# Analyze database performance
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "EXPLAIN QUERY PLAN SELECT * FROM blocks WHERE height > 1000;"
# Optimize database indexes
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "CREATE INDEX IF NOT EXISTS idx_blocks_height ON blocks(height);"
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "CREATE INDEX IF NOT EXISTS idx_transactions_timestamp ON transactions(timestamp);"
# Compact database
sudo systemctl stop aitbc-blockchain-node.service aitbc-blockchain-rpc.service
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "VACUUM;"
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "ANALYZE;"
sudo systemctl start aitbc-blockchain-node.service aitbc-blockchain-rpc.service
```
### Network Optimization
```bash
# Tune network parameters
echo "net.core.rmem_max = 134217728" | sudo tee -a /etc/sysctl.conf
echo "net.core.wmem_max = 134217728" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4096 87380 134217728" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 65536 134217728" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# Optimize Redis for gossip
echo "maxmemory 256mb" | sudo tee -a /etc/redis/redis.conf
echo "maxmemory-policy allkeys-lru" | sudo tee -a /etc/redis/redis.conf
sudo systemctl restart redis
```
### Consensus Optimization
```bash
# Tune block production parameters
echo "BLOCK_TIME_SECONDS=5" | sudo tee -a /etc/aitbc/.env
echo "MAX_TXS_PER_BLOCK=1000" | sudo tee -a /etc/aitbc/.env
echo "MAX_BLOCK_SIZE_BYTES=2097152" | sudo tee -a /etc/aitbc/.env
# Optimize mempool
echo "MEMPOOL_MAX_SIZE=10000" | sudo tee -a /etc/aitbc/.env
echo "MEMPOOL_MIN_FEE=1" | sudo tee -a /etc/aitbc/.env
# Restart services with new parameters
sudo systemctl restart aitbc-blockchain-node.service aitbc-blockchain-rpc.service
```
## Advanced Monitoring
### Performance Metrics Collection
```bash
# Create performance monitoring script
cat > /opt/aitbc/scripts/performance_monitor.sh << 'EOF'
#!/bin/bash
METRICS_FILE="/var/log/aitbc/performance_$(date +%Y%m%d).log"
while true; do
TIMESTAMP=$(date +%Y-%m-%d_%H:%M:%S)
# Blockchain metrics
HEIGHT=$(curl -s http://localhost:8006/rpc/head | jq .height)
TX_COUNT=$(curl -s http://localhost:8006/rpc/head | jq .tx_count)
# System metrics
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | sed 's/%us,//')
MEM_USAGE=$(free | grep Mem | awk '{printf "%.1f", $3/$2 * 100.0}')
# Network metrics
NET_LATENCY=$(ping -c 1 aitbc1 | tail -1 | awk '{print $4}' | sed 's/ms=//')
# Log metrics
echo "$TIMESTAMP,height:$HEIGHT,tx_count:$TX_COUNT,cpu:$CPU_USAGE,memory:$MEM_USAGE,latency:$NET_LATENCY" >> $METRICS_FILE
sleep 60
done
EOF
chmod +x /opt/aitbc/scripts/performance_monitor.sh
nohup /opt/aitbc/scripts/performance_monitor.sh > /dev/null 2>&1 &
```
### Real-time Analytics
```bash
# Analyze performance trends
tail -1000 /var/log/aitbc/performance_$(date +%Y%m%d).log | \
awk -F',' '{print $2}' | sed 's/height://' | sort -n | \
awk 'BEGIN{prev=0} {if($1>prev+1) print "Height gap detected at " $1; prev=$1}'
# Monitor transaction throughput
tail -1000 /var/log/aitbc/performance_$(date +%Y%m%d).log | \
awk -F',' '{tx_count[$1] += $3} END {for (time in tx_count) print time, tx_count[time]}'
# Detect performance anomalies
tail -1000 /var/log/aitbc/performance_$(date +%Y%m%d).log | \
awk -F',' '{cpu=$4; mem=$5; if(cpu>80 || mem>90) print "High resource usage at " $1}'
```
## Event Monitoring
### Blockchain Events
```bash
# Monitor block creation events
tail -f /var/log/aitbc/blockchain-node.log | grep "Block proposed"
# Monitor transaction events
tail -f /var/log/aitbc/blockchain-node.log | grep "Transaction"
# Monitor consensus events
tail -f /var/log/aitbc/blockchain-node.log | grep "Consensus"
```
### Smart Contract Events
```bash
# Monitor contract deployment
tail -f /var/log/aitbc/blockchain-node.log | grep "Contract deployed"
# Monitor contract calls
tail -f /var/log/aitbc/blockchain-node.log | grep "Contract call"
# Monitor messaging events
tail -f /var/log/aitbc/blockchain-node.log | grep "Messaging"
```
### System Events
```bash
# Monitor service events
journalctl -u aitbc-blockchain-node.service -f
# Monitor RPC events
journalctl -u aitbc-blockchain-rpc.service -f
# Monitor system events
dmesg -w | grep -E "(error|warning|fail)"
```
## Data Analytics
### Blockchain Analytics
```bash
# Generate blockchain statistics
./aitbc-cli analytics --period "24h" --output json > /tmp/blockchain_stats.json
# Analyze transaction patterns
./aitbc-cli analytics --transactions --group-by hour --output csv > /tmp/tx_patterns.csv
# Analyze wallet activity
./aitbc-cli analytics --wallets --top 10 --output json > /tmp/wallet_activity.json
```
### Performance Analytics
```bash
# Analyze block production rate
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "
SELECT
DATE(timestamp) as date,
COUNT(*) as blocks_produced,
AVG(JULIANDAY(timestamp) - JULIANDAY(LAG(timestamp) OVER (ORDER BY timestamp))) * 86400 as avg_block_time
FROM blocks
WHERE timestamp > datetime('now', '-7 days')
GROUP BY DATE(timestamp)
ORDER BY date;
"
# Analyze transaction volume
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "
SELECT
DATE(timestamp) as date,
COUNT(*) as tx_count,
SUM(amount) as total_volume
FROM transactions
WHERE timestamp > datetime('now', '-7 days')
GROUP BY DATE(timestamp)
ORDER BY date;
"
```
## Consensus Testing
### Consensus Failure Scenarios
```bash
# Test proposer failure
sudo systemctl stop aitbc-blockchain-node.service
sleep 30
sudo systemctl start aitbc-blockchain-node.service
# Test network partition
sudo iptables -A INPUT -s 10.1.223.40 -j DROP
sudo iptables -A OUTPUT -d 10.1.223.40 -j DROP
sleep 60
sudo iptables -D INPUT -s 10.1.223.40 -j DROP
sudo iptables -D OUTPUT -d 10.1.223.40 -j DROP
# Test double-spending prevention
./aitbc-cli send --from genesis-ops --to user-wallet --amount 100 --password 123 &
./aitbc-cli send --from genesis-ops --to user-wallet --amount 100 --password 123
wait
```
### Consensus Performance Testing
```bash
# Test high transaction volume
for i in {1..1000}; do
./aitbc-cli send --from genesis-ops --to user-wallet --amount 1 --password 123 &
done
wait
# Test block production under load
time ./aitbc-cli send --from genesis-ops --to user-wallet --amount 1000 --password 123
# Test consensus recovery
sudo systemctl stop aitbc-blockchain-node.service
sleep 60
sudo systemctl start aitbc-blockchain-node.service
```
## Advanced Troubleshooting
### Complex Failure Scenarios
```bash
# Diagnose split-brain scenarios
GENESIS_HEIGHT=$(curl -s http://localhost:8006/rpc/head | jq .height)
FOLLOWER_HEIGHT=$(ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height')
if [ $GENESIS_HEIGHT -ne $FOLLOWER_HEIGHT ]; then
echo "Potential split-brain detected"
echo "Genesis height: $GENESIS_HEIGHT"
echo "Follower height: $FOLLOWER_HEIGHT"
# Check which chain is longer
if [ $GENESIS_HEIGHT -gt $FOLLOWER_HEIGHT ]; then
echo "Genesis chain is longer - follower needs to sync"
else
echo "Follower chain is longer - potential consensus issue"
fi
fi
```
### Performance Bottleneck Analysis
```bash
# Profile blockchain node performance
sudo perf top -p $(pgrep aitbc-blockchain)
# Analyze memory usage
sudo pmap -d $(pgrep aitbc-blockchain)
# Check I/O bottlenecks
sudo iotop -p $(pgrep aitbc-blockchain)
# Analyze network performance
sudo tcpdump -i eth0 -w /tmp/network_capture.pcap port 8006 or port 7070
```
## Dependencies
This advanced features module depends on:
- **[Core Setup Module](multi-node-blockchain-setup-core.md)** - Basic node setup
- **[Operations Module](multi-node-blockchain-operations.md)** - Daily operations knowledge
## Next Steps
After mastering advanced features, proceed to:
- **[Production Module](multi-node-blockchain-production.md)** - Production deployment and scaling
- **[Marketplace Module](multi-node-blockchain-marketplace.md)** - Marketplace testing and verification
## Safety Notes
⚠️ **Warning**: Advanced features can impact network stability. Test in development environment first.
- Always backup data before performance optimization
- Monitor system resources during security testing
- Use test wallets for consensus failure scenarios
- Document all configuration changes

View File

@@ -0,0 +1,492 @@
---
description: Marketplace scenario testing, GPU provider testing, transaction tracking, and verification procedures
title: Multi-Node Blockchain Setup - Marketplace Module
version: 1.0
---
# Multi-Node Blockchain Setup - Marketplace Module
This module covers marketplace scenario testing, GPU provider testing, transaction tracking, verification procedures, and performance testing for the AITBC blockchain marketplace.
## Prerequisites
- Complete [Core Setup Module](multi-node-blockchain-setup-core.md)
- Complete [Operations Module](multi-node-blockchain-operations.md)
- Complete [Advanced Features Module](multi-node-blockchain-advanced.md)
- Complete [Production Module](multi-node-blockchain-production.md)
- Stable blockchain network with AI operations enabled
- Marketplace services configured
## Marketplace Setup
### Initialize Marketplace Services
```bash
cd /opt/aitbc && source venv/bin/activate
# Create marketplace service provider wallet
./aitbc-cli create --name marketplace-provider --password 123
# Fund marketplace provider wallet
./aitbc-cli send --from genesis-ops --to $(./aitbc-cli list | grep "marketplace-provider:" | cut -d" " -f2) --amount 10000 --password 123
# Create AI service provider wallet
./aitbc-cli create --name ai-service-provider --password 123
# Fund AI service provider wallet
./aitbc-cli send --from genesis-ops --to $(./aitbc-cli list | grep "ai-service-provider:" | cut -d" " -f2) --amount 5000 --password 123
# Create GPU provider wallet
./aitbc-cli create --name gpu-provider --password 123
# Fund GPU provider wallet
./aitbc-cli send --from genesis-ops --to $(./aitbc-cli list | grep "gpu-provider:" | cut -d" " -f2) --amount 5000 --password 123
```
### Create Marketplace Services
```bash
# Create AI inference service
./aitbc-cli marketplace --action create \
--name "AI Image Generation Service" \
--type ai-inference \
--price 100 \
--wallet marketplace-provider \
--description "High-quality image generation using advanced AI models" \
--parameters "resolution:512x512,style:photorealistic,quality:high"
# Create AI training service
./aitbc-cli marketplace --action create \
--name "Custom Model Training Service" \
--type ai-training \
--price 500 \
--wallet ai-service-provider \
--description "Custom AI model training on your datasets" \
--parameters "model_type:custom,epochs:100,batch_size:32"
# Create GPU rental service
./aitbc-cli marketplace --action create \
--name "GPU Cloud Computing" \
--type gpu-rental \
--price 50 \
--wallet gpu-provider \
--description "High-performance GPU rental for AI workloads" \
--parameters "gpu_type:rtx4090,memory:24gb,bandwidth:high"
# Create data processing service
./aitbc-cli marketplace --action create \
--name "Data Analysis Pipeline" \
--type data-processing \
--price 25 \
--wallet marketplace-provider \
--description "Automated data analysis and processing" \
--parameters "data_format:csv,json,xml,output_format:reports"
```
### Verify Marketplace Services
```bash
# List all marketplace services
./aitbc-cli marketplace --action list
# Check service details
./aitbc-cli marketplace --action search --query "AI"
# Verify provider listings
./aitbc-cli marketplace --action my-listings --wallet marketplace-provider
./aitbc-cli marketplace --action my-listings --wallet ai-service-provider
./aitbc-cli marketplace --action my-listings --wallet gpu-provider
```
## Scenario Testing
### Scenario 1: AI Image Generation Workflow
```bash
# Customer creates wallet and funds it
./aitbc-cli create --name customer-1 --password 123
./aitbc-cli send --from genesis-ops --to $(./aitbc-cli list | grep "customer-1:" | cut -d" " -f2) --amount 1000 --password 123
# Customer browses marketplace
./aitbc-cli marketplace --action search --query "image generation"
# Customer bids on AI image generation service
SERVICE_ID=$(./aitbc-cli marketplace --action search --query "AI Image Generation" | grep "service_id" | head -1 | cut -d" " -f2)
./aitbc-cli marketplace --action bid --service-id $SERVICE_ID --amount 120 --wallet customer-1
# Service provider accepts bid
./aitbc-cli marketplace --action accept-bid --service-id $SERVICE_ID --bid-id "bid_123" --wallet marketplace-provider
# Customer submits AI job
./aitbc-cli ai-submit --wallet customer-1 --type inference \
--prompt "Generate a futuristic cityscape with flying cars" \
--payment 120 --service-id $SERVICE_ID
# Monitor job completion
./aitbc-cli ai-status --job-id "ai_job_123"
# Customer receives results
./aitbc-cli ai-results --job-id "ai_job_123"
# Verify transaction completed
./aitbc-cli balance --name customer-1
./aitbc-cli balance --name marketplace-provider
```
### Scenario 2: GPU Rental + AI Training
```bash
# Researcher creates wallet and funds it
./aitbc-cli create --name researcher-1 --password 123
./aitbc-cli send --from genesis-ops --to $(./aitbc-cli list | grep "researcher-1:" | cut -d" " -f2) --amount 2000 --password 123
# Researcher rents GPU for training
GPU_SERVICE_ID=$(./aitbc-cli marketplace --action search --query "GPU" | grep "service_id" | head -1 | cut -d" " -f2)
./aitbc-cli marketplace --action bid --service-id $GPU_SERVICE_ID --amount 60 --wallet researcher-1
# GPU provider accepts and allocates GPU
./aitbc-cli marketplace --action accept-bid --service-id $GPU_SERVICE_ID --bid-id "bid_456" --wallet gpu-provider
# Researcher submits training job with allocated GPU
./aitbc-cli ai-submit --wallet researcher-1 --type training \
--model "custom-classifier" --dataset "/data/training_data.csv" \
--payment 500 --gpu-allocated 1 --memory 8192
# Monitor training progress
./aitbc-cli ai-status --job-id "ai_job_456"
# Verify GPU utilization
./aitbc-cli resource status --agent-id "gpu-worker-1"
# Training completes and researcher gets model
./aitbc-cli ai-results --job-id "ai_job_456"
```
### Scenario 3: Multi-Service Pipeline
```bash
# Enterprise creates wallet and funds it
./aitbc-cli create --name enterprise-1 --password 123
./aitbc-cli send --from genesis-ops --to $(./aitbc-cli list | grep "enterprise-1:" | cut -d" " -f2) --amount 5000 --password 123
# Enterprise creates data processing pipeline
DATA_SERVICE_ID=$(./aitbc-cli marketplace --action search --query "data processing" | grep "service_id" | head -1 | cut -d" " -f2)
./aitbc-cli marketplace --action bid --service-id $DATA_SERVICE_ID --amount 30 --wallet enterprise-1
# Data provider processes raw data
./aitbc-cli marketplace --action accept-bid --service-id $DATA_SERVICE_ID --bid-id "bid_789" --wallet marketplace-provider
# Enterprise submits AI analysis on processed data
./aitbc-cli ai-submit --wallet enterprise-1 --type inference \
--prompt "Analyze processed data for trends and patterns" \
--payment 200 --input-data "/data/processed_data.csv"
# Results are delivered and verified
./aitbc-cli ai-results --job-id "ai_job_789"
# Enterprise pays for services
./aitbc-cli marketplace --action settle-payment --service-id $DATA_SERVICE_ID --amount 30 --wallet enterprise-1
```
## GPU Provider Testing
### GPU Resource Allocation Testing
```bash
# Test GPU allocation and deallocation
./aitbc-cli resource allocate --agent-id "gpu-worker-1" --gpu 1 --memory 8192 --duration 3600
# Verify GPU allocation
./aitbc-cli resource status --agent-id "gpu-worker-1"
# Test GPU utilization monitoring
./aitbc-cli resource utilization --type gpu --period "1h"
# Test GPU deallocation
./aitbc-cli resource deallocate --agent-id "gpu-worker-1"
# Test concurrent GPU allocations
for i in {1..5}; do
./aitbc-cli resource allocate --agent-id "gpu-worker-$i" --gpu 1 --memory 8192 --duration 1800 &
done
wait
# Monitor concurrent GPU usage
./aitbc-cli resource status
```
### GPU Performance Testing
```bash
# Test GPU performance with different workloads
./aitbc-cli ai-submit --wallet gpu-provider --type inference \
--prompt "Generate high-resolution image" --payment 100 \
--gpu-allocated 1 --resolution "1024x1024"
./aitbc-cli ai-submit --wallet gpu-provider --type training \
--model "large-model" --dataset "/data/large_dataset.csv" --payment 500 \
--gpu-allocated 1 --batch-size 64
# Monitor GPU performance metrics
./aitbc-cli ai-metrics --agent-id "gpu-worker-1" --period "1h"
# Test GPU memory management
./aitbc-cli resource test --type gpu --memory-stress --duration 300
```
### GPU Provider Economics
```bash
# Test GPU provider revenue tracking
./aitbc-cli marketplace --action revenue --wallet gpu-provider --period "24h"
# Test GPU utilization optimization
./aitbc-cli marketplace --action optimize --wallet gpu-provider --metric "utilization"
# Test GPU pricing strategy
./aitbc-cli marketplace --action pricing --service-id $GPU_SERVICE_ID --strategy "dynamic"
```
## Transaction Tracking
### Transaction Monitoring
```bash
# Monitor all marketplace transactions
./aitbc-cli marketplace --action transactions --period "1h"
# Track specific service transactions
./aitbc-cli marketplace --action transactions --service-id $SERVICE_ID
# Monitor customer transaction history
./aitbc-cli transactions --name customer-1 --limit 50
# Track provider revenue
./aitbc-cli marketplace --action revenue --wallet marketplace-provider --period "24h"
```
### Transaction Verification
```bash
# Verify transaction integrity
./aitbc-cli transaction verify --tx-id "tx_123"
# Check transaction confirmation status
./aitbc-cli transaction status --tx-id "tx_123"
# Verify marketplace settlement
./aitbc-cli marketplace --action verify-settlement --service-id $SERVICE_ID
# Audit transaction trail
./aitbc-cli marketplace --action audit --period "24h"
```
### Cross-Node Transaction Tracking
```bash
# Monitor transactions across both nodes
./aitbc-cli transactions --cross-node --period "1h"
# Verify transaction propagation
./aitbc-cli transaction verify-propagation --tx-id "tx_123"
# Track cross-node marketplace activity
./aitbc-cli marketplace --action cross-node-stats --period "24h"
```
## Verification Procedures
### Service Quality Verification
```bash
# Verify service provider performance
./aitbc-cli marketplace --action verify-provider --wallet ai-service-provider
# Check service quality metrics
./aitbc-cli marketplace --action quality-metrics --service-id $SERVICE_ID
# Verify customer satisfaction
./aitbc-cli marketplace --action satisfaction --wallet customer-1 --period "7d"
```
### Compliance Verification
```bash
# Verify marketplace compliance
./aitbc-cli marketplace --action compliance-check --period "24h"
# Check regulatory compliance
./aitbc-cli marketplace --action regulatory-audit --period "30d"
# Verify data privacy compliance
./aitbc-cli marketplace --action privacy-audit --service-id $SERVICE_ID
```
### Financial Verification
```bash
# Verify financial transactions
./aitbc-cli marketplace --action financial-audit --period "24h"
# Check payment processing
./aitbc-cli marketplace --action payment-verify --period "1h"
# Reconcile marketplace accounts
./aitbc-cli marketplace --action reconcile --period "24h"
```
## Performance Testing
### Load Testing
```bash
# Simulate high transaction volume
for i in {1..100}; do
./aitbc-cli marketplace --action bid --service-id $SERVICE_ID --amount 100 --wallet test-wallet-$i &
done
wait
# Monitor system performance under load
./aitbc-cli marketplace --action performance-metrics --period "5m"
# Test marketplace scalability
./aitbc-cli marketplace --action stress-test --transactions 1000 --concurrent 50
```
### Latency Testing
```bash
# Test transaction processing latency
time ./aitbc-cli marketplace --action bid --service-id $SERVICE_ID --amount 100 --wallet test-wallet
# Test AI job submission latency
time ./aitbc-cli ai-submit --wallet test-wallet --type inference --prompt "test" --payment 50
# Monitor overall system latency
./aitbc-cli marketplace --action latency-metrics --period "1h"
```
### Throughput Testing
```bash
# Test marketplace throughput
./aitbc-cli marketplace --action throughput-test --duration 300 --transactions-per-second 10
# Test AI job throughput
./aitbc-cli marketplace --action ai-throughput-test --duration 300 --jobs-per-minute 5
# Monitor system capacity
./aitbc-cli marketplace --action capacity-metrics --period "24h"
```
## Troubleshooting Marketplace Issues
### Common Marketplace Problems
| Problem | Symptoms | Diagnosis | Fix |
|---|---|---|---|
| Service not found | Search returns no results | Check service listing status | Verify service is active and listed |
| Bid acceptance fails | Provider can't accept bids | Check provider wallet balance | Ensure provider has sufficient funds |
| Payment settlement fails | Transaction stuck | Check blockchain status | Verify blockchain is healthy |
| GPU allocation fails | Can't allocate GPU resources | Check GPU availability | Verify GPU resources are available |
| AI job submission fails | Job not processing | Check AI service status | Verify AI service is operational |
### Advanced Troubleshooting
```bash
# Diagnose marketplace connectivity
./aitbc-cli marketplace --action connectivity-test
# Check marketplace service health
./aitbc-cli marketplace --action health-check
# Verify marketplace data integrity
./aitbc-cli marketplace --action integrity-check
# Debug marketplace transactions
./aitbc-cli marketplace --action debug --transaction-id "tx_123"
```
## Automation Scripts
### Automated Marketplace Testing
```bash
#!/bin/bash
# automated_marketplace_test.sh
echo "Starting automated marketplace testing..."
# Create test wallets
./aitbc-cli create --name test-customer --password 123
./aitbc-cli create --name test-provider --password 123
# Fund test wallets
CUSTOMER_ADDR=$(./aitbc-cli list | grep "test-customer:" | cut -d" " -f2)
PROVIDER_ADDR=$(./aitbc-cli list | grep "test-provider:" | cut -d" " -f2)
./aitbc-cli send --from genesis-ops --to $CUSTOMER_ADDR --amount 1000 --password 123
./aitbc-cli send --from genesis-ops --to $PROVIDER_ADDR --amount 1000 --password 123
# Create test service
./aitbc-cli marketplace --action create \
--name "Test AI Service" \
--type ai-inference \
--price 50 \
--wallet test-provider \
--description "Automated test service"
# Test complete workflow
SERVICE_ID=$(./aitbc-cli marketplace --action list | grep "Test AI Service" | grep "service_id" | cut -d" " -f2)
./aitbc-cli marketplace --action bid --service-id $SERVICE_ID --amount 60 --wallet test-customer
./aitbc-cli marketplace --action accept-bid --service-id $SERVICE_ID --bid-id "test_bid" --wallet test-provider
./aitbc-cli ai-submit --wallet test-customer --type inference --prompt "test image" --payment 60
# Verify results
echo "Test completed successfully!"
```
### Performance Monitoring Script
```bash
#!/bin/bash
# marketplace_performance_monitor.sh
while true; do
TIMESTAMP=$(date +%Y-%m-%d_%H:%M:%S)
# Collect metrics
ACTIVE_SERVICES=$(./aitbc-cli marketplace --action list | grep -c "service_id")
PENDING_BIDS=$(./aitbc-cli marketplace --action pending-bids | grep -c "bid_id")
TOTAL_VOLUME=$(./aitbc-cli marketplace --action volume --period "1h")
# Log metrics
echo "$TIMESTAMP,services:$ACTIVE_SERVICES,bids:$PENDING_BIDS,volume:$TOTAL_VOLUME" >> /var/log/aitbc/marketplace_performance.log
sleep 60
done
```
## Dependencies
This marketplace module depends on:
- **[Core Setup Module](multi-node-blockchain-setup-core.md)** - Basic node setup
- **[Operations Module](multi-node-blockchain-operations.md)** - Daily operations
- **[Advanced Features Module](multi-node-blockchain-advanced.md)** - Advanced features
- **[Production Module](multi-node-blockchain-production.md)** - Production deployment
## Next Steps
After mastering marketplace operations, proceed to:
- **[Reference Module](multi-node-blockchain-reference.md)** - Configuration and verification reference
## Best Practices
- Always test marketplace operations with small amounts first
- Monitor GPU resource utilization during AI jobs
- Verify transaction confirmations before considering operations complete
- Use proper wallet management for different roles (customers, providers)
- Implement proper logging for marketplace transactions
- Regularly audit marketplace compliance and financial integrity

View File

@@ -0,0 +1,337 @@
---
description: Daily operations, monitoring, and troubleshooting for multi-node blockchain deployment
title: Multi-Node Blockchain Setup - Operations Module
version: 1.0
---
# Multi-Node Blockchain Setup - Operations Module
This module covers daily operations, monitoring, service management, and troubleshooting for the multi-node AITBC blockchain network.
## Prerequisites
- Complete [Core Setup Module](multi-node-blockchain-setup-core.md)
- Both nodes operational and synchronized
- Basic wallets created and funded
## Daily Operations
### Service Management
```bash
# Check service status on both nodes
systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service
ssh aitbc1 'systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service'
# Restart services if needed
sudo systemctl restart aitbc-blockchain-node.service aitbc-blockchain-rpc.service
ssh aitbc1 'sudo systemctl restart aitbc-blockchain-node.service aitbc-blockchain-rpc.service'
# Check service logs
sudo journalctl -u aitbc-blockchain-node.service -f
sudo journalctl -u aitbc-blockchain-rpc.service -f
```
### Blockchain Monitoring
```bash
# Check blockchain height and sync status
GENESIS_HEIGHT=$(curl -s http://localhost:8006/rpc/head | jq .height)
FOLLOWER_HEIGHT=$(ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height')
echo "Genesis: $GENESIS_HEIGHT, Follower: $FOLLOWER_HEIGHT, Diff: $((FOLLOWER_HEIGHT - GENESIS_HEIGHT))"
# Check network status
curl -s http://localhost:8006/rpc/info | jq .
ssh aitbc1 'curl -s http://localhost:8006/rpc/info | jq .'
# Monitor block production
watch -n 10 'curl -s http://localhost:8006/rpc/head | jq "{height: .height, timestamp: .timestamp}"'
```
### Wallet Operations
```bash
# Check wallet balances
cd /opt/aitbc && source venv/bin/activate
./aitbc-cli balance --name genesis-ops
./aitbc-cli balance --name user-wallet
# Send transactions
./aitbc-cli send --from genesis-ops --to user-wallet --amount 100 --password 123
# Check transaction history
./aitbc-cli transactions --name genesis-ops --limit 10
# Cross-node transaction
FOLLOWER_ADDR=$(ssh aitbc1 'cd /opt/aitbc && source venv/bin/activate && ./aitbc-cli list | grep "follower-ops:" | cut -d" " -f2')
./aitbc-cli send --from genesis-ops --to $FOLLOWER_ADDR --amount 50 --password 123
```
## Health Monitoring
### Automated Health Check
```bash
# Comprehensive health monitoring script
python3 /tmp/aitbc1_heartbeat.py
# Manual health checks
curl -s http://localhost:8006/health | jq .
ssh aitbc1 'curl -s http://localhost:8006/health | jq .'
# Check system resources
free -h
df -h /var/lib/aitbc
ssh aitbc1 'free -h && df -h /var/lib/aitbc'
```
### Performance Monitoring
```bash
# Check RPC performance
time curl -s http://localhost:8006/rpc/head > /dev/null
time ssh aitbc1 'curl -s http://localhost:8006/rpc/head > /dev/null'
# Monitor database size
du -sh /var/lib/aitbc/data/ait-mainnet/
ssh aitbc1 'du -sh /var/lib/aitbc/data/ait-mainnet/'
# Check network latency
ping -c 5 aitbc1
ssh aitbc1 'ping -c 5 localhost'
```
## Troubleshooting Common Issues
### Service Issues
| Problem | Symptoms | Diagnosis | Fix |
|---|---|---|---|
| RPC not responding | Connection refused on port 8006 | `curl -s http://localhost:8006/health` fails | Restart RPC service: `sudo systemctl restart aitbc-blockchain-rpc.service` |
| Block production stopped | Height not increasing | Check proposer status | Restart node service: `sudo systemctl restart aitbc-blockchain-node.service` |
| High memory usage | System slow, OOM errors | `free -h` shows low memory | Restart services, check for memory leaks |
| Disk space full | Services failing | `df -h` shows 100% on data partition | Clean old logs, prune database if needed |
### Blockchain Issues
| Problem | Symptoms | Diagnosis | Fix |
|---|---|---|---|
| Nodes out of sync | Height difference > 10 | Compare heights on both nodes | Check network connectivity, restart services |
| Transactions stuck | Transaction not mining | Check mempool status | Verify proposer is active, check transaction validity |
| Wallet balance wrong | Balance shows 0 or incorrect | Check wallet on correct node | Query balance on node where wallet was created |
| Genesis missing | No blockchain data | Check data directory | Verify genesis block creation, re-run core setup |
### Network Issues
| Problem | Symptoms | Diagnosis | Fix |
|---|---|---|---|
| SSH connection fails | Can't reach follower node | `ssh aitbc1` times out | Check network, SSH keys, firewall |
| Gossip not working | No block propagation | Check Redis connectivity | Verify Redis configuration, restart Redis |
| RPC connectivity | Can't reach RPC endpoints | `curl` fails | Check service status, port availability |
## Performance Optimization
### Database Optimization
```bash
# Check database fragmentation
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "PRAGMA table_info(blocks);"
# Vacuum database (maintenance window)
sudo systemctl stop aitbc-blockchain-node.service aitbc-blockchain-rpc.service
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "VACUUM;"
sudo systemctl start aitbc-blockchain-node.service aitbc-blockchain-rpc.service
# Check database size growth
du -sh /var/lib/aitbc/data/ait-mainnet/chain.db
```
### Log Management
```bash
# Check log sizes
du -sh /var/log/aitbc/*
# Rotate logs if needed
sudo logrotate -f /etc/logrotate.d/aitbc
# Clean old logs (older than 7 days)
find /var/log/aitbc -name "*.log" -mtime +7 -delete
```
### Resource Monitoring
```bash
# Monitor CPU usage
top -p $(pgrep aitbc-blockchain)
# Monitor memory usage
ps aux | grep aitbc-blockchain
# Monitor disk I/O
iotop -p $(pgrep aitbc-blockchain)
# Monitor network traffic
iftop -i eth0
```
## Backup and Recovery
### Database Backup
```bash
# Create backup
BACKUP_DIR="/var/backups/aitbc/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
sudo cp /var/lib/aitbc/data/ait-mainnet/chain.db $BACKUP_DIR/
sudo cp /var/lib/aitbc/data/ait-mainnet/mempool.db $BACKUP_DIR/
# Backup keystore
sudo cp -r /var/lib/aitbc/keystore $BACKUP_DIR/
# Backup configuration
sudo cp /etc/aitbc/.env $BACKUP_DIR/
```
### Recovery Procedures
```bash
# Restore from backup
BACKUP_DIR="/var/backups/aitbc/20240330"
sudo systemctl stop aitbc-blockchain-node.service aitbc-blockchain-rpc.service
sudo cp $BACKUP_DIR/chain.db /var/lib/aitbc/data/ait-mainnet/
sudo cp $BACKUP_DIR/mempool.db /var/lib/aitbc/data/ait-mainnet/
sudo systemctl start aitbc-blockchain-node.service aitbc-blockchain-rpc.service
# Verify recovery
curl -s http://localhost:8006/rpc/head | jq .height
```
## Security Operations
### Security Monitoring
```bash
# Check for unauthorized access
sudo grep "Failed password" /var/log/auth.log | tail -10
# Monitor blockchain for suspicious activity
./aitbc-cli transactions --name genesis-ops --limit 20 | grep -E "(large|unusual)"
# Check file permissions
ls -la /var/lib/aitbc/
ls -la /etc/aitbc/
```
### Security Hardening
```bash
# Update system packages
sudo apt update && sudo apt upgrade -y
# Check for open ports
netstat -tlnp | grep -E "(8006|7070)"
# Verify firewall status
sudo ufw status
```
## Automation Scripts
### Daily Health Check Script
```bash
#!/bin/bash
# daily_health_check.sh
echo "=== Daily Health Check $(date) ==="
# Check services
echo "Services:"
systemctl is-active aitbc-blockchain-node.service aitbc-blockchain-rpc.service
ssh aitbc1 'systemctl is-active aitbc-blockchain-node.service aitbc-blockchain-rpc.service'
# Check sync
echo "Sync Status:"
GENESIS_HEIGHT=$(curl -s http://localhost:8006/rpc/head | jq .height)
FOLLOWER_HEIGHT=$(ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height')
echo "Genesis: $GENESIS_HEIGHT, Follower: $FOLLOWER_HEIGHT"
# Check disk space
echo "Disk Usage:"
df -h /var/lib/aitbc
ssh aitbc1 'df -h /var/lib/aitbc'
# Check memory
echo "Memory Usage:"
free -h
ssh aitbc1 'free -h'
```
### Automated Recovery Script
```bash
#!/bin/bash
# auto_recovery.sh
# Check if services are running
if ! systemctl is-active --quiet aitbc-blockchain-node.service; then
echo "Restarting blockchain node service..."
sudo systemctl restart aitbc-blockchain-node.service
fi
if ! systemctl is-active --quiet aitbc-blockchain-rpc.service; then
echo "Restarting RPC service..."
sudo systemctl restart aitbc-blockchain-rpc.service
fi
# Check sync status
GENESIS_HEIGHT=$(curl -s http://localhost:8006/rpc/head | jq .height)
FOLLOWER_HEIGHT=$(ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height')
if [ $((FOLLOWER_HEIGHT - GENESIS_HEIGHT)) -gt 10 ]; then
echo "Nodes out of sync, restarting follower services..."
ssh aitbc1 'sudo systemctl restart aitbc-blockchain-node.service aitbc-blockchain-rpc.service'
fi
```
## Monitoring Dashboard
### Key Metrics to Monitor
- **Block Height**: Should be equal on both nodes
- **Transaction Rate**: Normal vs abnormal patterns
- **Memory Usage**: Should be stable over time
- **Disk Usage**: Monitor growth rate
- **Network Latency**: Between nodes
- **Error Rates**: In logs and transactions
### Alert Thresholds
```bash
# Create monitoring alerts
if [ $((FOLLOWER_HEIGHT - GENESIS_HEIGHT)) -gt 20 ]; then
echo "ALERT: Nodes significantly out of sync"
fi
DISK_USAGE=$(df /var/lib/aitbc | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
echo "ALERT: Disk usage above 80%"
fi
MEMORY_USAGE=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100.0}')
if [ $MEMORY_USAGE -gt 90 ]; then
echo "ALERT: Memory usage above 90%"
fi
```
## Dependencies
This operations module depends on:
- **[Core Setup Module](multi-node-blockchain-setup-core.md)** - Basic node setup required
## Next Steps
After mastering operations, proceed to:
- **[Advanced Features Module](multi-node-blockchain-advanced.md)** - Smart contracts and security testing
- **[Production Module](multi-node-blockchain-production.md)** - Production deployment and scaling

View File

@@ -0,0 +1,740 @@
---
description: Production deployment, security hardening, monitoring, and scaling strategies
title: Multi-Node Blockchain Setup - Production Module
version: 1.0
---
# Multi-Node Blockchain Setup - Production Module
This module covers production deployment, security hardening, monitoring, alerting, scaling strategies, and CI/CD integration for the multi-node AITBC blockchain network.
## Prerequisites
- Complete [Core Setup Module](multi-node-blockchain-setup-core.md)
- Complete [Operations Module](multi-node-blockchain-operations.md)
- Complete [Advanced Features Module](multi-node-blockchain-advanced.md)
- Stable and optimized blockchain network
- Production environment requirements
## Production Readiness Checklist
### Security Hardening
```bash
# Update system packages
sudo apt update && sudo apt upgrade -y
# Configure automatic security updates
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
# Harden SSH configuration
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
sudo tee /etc/ssh/sshd_config > /dev/null << 'EOF'
Port 22
Protocol 2
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
EOF
sudo systemctl restart ssh
# Configure firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 8006/tcp
sudo ufw allow 7070/tcp
sudo ufw enable
# Install fail2ban
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
```
### System Security
```bash
# Create dedicated user for AITBC services
sudo useradd -r -s /bin/false aitbc
sudo usermod -L aitbc
# Secure file permissions
sudo chown -R aitbc:aitbc /var/lib/aitbc
sudo chmod 750 /var/lib/aitbc
sudo chmod 640 /var/lib/aitbc/data/ait-mainnet/*.db
# Secure keystore
sudo chmod 700 /var/lib/aitbc/keystore
sudo chmod 600 /var/lib/aitbc/keystore/*.json
# Configure log rotation
sudo tee /etc/logrotate.d/aitbc > /dev/null << 'EOF'
/var/log/aitbc/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 644 aitbc aitbc
postrotate
systemctl reload rsyslog || true
endscript
}
EOF
```
### Service Configuration
```bash
# Create production systemd service files
sudo tee /etc/systemd/system/aitbc-blockchain-node-production.service > /dev/null << 'EOF'
[Unit]
Description=AITBC Blockchain Node (Production)
After=network.target
Wants=network.target
[Service]
Type=simple
User=aitbc
Group=aitbc
WorkingDirectory=/opt/aitbc
Environment=PYTHONPATH=/opt/aitbc
EnvironmentFile=/etc/aitbc/.env
ExecStart=/opt/aitbc/venv/bin/python -m aitbc_chain.main
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10
LimitNOFILE=65536
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
EOF
sudo tee /etc/systemd/system/aitbc-blockchain-rpc-production.service > /dev/null << 'EOF'
[Unit]
Description=AITBC Blockchain RPC Service (Production)
After=aitbc-blockchain-node-production.service
Requires=aitbc-blockchain-node-production.service
[Service]
Type=simple
User=aitbc
Group=aitbc
WorkingDirectory=/opt/aitbc
Environment=PYTHONPATH=/opt/aitbc
EnvironmentFile=/etc/aitbc/.env
ExecStart=/opt/aitbc/venv/bin/python -m aitbc_chain.app
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10
LimitNOFILE=65536
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
EOF
# Enable production services
sudo systemctl daemon-reload
sudo systemctl enable aitbc-blockchain-node-production.service
sudo systemctl enable aitbc-blockchain-rpc-production.service
```
## Production Configuration
### Environment Optimization
```bash
# Production environment configuration
sudo tee /etc/aitbc/.env.production > /dev/null << 'EOF'
# Production Configuration
CHAIN_ID=ait-mainnet-prod
ENABLE_BLOCK_PRODUCTION=true
PROPOSER_ID=ait158ec7a0713f30ccfb1aac6bfbab71f36271c5871
# Performance Tuning
BLOCK_TIME_SECONDS=5
MAX_TXS_PER_BLOCK=2000
MAX_BLOCK_SIZE_BYTES=4194304
MEMPOOL_MAX_SIZE=50000
MEMPOOL_MIN_FEE=5
# Security
RPC_TLS_ENABLED=true
RPC_TLS_CERT=/etc/aitbc/certs/server.crt
RPC_TLS_KEY=/etc/aitbc/certs/server.key
RPC_TLS_CA=/etc/aitbc/certs/ca.crt
AUDIT_LOG_ENABLED=true
AUDIT_LOG_PATH=/var/log/aitbc/audit.log
# Monitoring
METRICS_ENABLED=true
METRICS_PORT=9090
HEALTH_CHECK_INTERVAL=30
# Database
DB_PATH=/var/lib/aitbc/data/ait-mainnet/chain.db
DB_BACKUP_ENABLED=true
DB_BACKUP_INTERVAL=3600
DB_BACKUP_RETENTION=168
# Gossip
GOSSIP_BACKEND=redis
GOSSIP_BROADCAST_URL=redis://localhost:6379
GOSSIP_ENCRYPTION=true
EOF
# Generate TLS certificates
sudo mkdir -p /etc/aitbc/certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/aitbc/certs/server.key \
-out /etc/aitbc/certs/server.crt \
-subj "/C=US/ST=State/L=City/O=AITBC/OU=Blockchain/CN=localhost"
# Set proper permissions
sudo chown -R aitbc:aitbc /etc/aitbc/certs
sudo chmod 600 /etc/aitbc/certs/server.key
sudo chmod 644 /etc/aitbc/certs/server.crt
```
### Database Optimization
```bash
# Production database configuration
sudo systemctl stop aitbc-blockchain-node-production.service
# Optimize SQLite for production
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db << 'EOF'
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;
PRAGMA cache_size = -64000; -- 64MB cache
PRAGMA temp_store = MEMORY;
PRAGMA mmap_size = 268435456; -- 256MB memory-mapped I/O
PRAGMA optimize;
VACUUM;
ANALYZE;
EOF
# Configure automatic backups
sudo tee /etc/cron.d/aitbc-backup > /dev/null << 'EOF'
# AITBC Production Backups
0 2 * * * aitbc /opt/aitbc/scripts/backup_database.sh
0 3 * * 0 aitbc /opt/aitbc/scripts/cleanup_old_backups.sh
EOF
sudo mkdir -p /var/backups/aitbc
sudo chown aitbc:aitbc /var/backups/aitbc
sudo chmod 750 /var/backups/aitbc
```
## Monitoring and Alerting
### Prometheus Monitoring
```bash
# Install Prometheus
sudo apt install prometheus -y
# Configure Prometheus for AITBC
sudo tee /etc/prometheus/prometheus.yml > /dev/null << 'EOF'
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'aitbc-blockchain'
static_configs:
- targets: ['localhost:9090', '10.1.223.40:9090']
metrics_path: /metrics
scrape_interval: 10s
- job_name: 'node-exporter'
static_configs:
- targets: ['localhost:9100', '10.1.223.40:9100']
EOF
sudo systemctl enable prometheus
sudo systemctl start prometheus
```
### Grafana Dashboard
```bash
# Install Grafana
sudo apt install grafana -y
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
# Create AITBC dashboard configuration
sudo tee /etc/grafana/provisioning/dashboards/aitbc-dashboard.json > /dev/null << 'EOF'
{
"dashboard": {
"title": "AITBC Blockchain Production",
"panels": [
{
"title": "Block Height",
"type": "stat",
"targets": [
{
"expr": "aitbc_block_height",
"refId": "A"
}
]
},
{
"title": "Transaction Rate",
"type": "graph",
"targets": [
{
"expr": "rate(aitbc_transactions_total[5m])",
"refId": "B"
}
]
},
{
"title": "Node Status",
"type": "table",
"targets": [
{
"expr": "aitbc_node_up",
"refId": "C"
}
]
}
]
}
}
EOF
```
### Alerting Rules
```bash
# Create alerting rules
sudo tee /etc/prometheus/alert_rules.yml > /dev/null << 'EOF'
groups:
- name: aitbc_alerts
rules:
- alert: NodeDown
expr: up{job="aitbc-blockchain"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "AITBC node is down"
description: "AITBC blockchain node {{ $labels.instance }} has been down for more than 1 minute"
- alert: HeightDifference
expr: abs(aitbc_block_height{instance="localhost:9090"} - aitbc_block_height{instance="10.1.223.40:9090"}) > 10
for: 5m
labels:
severity: warning
annotations:
summary: "Blockchain height difference detected"
description: "Height difference between nodes is {{ $value }} blocks"
- alert: HighMemoryUsage
expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes > 0.9
for: 5m
labels:
severity: warning
annotations:
summary: "High memory usage"
description: "Memory usage is {{ $value | humanizePercentage }}"
- alert: DiskSpaceLow
expr: (node_filesystem_avail_bytes{mountpoint="/var/lib/aitbc"} / node_filesystem_size_bytes{mountpoint="/var/lib/aitbc"}) < 0.1
for: 5m
labels:
severity: critical
annotations:
summary: "Low disk space"
description: "Disk space is {{ $value | humanizePercentage }} available"
EOF
```
## Scaling Strategies
### Horizontal Scaling
```bash
# Add new follower node
NEW_NODE_IP="10.1.223.41"
# Deploy to new node
ssh $NEW_NODE_IP "
# Clone repository
git clone https://github.com/aitbc/blockchain.git /opt/aitbc
cd /opt/aitbc
# Setup Python environment
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Copy configuration
scp aitbc:/etc/aitbc/.env.production /etc/aitbc/.env
# Create data directories
sudo mkdir -p /var/lib/aitbc/data/ait-mainnet
sudo mkdir -p /var/lib/aitbc/keystore
sudo chown -R aitbc:aitbc /var/lib/aitbc
# Start services
sudo systemctl enable aitbc-blockchain-node-production.service
sudo systemctl enable aitbc-blockchain-rpc-production.service
sudo systemctl start aitbc-blockchain-node-production.service
sudo systemctl start aitbc-blockchain-rpc-production.service
"
# Update load balancer configuration
sudo tee /etc/nginx/nginx.conf > /dev/null << 'EOF'
upstream aitbc_rpc {
server 10.1.223.93:8006 max_fails=3 fail_timeout=30s;
server 10.1.223.40:8006 max_fails=3 fail_timeout=30s;
server 10.1.223.41:8006 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name rpc.aitbc.io;
location / {
proxy_pass http://aitbc_rpc;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
}
}
EOF
sudo systemctl restart nginx
```
### Vertical Scaling
```bash
# Resource optimization for high-load scenarios
sudo tee /etc/systemd/system/aitbc-blockchain-node-production.service.d/override.conf > /dev/null << 'EOF'
[Service]
LimitNOFILE=1048576
LimitNPROC=1048576
MemoryMax=8G
CPUQuota=200%
EOF
# Optimize kernel parameters
sudo tee /etc/sysctl.d/99-aitbc-production.conf > /dev/null << 'EOF'
# Network optimization
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
net.ipv4.tcp_congestion_control = bbr
# File system optimization
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
EOF
sudo sysctl -p /etc/sysctl.d/99-aitbc-production.conf
```
## Load Balancing
### HAProxy Configuration
```bash
# Install HAProxy
sudo apt install haproxy -y
# Configure HAProxy for RPC load balancing
sudo tee /etc/haproxy/haproxy.cfg > /dev/null << 'EOF'
global
daemon
maxconn 4096
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend aitbc_rpc_frontend
bind *:8006
default_backend aitbc_rpc_backend
backend aitbc_rpc_backend
balance roundrobin
option httpchk GET /health
server aitbc1 10.1.223.93:8006 check
server aitbc2 10.1.223.40:8006 check
server aitbc3 10.1.223.41:8006 check
frontend aitbc_p2p_frontend
bind *:7070
default_backend aitbc_p2p_backend
backend aitbc_p2p_backend
balance source
server aitbc1 10.1.223.93:7070 check
server aitbc2 10.1.223.40:7070 check
server aitbc3 10.1.223.41:7070 check
EOF
sudo systemctl enable haproxy
sudo systemctl start haproxy
```
## CI/CD Integration
### GitHub Actions Pipeline
```yaml
# .github/workflows/production-deploy.yml
name: Production Deployment
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install pytest
- name: Run tests
run: pytest tests/
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run security scan
run: |
pip install bandit safety
bandit -r apps/
safety check
deploy-staging:
needs: [test, security-scan]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Deploy to staging
run: |
# Deploy to staging environment
./scripts/deploy-staging.sh
deploy-production:
needs: [deploy-staging]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Deploy to production
run: |
# Deploy to production environment
./scripts/deploy-production.sh
```
### Deployment Scripts
```bash
# Create deployment scripts
cat > /opt/aitbc/scripts/deploy-production.sh << 'EOF'
#!/bin/bash
set -e
echo "Deploying AITBC to production..."
# Backup current version
BACKUP_DIR="/var/backups/aitbc/deploy-$(date +%Y%m%d-%H%M%S)"
mkdir -p $BACKUP_DIR
sudo cp -r /opt/aitbc $BACKUP_DIR/
# Update code
git pull origin main
# Install dependencies
source venv/bin/activate
pip install -r requirements.txt
# Run database migrations
python -m aitbc_chain.migrate
# Restart services with zero downtime
sudo systemctl reload aitbc-blockchain-rpc-production.service
sudo systemctl restart aitbc-blockchain-node-production.service
# Health check
sleep 30
if curl -sf http://localhost:8006/health > /dev/null; then
echo "Deployment successful!"
else
echo "Deployment failed - rolling back..."
sudo systemctl stop aitbc-blockchain-node-production.service aitbc-blockchain-rpc-production.service
sudo cp -r $BACKUP_DIR/aitbc/* /opt/aitbc/
sudo systemctl start aitbc-blockchain-node-production.service aitbc-blockchain-rpc-production.service
exit 1
fi
EOF
chmod +x /opt/aitbc/scripts/deploy-production.sh
```
## Disaster Recovery
### Backup Strategy
```bash
# Create comprehensive backup script
cat > /opt/aitbc/scripts/backup_production.sh << 'EOF'
#!/bin/bash
set -e
BACKUP_DIR="/var/backups/aitbc/production-$(date +%Y%m%d-%H%M%S)"
mkdir -p $BACKUP_DIR
echo "Starting production backup..."
# Stop services gracefully
sudo systemctl stop aitbc-blockchain-node-production.service aitbc-blockchain-rpc-production.service
# Backup database
sudo cp /var/lib/aitbc/data/ait-mainnet/chain.db $BACKUP_DIR/
sudo cp /var/lib/aitbc/data/ait-mainnet/mempool.db $BACKUP_DIR/
# Backup keystore
sudo cp -r /var/lib/aitbc/keystore $BACKUP_DIR/
# Backup configuration
sudo cp /etc/aitbc/.env.production $BACKUP_DIR/
sudo cp -r /etc/aitbc/certs $BACKUP_DIR/
# Backup logs
sudo cp -r /var/log/aitbc $BACKUP_DIR/
# Create backup manifest
cat > $BACKUP_DIR/MANIFEST.txt << EOF
Backup created: $(date)
Blockchain height: $(curl -s http://localhost:8006/rpc/head | jq .height)
Git commit: $(git rev-parse HEAD)
System info: $(uname -a)
EOF
# Compress backup
tar -czf $BACKUP_DIR.tar.gz -C $(dirname $BACKUP_DIR) $(basename $BACKUP_DIR)
rm -rf $BACKUP_DIR
# Restart services
sudo systemctl start aitbc-blockchain-node-production.service aitbc-blockchain-rpc-production.service
echo "Backup completed: $BACKUP_DIR.tar.gz"
EOF
chmod +x /opt/aitbc/scripts/backup_production.sh
```
### Recovery Procedures
```bash
# Create recovery script
cat > /opt/aitbc/scripts/recover_production.sh << 'EOF'
#!/bin/bash
set -e
BACKUP_FILE=$1
if [ -z "$BACKUP_FILE" ]; then
echo "Usage: $0 <backup_file.tar.gz>"
exit 1
fi
echo "Recovering from backup: $BACKUP_FILE"
# Stop services
sudo systemctl stop aitbc-blockchain-node-production.service aitbc-blockchain-rpc-production.service
# Extract backup
TEMP_DIR="/tmp/aitbc-recovery-$(date +%s)"
mkdir -p $TEMP_DIR
tar -xzf $BACKUP_FILE -C $TEMP_DIR
# Restore database
sudo cp $TEMP_DIR/*/chain.db /var/lib/aitbc/data/ait-mainnet/
sudo cp $TEMP_DIR/*/mempool.db /var/lib/aitbc/data/ait-mainnet/
# Restore keystore
sudo rm -rf /var/lib/aitbc/keystore
sudo cp -r $TEMP_DIR/*/keystore /var/lib/aitbc/
# Restore configuration
sudo cp $TEMP_DIR/*/.env.production /etc/aitbc/.env
sudo cp -r $TEMP_DIR/*/certs /etc/aitbc/
# Set permissions
sudo chown -R aitbc:aitbc /var/lib/aitbc
sudo chmod 600 /var/lib/aitbc/keystore/*.json
# Start services
sudo systemctl start aitbc-blockchain-node-production.service aitbc-blockchain-rpc-production.service
# Verify recovery
sleep 30
if curl -sf http://localhost:8006/health > /dev/null; then
echo "Recovery successful!"
else
echo "Recovery failed!"
exit 1
fi
# Cleanup
rm -rf $TEMP_DIR
EOF
chmod +x /opt/aitbc/scripts/recover_production.sh
```
## Dependencies
This production module depends on:
- **[Core Setup Module](multi-node-blockchain-setup-core.md)** - Basic node setup
- **[Operations Module](multi-node-blockchain-operations.md)** - Daily operations knowledge
- **[Advanced Features Module](multi-node-blockchain-advanced.md)** - Advanced features understanding
## Next Steps
After mastering production deployment, proceed to:
- **[Marketplace Module](multi-node-blockchain-marketplace.md)** - Marketplace testing and verification
- **[Reference Module](multi-node-blockchain-reference.md)** - Configuration and verification reference
## Safety Notes
⚠️ **Critical**: Production deployment requires careful planning and testing.
- Always test in staging environment first
- Have disaster recovery procedures ready
- Monitor system resources continuously
- Keep security updates current
- Document all configuration changes
- Use proper change management procedures

View File

@@ -0,0 +1,511 @@
---
description: Configuration overview, verification commands, system overview, success metrics, and best practices
title: Multi-Node Blockchain Setup - Reference Module
version: 1.0
---
# Multi-Node Blockchain Setup - Reference Module
This module provides comprehensive reference information including configuration overview, verification commands, system overview, success metrics, and best practices for the multi-node AITBC blockchain network.
## Configuration Overview
### Environment Configuration
```bash
# Main configuration file
/etc/aitbc/.env
# Production configuration
/etc/aitbc/.env.production
# Key configuration parameters
CHAIN_ID=ait-mainnet
PROPOSER_ID=ait158ec7a0713f30ccfb1aac6bfbab71f36271c5871
ENABLE_BLOCK_PRODUCTION=true
BLOCK_TIME_SECONDS=10
MAX_TXS_PER_BLOCK=1000
MAX_BLOCK_SIZE_BYTES=2097152
MEMPOOL_MAX_SIZE=10000
MEMPOOL_MIN_FEE=10
GOSSIP_BACKEND=redis
GOSSIP_BROADCAST_URL=redis://10.1.223.40:6379
RPC_TLS_ENABLED=false
AUDIT_LOG_ENABLED=true
```
### Service Configuration
```bash
# Systemd services
/etc/systemd/system/aitbc-blockchain-node.service
/etc/systemd/system/aitbc-blockchain-rpc.service
# Production services
/etc/systemd/system/aitbc-blockchain-node-production.service
/etc/systemd/system/aitbc-blockchain-rpc-production.service
# Service dependencies
aitbc-blockchain-rpc.service -> aitbc-blockchain-node.service
```
### Database Configuration
```bash
# Database location
/var/lib/aitbc/data/ait-mainnet/chain.db
/var/lib/aitbc/data/ait-mainnet/mempool.db
# Database optimization settings
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;
PRAGMA cache_size = -64000;
PRAGMA temp_store = MEMORY;
PRAGMA mmap_size = 268435456;
```
### Network Configuration
```bash
# RPC service
Port: 8006
Protocol: HTTP/HTTPS
TLS: Optional (production)
# P2P service
Port: 7070
Protocol: TCP
Encryption: Optional
# Gossip network
Backend: Redis
Host: 10.1.223.40:6379
Encryption: Optional
```
## Verification Commands
### Basic Health Checks
```bash
# Check service status
systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service
ssh aitbc1 'systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service'
# Check blockchain health
curl -s http://localhost:8006/health | jq .
ssh aitbc1 'curl -s http://localhost:8006/health | jq .'
# Check blockchain height
curl -s http://localhost:8006/rpc/head | jq .height
ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height'
# Verify sync status
GENESIS_HEIGHT=$(curl -s http://localhost:8006/rpc/head | jq .height)
FOLLOWER_HEIGHT=$(ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height)
echo "Height difference: $((FOLLOWER_HEIGHT - GENESIS_HEIGHT))"
```
### Wallet Verification
```bash
# List all wallets
cd /opt/aitbc && source venv/bin/activate
./aitbc-cli list
# Check specific wallet balance
./aitbc-cli balance --name genesis-ops
./aitbc-cli balance --name follower-ops
# Verify wallet addresses
./aitbc-cli list | grep -E "(genesis-ops|follower-ops)"
# Test wallet operations
./aitbc-cli send --from genesis-ops --to follower-ops --amount 10 --password 123
```
### Network Verification
```bash
# Test connectivity
ping -c 3 aitbc1
ssh aitbc1 'ping -c 3 localhost'
# Test RPC endpoints
curl -s http://localhost:8006/rpc/head > /dev/null && echo "Local RPC OK"
ssh aitbc1 'curl -s http://localhost:8006/rpc/head > /dev/null && echo "Remote RPC OK"'
# Test P2P connectivity
telnet aitbc1 7070
# Check network latency
ping -c 5 aitbc1 | tail -1
```
### AI Operations Verification
```bash
# Check AI services
./aitbc-cli marketplace --action list
# Test AI job submission
./aitbc-cli ai-submit --wallet genesis-ops --type inference --prompt "test" --payment 10
# Verify resource allocation
./aitbc-cli resource status
# Check AI job status
./aitbc-cli ai-status --job-id "latest"
```
### Smart Contract Verification
```bash
# Check contract deployment
./aitbc-cli contract list
# Test messaging system
curl -X POST http://localhost:8006/rpc/messaging/topics/create \
-H "Content-Type: application/json" \
-d '{"agent_id": "test", "agent_address": "address", "title": "Test", "description": "Test"}'
# Verify contract state
./aitbc-cli contract state --name "AgentMessagingContract"
```
## System Overview
### Architecture Components
```
┌─────────────────┐ ┌─────────────────┐
│ Genesis Node │ │ Follower Node │
│ (aitbc) │ │ (aitbc1) │
├─────────────────┤ ├─────────────────┤
│ Blockchain Node │ │ Blockchain Node │
│ RPC Service │ │ RPC Service │
│ Keystore │ │ Keystore │
│ Database │ │ Database │
└─────────────────┘ └─────────────────┘
│ │
└───────────────────────┘
P2P Network
│ │
└───────────────────────┘
Gossip Network
┌─────────┐
│ Redis │
└─────────┘
```
### Data Flow
```
CLI Command → RPC Service → Blockchain Node → Database
Smart Contract → Blockchain State
Gossip Network → Other Nodes
```
### Service Dependencies
```
aitbc-blockchain-rpc.service
↓ depends on
aitbc-blockchain-node.service
↓ depends on
Redis Service (for gossip)
```
## Success Metrics
### Blockchain Metrics
| Metric | Target | Acceptable Range | Critical |
|---|---|---|---|
| Block Height Sync | Equal | ±1 block | >5 blocks |
| Block Production Rate | 1 block/10s | 5-15s/block | >30s/block |
| Transaction Confirmation | <10s | <30s | >60s |
| Network Latency | <10ms | <50ms | >100ms |
### System Metrics
| Metric | Target | Acceptable Range | Critical |
|---|---|---|---|
| CPU Usage | <50% | 50-80% | >90% |
| Memory Usage | <70% | 70-85% | >95% |
| Disk Usage | <80% | 80-90% | >95% |
| Network I/O | <70% | 70-85% | >95% |
### Service Metrics
| Metric | Target | Acceptable Range | Critical |
|---|---|---|---|
| Service Uptime | 99.9% | 99-99.5% | <95% |
| RPC Response Time | <100ms | 100-500ms | >1s |
| Error Rate | <1% | 1-5% | >10% |
| Failed Transactions | <0.5% | 0.5-2% | >5% |
### AI Operations Metrics
| Metric | Target | Acceptable Range | Critical |
|---|---|---|---|
| Job Success Rate | >95% | 90-95% | <90% |
| Job Completion Time | <5min | 5-15min | >30min |
| GPU Utilization | >70% | 50-70% | <50% |
| Marketplace Volume | Growing | Stable | Declining |
## Quick Reference Commands
### Daily Operations
```bash
# Quick health check
./aitbc-cli chain && ./aitbc-cli network
# Service status
systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service
# Cross-node sync check
curl -s http://localhost:8006/rpc/head | jq .height && ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height'
# Wallet balance check
./aitbc-cli balance --name genesis-ops
```
### Troubleshooting
```bash
# Check logs
sudo journalctl -u aitbc-blockchain-node.service -f
sudo journalctl -u aitbc-blockchain-rpc.service -f
# Restart services
sudo systemctl restart aitbc-blockchain-node.service aitbc-blockchain-rpc.service
# Check database integrity
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "PRAGMA integrity_check;"
# Verify network connectivity
ping -c 3 aitbc1 && ssh aitbc1 'ping -c 3 localhost'
```
### Performance Monitoring
```bash
# System resources
top -p $(pgrep aitbc-blockchain)
free -h
df -h /var/lib/aitbc
# Blockchain performance
./aitbc-cli analytics --period "1h"
# Network performance
iftop -i eth0
```
## Best Practices
### Security Best Practices
```bash
# Regular security updates
sudo apt update && sudo apt upgrade -y
# Monitor access logs
sudo grep "Failed password" /var/log/auth.log | tail -10
# Use strong passwords for wallets
echo "Use passwords with: minimum 12 characters, mixed case, numbers, symbols"
# Regular backups
sudo cp /var/lib/aitbc/data/ait-mainnet/chain.db /var/backups/aitbc/chain-$(date +%Y%m%d).db
```
### Performance Best Practices
```bash
# Regular database maintenance
sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "VACUUM; ANALYZE;"
# Monitor resource usage
watch -n 30 'free -h && df -h /var/lib/aitbc'
# Optimize system parameters
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
```
### Operational Best Practices
```bash
# Use session IDs for agent workflows
SESSION_ID="task-$(date +%s)"
openclaw agent --agent main --session-id $SESSION_ID --message "Task description"
# Always verify transactions
./aitbc-cli transactions --name wallet-name --limit 5
# Monitor cross-node synchronization
watch -n 10 'curl -s http://localhost:8006/rpc/head | jq .height && ssh aitbc1 "curl -s http://localhost:8006/rpc/head | jq .height"'
```
### Development Best Practices
```bash
# Test in development environment first
./aitbc-cli send --from test-wallet --to test-wallet --amount 1 --password test
# Use meaningful wallet names
./aitbc-cli create --name "genesis-operations" --password "strong_password"
# Document all configuration changes
git add /etc/aitbc/.env
git commit -m "Update configuration: description of changes"
```
## Troubleshooting Guide
### Common Issues and Solutions
#### Service Issues
**Problem**: Services won't start
```bash
# Check configuration
sudo journalctl -u aitbc-blockchain-node.service -n 50
# Check permissions
ls -la /var/lib/aitbc/
sudo chown -R aitbc:aitbc /var/lib/aitbc
# Check dependencies
systemctl status redis
```
#### Network Issues
**Problem**: Nodes can't communicate
```bash
# Check network connectivity
ping -c 3 aitbc1
ssh aitbc1 'ping -c 3 localhost'
# Check firewall
sudo ufw status
sudo ufw allow 8006/tcp
sudo ufw allow 7070/tcp
# Check port availability
netstat -tlnp | grep -E "(8006|7070)"
```
#### Blockchain Issues
**Problem**: Nodes out of sync
```bash
# Check heights
curl -s http://localhost:8006/rpc/head | jq .height
ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height'
# Check gossip status
redis-cli ping
redis-cli info replication
# Restart services if needed
sudo systemctl restart aitbc-blockchain-node.service
```
#### Wallet Issues
**Problem**: Wallet balance incorrect
```bash
# Check correct node
./aitbc-cli balance --name wallet-name
ssh aitbc1 './aitbc-cli balance --name wallet-name'
# Verify wallet address
./aitbc-cli list | grep "wallet-name"
# Check transaction history
./aitbc-cli transactions --name wallet-name --limit 10
```
#### AI Operations Issues
**Problem**: AI jobs not processing
```bash
# Check AI services
./aitbc-cli marketplace --action list
# Check resource allocation
./aitbc-cli resource status
# Check job status
./aitbc-cli ai-status --job-id "job_id"
# Verify wallet balance
./aitbc-cli balance --name wallet-name
```
### Emergency Procedures
#### Service Recovery
```bash
# Emergency service restart
sudo systemctl stop aitbc-blockchain-node.service aitbc-blockchain-rpc.service
sudo systemctl start aitbc-blockchain-node.service aitbc-blockchain-rpc.service
# Database recovery
sudo systemctl stop aitbc-blockchain-node.service
sudo cp /var/backups/aitbc/chain-backup.db /var/lib/aitbc/data/ait-mainnet/chain.db
sudo systemctl start aitbc-blockchain-node.service
```
#### Network Recovery
```bash
# Reset network configuration
sudo systemctl restart networking
sudo ip addr flush
sudo systemctl restart aitbc-blockchain-node.service
# Re-establish P2P connections
sudo systemctl restart aitbc-blockchain-node.service
sleep 10
sudo systemctl restart aitbc-blockchain-rpc.service
```
## Dependencies
This reference module provides information for all other modules:
- **[Core Setup Module](multi-node-blockchain-setup-core.md)** - Basic setup verification
- **[Operations Module](multi-node-blockchain-operations.md)** - Daily operations reference
- **[Advanced Features Module](multi-node-blockchain-advanced.md)** - Advanced operations reference
- **[Production Module](multi-node-blockchain-production.md)** - Production deployment reference
- **[Marketplace Module](multi-node-blockchain-marketplace.md)** - Marketplace operations reference
## Documentation Maintenance
### Updating This Reference
1. Update configuration examples when new parameters are added
2. Add new verification commands for new features
3. Update success metrics based on production experience
4. Add new troubleshooting solutions for discovered issues
5. Update best practices based on operational experience
### Version Control
```bash
# Track documentation changes
git add .windsurf/workflows/multi-node-blockchain-reference.md
git commit -m "Update reference documentation: description of changes"
git tag -a "v1.1" -m "Reference documentation v1.1"
```
This reference module serves as the central hub for all multi-node blockchain setup operations and should be kept up-to-date with the latest system capabilities and operational procedures.

View File

@@ -0,0 +1,182 @@
---
description: Core multi-node blockchain setup - prerequisites, environment, and basic node configuration
title: Multi-Node Blockchain Setup - Core Module
version: 1.0
---
# Multi-Node Blockchain Setup - Core Module
This module covers the essential setup steps for a two-node AITBC blockchain network (aitbc as genesis authority, aitbc1 as follower node).
## Prerequisites
- SSH access to both nodes (aitbc1 and aitbc)
- Both nodes have the AITBC repository cloned
- Redis available for cross-node gossip
- Python venv at `/opt/aitbc/venv`
- AITBC CLI tool available (aliased as `aitbc`)
- CLI tool configured to use `/etc/aitbc/.env` by default
## Pre-Flight Setup
Before running the workflow, ensure the following setup is complete:
```bash
# Run the pre-flight setup script
/opt/aitbc/scripts/workflow/01_preflight_setup.sh
```
## Directory Structure
- `/opt/aitbc/venv` - Central Python virtual environment
- `/opt/aitbc/requirements.txt` - Python dependencies (includes CLI dependencies)
- `/etc/aitbc/.env` - Central environment configuration
- `/var/lib/aitbc/data` - Blockchain database files
- `/var/lib/aitbc/keystore` - Wallet credentials
- `/var/log/aitbc/` - Service logs
## Environment Configuration
The workflow uses the single central `/etc/aitbc/.env` file as the configuration for both nodes:
- **Base Configuration**: The central config contains all default settings
- **Node-Specific Adaptation**: Each node adapts the config for its role (genesis vs follower)
- **Path Updates**: Paths are updated to use the standardized directory structure
- **Backup Strategy**: Original config is backed up before modifications
- **Standard Location**: Config moved to `/etc/aitbc/` following system standards
- **CLI Integration**: AITBC CLI tool uses this config file by default
## 🚨 Important: Genesis Block Architecture
**CRITICAL**: Only the genesis authority node (aitbc) should have the genesis block!
```bash
# ❌ WRONG - Do NOT copy genesis block to follower nodes
# scp aitbc:/var/lib/aitbc/data/ait-mainnet/genesis.json aitbc1:/var/lib/aitbc/data/ait-mainnet/
# ✅ CORRECT - Follower nodes sync genesis via blockchain protocol
# aitbc1 will automatically receive genesis block from aitbc during sync
```
**Architecture Overview:**
1. **aitbc (Genesis Authority/Primary Development Server)**: Creates genesis block with initial wallets
2. **aitbc1 (Follower Node)**: Syncs from aitbc, receives genesis block automatically
3. **Wallet Creation**: New wallets attach to existing blockchain using genesis keys
4. **Access AIT Coins**: Genesis wallets control initial supply, new wallets receive via transactions
**Key Principles:**
- **Single Genesis Source**: Only aitbc creates and holds the original genesis block
- **Blockchain Sync**: Followers receive blockchain data through sync protocol, not file copying
- **Wallet Attachment**: New wallets attach to existing chain, don't create new genesis
- **Coin Access**: AIT coins are accessed through transactions from genesis wallets
## Core Setup Steps
### 1. Prepare aitbc (Genesis Authority/Primary Development Server)
```bash
# Run the genesis authority setup script
/opt/aitbc/scripts/workflow/02_genesis_authority_setup.sh
```
### 2. Verify aitbc Genesis State
```bash
# Check blockchain state
curl -s http://localhost:8006/rpc/head | jq .
curl -s http://localhost:8006/rpc/info | jq .
curl -s http://localhost:8006/rpc/supply | jq .
# Check genesis wallet balance
GENESIS_ADDR=$(cat /var/lib/aitbc/keystore/aitbcgenesis.json | jq -r '.address')
curl -s "http://localhost:8006/rpc/getBalance/$GENESIS_ADDR" | jq .
```
### 3. Prepare aitbc1 (Follower Node)
```bash
# Run the follower node setup script (executed on aitbc1)
ssh aitbc1 '/opt/aitbc/scripts/workflow/03_follower_node_setup.sh'
```
### 4. Watch Blockchain Sync
```bash
# Monitor sync progress on both nodes
watch -n 5 'echo "=== Genesis Node ===" && curl -s http://localhost:8006/rpc/head | jq .height && echo "=== Follower Node ===" && ssh aitbc1 "curl -s http://localhost:8006/rpc/head | jq .height"'
```
### 5. Basic Wallet Operations
```bash
# Create wallets on genesis node
cd /opt/aitbc && source venv/bin/activate
# Create genesis operations wallet
./aitbc-cli create --name genesis-ops --password 123
# Create user wallet
./aitbc-cli create --name user-wallet --password 123
# List wallets
./aitbc-cli list
# Check balances
./aitbc-cli balance --name genesis-ops
./aitbc-cli balance --name user-wallet
```
### 6. Cross-Node Transaction Test
```bash
# Get follower node wallet address
FOLLOWER_WALLET_ADDR=$(ssh aitbc1 'cd /opt/aitbc && source venv/bin/activate && ./aitbc-cli create --name follower-ops --password 123 | grep "Address:" | cut -d" " -f2')
# Send transaction from genesis to follower
./aitbc-cli send --from genesis-ops --to $FOLLOWER_WALLET_ADDR --amount 1000 --password 123
# Verify transaction on follower node
ssh aitbc1 'cd /opt/aitbc && source venv/bin/activate && ./aitbc-cli balance --name follower-ops'
```
## Verification Commands
```bash
# Check both nodes are running
systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service
ssh aitbc1 'systemctl status aitbc-blockchain-node.service aitbc-blockchain-rpc.service'
# Check blockchain heights match
curl -s http://localhost:8006/rpc/head | jq .height
ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height'
# Check network connectivity
ping -c 3 aitbc1
ssh aitbc1 'ping -c 3 localhost'
# Verify wallet creation
./aitbc-cli list
ssh aitbc1 'cd /opt/aitbc && source venv/bin/activate && ./aitbc-cli list'
```
## Troubleshooting Core Setup
| Problem | Root Cause | Fix |
|---|---|---|
| Services not starting | Environment not configured | Run pre-flight setup script |
| Genesis block not found | Incorrect data directory | Check `/var/lib/aitbc/data/ait-mainnet/` |
| Wallet creation fails | Keystore permissions | Fix `/var/lib/aitbc/keystore/` permissions |
| Cross-node transaction fails | Network connectivity | Verify SSH and RPC connectivity |
| Height mismatch | Sync not working | Check Redis gossip configuration |
## Next Steps
After completing this core setup module, proceed to:
1. **[Operations Module](multi-node-blockchain-operations.md)** - Daily operations and monitoring
2. **[Advanced Features Module](multi-node-blockchain-advanced.md)** - Smart contracts and security testing
3. **[Production Module](multi-node-blockchain-production.md)** - Production deployment and scaling
## Dependencies
This core module is required for all other modules. Complete this setup before proceeding to advanced features.

View File

@@ -0,0 +1,244 @@
---
description: Multi-node blockchain deployment workflow executed by OpenClaw agents using optimized scripts
title: OpenClaw Multi-Node Blockchain Deployment
version: 4.1
---
# OpenClaw Multi-Node Blockchain Deployment Workflow
Two-node AITBC blockchain setup: **aitbc** (genesis authority) + **aitbc1** (follower node).
Coordinated by OpenClaw agents with AI operations, advanced coordination, and genesis reset capabilities.
## 🆕 What's New in v4.1
- **AI Operations Integration**: Complete AI job submission, resource allocation, marketplace participation
- **Advanced Coordination**: Cross-node agent communication via smart contract messaging
- **Genesis Reset Support**: Fresh blockchain creation from scratch with funded wallets
- **Poetry Build System**: Fixed Python package management with modern pyproject.toml format
- **Enhanced CLI**: All 26+ commands verified working with correct syntax
- **Real-time Monitoring**: dev_heartbeat.py for comprehensive health checks
- **Cross-Node Transactions**: Bidirectional AIT transfers between nodes
- **Governance System**: On-chain proposal creation and voting
## Critical CLI Syntax
```bash
# OpenClaw — ALWAYS use --message (long form). -m does NOT work.
openclaw agent --agent main --message "task description" --thinking medium
# Session-based (maintains context across calls)
SESSION_ID="deploy-$(date +%s)"
openclaw agent --agent main --session-id $SESSION_ID --message "Initialize deployment" --thinking low
openclaw agent --agent main --session-id $SESSION_ID --message "Report progress" --thinking medium
# AITBC CLI — always from /opt/aitbc with venv
cd /opt/aitbc && source venv/bin/activate
./aitbc-cli create --name wallet-name
./aitbc-cli list
./aitbc-cli balance --name wallet-name
./aitbc-cli send --from wallet1 --to address --amount 100 --password pass
./aitbc-cli chain
./aitbc-cli network
# AI Operations (NEW)
./aitbc-cli ai-submit --wallet wallet --type inference --prompt "Generate image" --payment 100
./aitbc-cli agent create --name ai-agent --description "AI agent"
./aitbc-cli resource allocate --agent-id ai-agent --gpu 1 --memory 8192 --duration 3600
./aitbc-cli marketplace --action create --name "AI Service" --price 50 --wallet wallet
# Cross-node — always activate venv on remote
ssh aitbc1 'cd /opt/aitbc && source venv/bin/activate && ./aitbc-cli list'
# RPC checks
curl -s http://localhost:8006/rpc/head | jq '.height'
ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height'
# Smart Contract Messaging (NEW)
curl -X POST http://localhost:8006/rpc/messaging/topics/create \
-H "Content-Type: application/json" \
-d '{"agent_id": "agent", "agent_address": "address", "title": "Topic", "description": "Description"}'
# Health Monitoring
python3 /tmp/aitbc1_heartbeat.py
```
## Standardized Paths
| Resource | Path |
|---|---|
| Blockchain data | `/var/lib/aitbc/data/ait-mainnet/` |
| Keystore | `/var/lib/aitbc/keystore/` |
| Central env config | `/etc/aitbc/.env` |
| Workflow scripts | `/opt/aitbc/scripts/workflow-openclaw/` |
| Documentation | `/opt/aitbc/docs/openclaw/` |
| Logs | `/var/log/aitbc/` |
> All databases go in `/var/lib/aitbc/data/`, NOT in app directories.
## Quick Start
### Full Deployment (Recommended)
```bash
# 1. Complete orchestrated workflow
/opt/aitbc/scripts/workflow-openclaw/05_complete_workflow_openclaw.sh
# 2. Verify both nodes
curl -s http://localhost:8006/rpc/head | jq '.height'
ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height'
# 3. Agent analysis of deployment
openclaw agent --agent main --message "Analyze multi-node blockchain deployment status" --thinking high
```
### Phase-by-Phase Execution
```bash
# Phase 1: Pre-flight (tested, working)
/opt/aitbc/scripts/workflow-openclaw/01_preflight_setup_openclaw_simple.sh
# Phase 2: Genesis authority setup
/opt/aitbc/scripts/workflow-openclaw/02_genesis_authority_setup_openclaw.sh
# Phase 3: Follower node setup
/opt/aitbc/scripts/workflow-openclaw/03_follower_node_setup_openclaw.sh
# Phase 4: Wallet operations (tested, working)
/opt/aitbc/scripts/workflow-openclaw/04_wallet_operations_openclaw_corrected.sh
# Phase 5: Smart contract messaging training
/opt/aitbc/scripts/workflow-openclaw/train_agent_messaging.sh
```
## Available Scripts
```
/opt/aitbc/scripts/workflow-openclaw/
├── 01_preflight_setup_openclaw_simple.sh # Pre-flight (tested)
├── 01_preflight_setup_openclaw_corrected.sh # Pre-flight (corrected)
├── 02_genesis_authority_setup_openclaw.sh # Genesis authority
├── 03_follower_node_setup_openclaw.sh # Follower node
├── 04_wallet_operations_openclaw_corrected.sh # Wallet ops (tested)
├── 05_complete_workflow_openclaw.sh # Full orchestration
├── fix_agent_communication.sh # Agent comm fix
├── train_agent_messaging.sh # SC messaging training
└── implement_agent_messaging.sh # Advanced messaging
```
## Workflow Phases
### Phase 1: Pre-Flight Setup
- Verify OpenClaw gateway running
- Check blockchain services on both nodes
- Validate SSH connectivity to aitbc1
- Confirm data directories at `/var/lib/aitbc/data/ait-mainnet/`
- Initialize OpenClaw agent session
### Phase 2: Genesis Authority Setup
- Configure genesis node environment
- Create genesis block with initial wallets
- Start `aitbc-blockchain-node.service` and `aitbc-blockchain-rpc.service`
- Verify RPC responds on port 8006
- Create genesis wallets
### Phase 3: Follower Node Setup
- SSH to aitbc1, configure environment
- Copy genesis config and start services
- Monitor blockchain synchronization
- Verify follower reaches genesis height
- Confirm P2P connectivity on port 7070
### Phase 4: Wallet Operations
- Create wallets on both nodes
- Fund wallets from genesis authority
- Execute cross-node transactions
- Verify balances propagate
> **Note**: Query wallet balances on the node where the wallet was created.
### Phase 5: Smart Contract Messaging
- Train agents on `AgentMessagingContract`
- Create forum topics for coordination
- Demonstrate cross-node agent communication
- Establish reputation-based interactions
## Multi-Node Architecture
| Node | Role | IP | RPC | P2P |
|---|---|---|---|---|
| aitbc | Genesis authority | 10.1.223.93 | :8006 | :7070 |
| aitbc1 | Follower node | 10.1.223.40 | :8006 | :7070 |
### Wallets
| Node | Wallets |
|---|---|
| aitbc | client-wallet, user-wallet |
| aitbc1 | miner-wallet, aitbc1genesis, aitbc1treasury |
## Service Management
```bash
# Both nodes — services MUST use venv Python
sudo systemctl start aitbc-blockchain-node.service
sudo systemctl start aitbc-blockchain-rpc.service
# Key service config requirements:
# ExecStart=/opt/aitbc/venv/bin/python -m ...
# Environment=AITBC_DATA_DIR=/var/lib/aitbc/data
# Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src
# EnvironmentFile=/etc/aitbc/.env
```
## Smart Contract Messaging
AITBC's `AgentMessagingContract` enables on-chain agent communication:
- **Message types**: post, reply, announcement, question, answer
- **Forum topics**: Threaded discussions for coordination
- **Reputation system**: Trust levels 1-5
- **Moderation**: Hide, delete, pin messages
- **Cross-node routing**: Messages propagate between nodes
```bash
# Train agents on messaging
openclaw agent --agent main --message "Teach me AITBC Agent Messaging Contract for cross-node communication" --thinking high
```
## Troubleshooting
| Problem | Root Cause | Fix |
|---|---|---|
| `--message not specified` | Using `-m` short form | Use `--message` (long form) |
| Agent needs session context | Missing `--session-id` | Add `--session-id $SESSION_ID` |
| `Connection refused :8006` | RPC service down | `sudo systemctl start aitbc-blockchain-rpc.service` |
| `No module 'eth_account'` | System Python vs venv | Fix `ExecStart` to `/opt/aitbc/venv/bin/python` |
| DB in app directory | Hardcoded relative path | Use env var defaulting to `/var/lib/aitbc/data/` |
| Wallet balance 0 on wrong node | Querying wrong node | Query on the node where wallet was created |
| Height mismatch | Wrong data dir | Both nodes: `/var/lib/aitbc/data/ait-mainnet/` |
## Verification Commands
```bash
# Blockchain height (both nodes)
curl -s http://localhost:8006/rpc/head | jq '.height'
ssh aitbc1 'curl -s http://localhost:8006/rpc/head | jq .height'
# Wallets
cd /opt/aitbc && source venv/bin/activate && ./aitbc-cli list
ssh aitbc1 'cd /opt/aitbc && source venv/bin/activate && ./aitbc-cli list'
# Services
systemctl is-active aitbc-blockchain-{node,rpc}.service
ssh aitbc1 'systemctl is-active aitbc-blockchain-{node,rpc}.service'
# Agent health check
openclaw agent --agent main --message "Report multi-node blockchain health" --thinking medium
# Integration test
/opt/aitbc/.windsurf/skills/openclaw-aitbc/setup.sh test
```
## Documentation
Reports and guides are in `/opt/aitbc/docs/openclaw/`:
- `guides/` — Implementation and fix guides
- `reports/` — Deployment and analysis reports
- `training/` — Agent training materials

View File

@@ -1,103 +1,108 @@
---
description: Multi-node blockchain deployment and setup workflow
description: DEPRECATED - Use modular workflows instead. See MULTI_NODE_MASTER_INDEX.md for navigation.
title: Multi-Node Blockchain Deployment Workflow (DEPRECATED)
---
# Multi-Node Blockchain Deployment Workflow
# Multi-Node Blockchain Deployment Workflow (DEPRECATED)
This workflow sets up a two-node AITBC blockchain network (aitbc as genesis authority/primary development server, aitbc1 as follower node), creates wallets, and demonstrates cross-node transactions.
⚠️ **This workflow has been split into focused modules for better maintainability and usability.**
## Prerequisites
## 🆕 New Modular Structure
- SSH access to both nodes (aitbc1 and aitbc)
- Both nodes have the AITBC repository cloned
- Redis available for cross-node gossip
- Python venv at `/opt/aitbc/venv`
- AITBC CLI tool available (aliased as `aitbc`)
- CLI tool configured to use `/etc/aitbc/blockchain.env` by default
See **[MULTI_NODE_MASTER_INDEX.md](MULTI_NODE_MASTER_INDEX.md)** for complete navigation to the new modular workflows.
## Pre-Flight Setup
### New Modules Available
Before running the workflow, ensure the following setup is complete:
1. **[Core Setup Module](multi-node-blockchain-setup-core.md)** - Essential setup steps
2. **[Operations Module](multi-node-blockchain-operations.md)** - Daily operations and monitoring
3. **[Advanced Features Module](multi-node-blockchain-advanced.md)** - Smart contracts and security testing
4. **[Production Module](multi-node-blockchain-production.md)** - Production deployment and scaling
5. **[Marketplace Module](multi-node-blockchain-marketplace.md)** - Marketplace testing and AI operations
6. **[Reference Module](multi-node-blockchain-reference.md)** - Configuration reference and verification
### Why the Split?
The original 64KB monolithic workflow (2,098 lines) was difficult to:
- Navigate and find relevant sections
- Maintain and update specific areas
- Load and edit efficiently
- Focus on specific use cases
### Benefits of Modular Structure
**Improved Maintainability** - Each module focuses on specific functionality
**Enhanced Usability** - Users can load only needed modules
**Better Documentation** - Each module has focused troubleshooting guides
**Clear Dependencies** - Explicit module relationships
**Better Searchability** - Find relevant information faster
### Migration Guide
**For New Users**: Start with [MULTI_NODE_MASTER_INDEX.md](MULTI_NODE_MASTER_INDEX.md)
**For Existing Users**:
- Basic setup → [Core Setup Module](multi-node-blockchain-setup-core.md)
- Daily operations → [Operations Module](multi-node-blockchain-operations.md)
- Advanced features → [Advanced Features Module](multi-node-blockchain-advanced.md)
- Production deployment → [Production Module](multi-node-blockchain-production.md)
- AI operations → [Marketplace Module](multi-node-blockchain-marketplace.md)
- Reference material → [Reference Module](multi-node-blockchain-reference.md)
### Quick Start with New Structure
```bash
# Run the pre-flight setup script
/opt/aitbc/scripts/workflow/01_preflight_setup.sh
# Core setup (replaces first 50 sections of old workflow)
/opt/aitbc/.windsurf/workflows/multi-node-blockchain-setup-core.md
# Daily operations (replaces operations sections)
/opt/aitbc/.windsurf/workflows/multi-node-blockchain-operations.md
# Advanced features (replaces advanced sections)
/opt/aitbc/.windsurf/workflows/multi-node-blockchain-advanced.md
```
## Directory Structure
---
- `/opt/aitbc/venv` - Central Python virtual environment
- `/opt/aitbc/requirements.txt` - Python dependencies (includes CLI dependencies)
- `/etc/aitbc/.env` - Central environment configuration
- `/var/lib/aitbc/data` - Blockchain database files
- `/var/lib/aitbc/keystore` - Wallet credentials
- `/var/log/aitbc/` - Service logs
## Legacy Content (Preserved for Reference)
## Steps
The following content is preserved for reference but should be accessed through the new modular workflows.
### Environment Configuration
### Quick Links to New Modules
The workflow uses the single central `/etc/aitbc/.env` file as the configuration for both nodes:
| Task | Old Section | New Module |
|---|---|---|
| Basic Setup | Sections 1-50 | [Core Setup](multi-node-blockchain-setup-core.md) |
| Environment Config | Sections 51-100 | [Core Setup](multi-node-blockchain-setup-core.md) |
| Daily Operations | Sections 101-300 | [Operations](multi-node-blockchain-operations.md) |
| Advanced Features | Sections 301-600 | [Advanced Features](multi-node-blockchain-advanced.md) |
| Production | Sections 601-800 | [Production](multi-node-blockchain-production.md) |
| Marketplace | Sections 801-1000 | [Marketplace](multi-node-blockchain-marketplace.md) |
| Reference | Sections 1001-164 | [Reference](multi-node-blockchain-reference.md) |
- **Base Configuration**: The central config contains all default settings
- **Node-Specific Adaptation**: Each node adapts the config for its role (genesis vs follower)
- **Path Updates**: Paths are updated to use the standardized directory structure
- **Backup Strategy**: Original config is backed up before modifications
- **Standard Location**: Config moved to `/etc/aitbc/` following system standards
- **CLI Integration**: AITBC CLI tool uses this config file by default
### Legacy Content Summary
### 🚨 Important: Genesis Block Architecture
This workflow previously covered:
- Prerequisites and pre-flight setup (now in Core Setup)
- Environment configuration (now in Core Setup)
- Genesis block architecture (now in Core Setup)
- Basic node setup (now in Core Setup)
- Daily operations (now in Operations)
- Service management (now in Operations)
- Monitoring and troubleshooting (now in Operations)
- Advanced features (now in Advanced Features)
- Smart contracts (now in Advanced Features)
- Security testing (now in Advanced Features)
- Production deployment (now in Production)
- Scaling strategies (now in Production)
- Marketplace operations (now in Marketplace)
- AI operations (now in Marketplace)
- Reference material (now in Reference)
**CRITICAL**: Only the genesis authority node (aitbc) should have the genesis block!
---
```bash
# ❌ WRONG - Do NOT copy genesis block to follower nodes
# scp aitbc:/var/lib/aitbc/data/ait-mainnet/genesis.json aitbc1:/var/lib/aitbc/data/ait-mainnet/
**Recommendation**: Use the new modular workflows for all new development. This legacy workflow is maintained for backward compatibility but will be deprecated in future versions.
# ✅ CORRECT - Follower nodes sync genesis via blockchain protocol
# aitbc1 will automatically receive genesis block from aitbc during sync
```
**Architecture Overview:**
1. **aitbc (Genesis Authority/Primary Development Server)**: Creates genesis block with initial wallets
2. **aitbc1 (Follower Node)**: Syncs from aitbc, receives genesis block automatically
3. **Wallet Creation**: New wallets attach to existing blockchain using genesis keys
4. **Access AIT Coins**: Genesis wallets control initial supply, new wallets receive via transactions
**Key Principles:**
- **Single Genesis Source**: Only aitbc creates and holds the original genesis block
- **Blockchain Sync**: Followers receive blockchain data through sync protocol, not file copying
- **Wallet Attachment**: New wallets attach to existing chain, don't create new genesis
- **Coin Access**: AIT coins are accessed through transactions from genesis wallets
### 1. Prepare aitbc (Genesis Authority/Primary Development Server)
```bash
# Run the genesis authority setup script
/opt/aitbc/scripts/workflow/02_genesis_authority_setup.sh
```
### 2. Verify aitbc Genesis State
```bash
# Check blockchain state
curl -s http://localhost:8006/rpc/head | jq .
curl -s http://localhost:8006/rpc/info | jq .
curl -s http://localhost:8006/rpc/supply | jq .
# Check genesis wallet balance
GENESIS_ADDR=$(cat /var/lib/aitbc/keystore/aitbcgenesis.json | jq -r '.address')
curl -s "http://localhost:8006/rpc/getBalance/$GENESIS_ADDR" | jq .
```
### 3. Prepare aitbc1 (Follower Node)
```bash
# Run the follower node setup script (executed on aitbc1)
ssh aitbc1 '/opt/aitbc/scripts/workflow/03_follower_node_setup.sh'
```
### 4. Watch Blockchain Sync
For the most up-to-date information and best organization, see **[MULTI_NODE_MASTER_INDEX.md](MULTI_NODE_MASTER_INDEX.md)**.
```bash
# On aitbc, monitor sync progress

View File

@@ -0,0 +1,136 @@
---
description: Complete Ollama GPU provider test workflow from client submission to blockchain recording
---
# Ollama GPU Provider Test Workflow
This workflow executes the complete end-to-end test for Ollama GPU inference jobs, including payment processing and blockchain transaction recording.
## Prerequisites
// turbo
- Ensure all services are running: coordinator, GPU miner, Ollama, blockchain node
- Verify home directory wallets are configured
- Install the enhanced CLI with multi-wallet support
## Steps
### 1. Environment Check
```bash
# Check service health
./scripts/aitbc-cli.sh health
curl -s http://localhost:11434/api/tags
systemctl is-active aitbc-host-gpu-miner.service
# Verify CLI installation
aitbc --help
aitbc wallet --help
```
### 2. Setup Test Wallets
```bash
# Create test wallets if needed
aitbc wallet create test-client --type simple
aitbc wallet create test-miner --type simple
# Switch to test client wallet
aitbc wallet switch test-client
aitbc wallet info
```
### 3. Run Complete Test
```bash
# Execute the full workflow test
cd /home/oib/windsurf/aitbc/home
python3 test_ollama_blockchain.py
```
### 4. Verify Results
The test will display:
- Initial wallet balances
- Job submission and ID
- Real-time job progress
- Inference result from Ollama
- Receipt details with pricing
- Payment confirmation
- Final wallet balances
- Blockchain transaction status
### 5. Manual Verification (Optional)
```bash
# Check recent receipts using CLI
aitbc marketplace receipts list --limit 3
# Or via API
curl -H "X-Api-Key: client_dev_key_1" \
http://127.0.0.1:18000/v1/explorer/receipts?limit=3
# Verify blockchain transaction
curl -s http://aitbc.keisanki.net/rpc/transactions | \
python3 -c "import sys, json; data=json.load(sys.stdin); \
[print(f\"TX: {t['tx_hash']} - Block: {t['block_height']}\") \
for t in data.get('transactions', [])[-5:]]"
```
## Expected Output
```
🚀 Ollama GPU Provider Test with Home Directory Users
============================================================
💰 Initial Wallet Balances:
----------------------------------------
Client: 9365.0 AITBC
Miner: 1525.0 AITBC
📤 Submitting Inference Job:
----------------------------------------
Prompt: What is the capital of France?
Model: llama3.2:latest
✅ Job submitted: <job_id>
⏳ Monitoring Job Progress:
----------------------------------------
State: QUEUED
State: RUNNING
State: COMPLETED
📊 Job Result:
----------------------------------------
Output: The capital of France is Paris.
🧾 Receipt Information:
Receipt ID: <receipt_id>
Provider: miner_dev_key_1
Units: <gpu_seconds> gpu_seconds
Unit Price: 0.02 AITBC
Total Price: <price> AITBC
⛓️ Checking Blockchain:
----------------------------------------
✅ Transaction found on blockchain!
TX Hash: <tx_hash>
Block: <block_height>
💰 Final Wallet Balances:
----------------------------------------
Client: <new_balance> AITBC
Miner: <new_balance> AITBC
✅ Test completed successfully!
```
## Troubleshooting
If the test fails:
1. Check GPU miner service status
2. Verify Ollama is running
3. Ensure coordinator API is accessible
4. Check wallet configurations
5. Verify blockchain node connectivity
6. Ensure CLI is properly installed with `pip install -e .`
## Related Skills
- ollama-gpu-provider - Detailed test documentation
- blockchain-operations - Blockchain node management

385
.windsurf/workflows/test.md Executable file
View File

@@ -0,0 +1,385 @@
---
description: Test and debug workflow for AITBC platform
title: AITBC Testing and Debugging Workflow
version: 2.0
auto_execution_mode: 3
---
# AITBC Testing and Debugging Workflow
This workflow helps you run tests and debug issues in the AITBC platform using the current consolidated project structure.
## Prerequisites
### Required Setup
- Working directory: `/opt/aitbc`
- Virtual environment: `/opt/aitbc/venv`
- CLI wrapper: `/opt/aitbc/aitbc-cli`
- Services running on correct ports (8000, 8001, 8006)
### Environment Setup
```bash
cd /opt/aitbc
source venv/bin/activate
./aitbc-cli --version
```
## Testing Workflow
### 1. Run CLI Tests
```bash
# Run all CLI tests with current structure
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ -v --disable-warnings
# Run specific failing tests
python -m pytest cli/tests/test_cli_basic.py -v --tb=short
# Run with CLI test runner
cd cli/tests
python run_cli_tests.py
# Run marketplace tests
python -m pytest cli/tests/test_marketplace.py -v
```
### 2. Run Integration Tests
```bash
# Run all integration tests
cd /opt/aitbc
source venv/bin/activate
python -m pytest tests/ -v --no-cov
# Run with detailed output
python -m pytest tests/ -v --no-cov -s --tb=short
# Run specific integration test files
python -m pytest tests/integration/ -v --no-cov
```
### 3. Test CLI Commands with Current Structure
```bash
# Test CLI wrapper commands
./aitbc-cli --help
./aitbc-cli wallet --help
./aitbc-cli marketplace --help
# Test wallet commands
./aitbc-cli wallet create test-wallet
./aitbc-cli wallet list
./aitbc-cli wallet switch test-wallet
./aitbc-cli wallet balance
# Test marketplace commands
./aitbc-cli marketplace --action list
./aitbc-cli marketplace --action create --name "Test GPU" --price 0.25
./aitbc-cli marketplace --action search --name "GPU"
# Test blockchain commands
./aitbc-cli chain
./aitbc-cli node status
./aitbc-cli transaction list --limit 5
```
### 4. Run Specific Test Categories
```bash
# Unit tests
python -m pytest tests/unit/ -v
# Integration tests
python -m pytest tests/integration/ -v
# Package tests
python -m pytest packages/ -v
# Smart contract tests
python -m pytest packages/solidity/ -v
# CLI tests specifically
python -m pytest cli/tests/ -v
```
### 5. Debug Test Failures
```bash
# Run with pdb on failure
python -m pytest cli/tests/test_cli_basic.py::test_cli_help -v --pdb
# Run with verbose output and show local variables
python -m pytest cli/tests/ -v --tb=long -s
# Stop on first failure
python -m pytest cli/tests/ -v -x
# Run only failing tests
python -m pytest cli/tests/ -k "not test_cli_help" --disable-warnings
```
### 6. Check Test Coverage
```bash
# Run tests with coverage
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ --cov=cli/aitbc_cli --cov-report=html
# View coverage report
open htmlcov/index.html
# Coverage for specific modules
python -m pytest cli/tests/ --cov=cli.aitbc_cli.commands --cov-report=term-missing
```
### 7. Debug Services with Current Ports
```bash
# Check if coordinator API is running (port 8000)
curl -s http://localhost:8000/health | python3 -m json.tool
# Check if exchange API is running (port 8001)
curl -s http://localhost:8001/api/health | python3 -m json.tool
# Check if blockchain RPC is running (port 8006)
curl -s http://localhost:8006/health | python3 -m json.tool
# Check if marketplace is accessible
curl -s -o /dev/null -w %{http_code} http://aitbc.bubuit.net/marketplace/
# Check Ollama service (port 11434)
curl -s http://localhost:11434/api/tags | python3 -m json.tool
```
### 8. View Logs with Current Services
```bash
# View coordinator API logs
sudo journalctl -u aitbc-coordinator-api.service -f
# View exchange API logs
sudo journalctl -u aitbc-exchange-api.service -f
# View blockchain node logs
sudo journalctl -u aitbc-blockchain-node.service -f
# View blockchain RPC logs
sudo journalctl -u aitbc-blockchain-rpc.service -f
# View all AITBC services
sudo journalctl -u aitbc-* -f
```
### 9. Test Payment Flow Manually
```bash
# Create a job with AITBC payment using current ports
curl -X POST http://localhost:8000/v1/jobs \
-H "X-Api-Key: client_dev_key_1" \
-H "Content-Type: application/json" \
-d '{
"payload": {
"job_type": "ai_inference",
"parameters": {"model": "llama3.2:latest", "prompt": "Test"}
},
"payment_amount": 100,
"payment_currency": "AITBC"
}'
# Check payment status
curl -s http://localhost:8000/v1/jobs/{job_id}/payment \
-H "X-Api-Key: client_dev_key_1" | python3 -m json.tool
```
### 10. Common Debug Commands
```bash
# Check Python environment
cd /opt/aitbc
source venv/bin/activate
python --version
pip list | grep -E "(fastapi|sqlmodel|pytest|httpx|click|yaml)"
# Check database connection
ls -la /var/lib/aitbc/coordinator.db
# Check running services
systemctl status aitbc-coordinator-api.service
systemctl status aitbc-exchange-api.service
systemctl status aitbc-blockchain-node.service
# Check network connectivity
netstat -tlnp | grep -E "(8000|8001|8006|11434)"
# Check CLI functionality
./aitbc-cli --version
./aitbc-cli wallet list
./aitbc-cli chain
```
### 11. Performance Testing
```bash
# Run tests with performance profiling
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ --profile
# Load test coordinator API
ab -n 100 -c 10 http://localhost:8000/health
# Test blockchain RPC performance
time curl -s http://localhost:8006/rpc/head | python3 -m json.tool
```
### 12. Clean Test Environment
```bash
# Clean pytest cache
cd /opt/aitbc
rm -rf .pytest_cache
# Clean coverage files
rm -rf htmlcov .coverage
# Clean temp files
rm -rf temp/.coverage temp/.pytest_cache
# Reset test database (if using SQLite)
rm -f /var/lib/aitbc/test_coordinator.db
```
## Current Test Status
### CLI Tests (Updated Structure)
- **Location**: `cli/tests/`
- **Test Runner**: `run_cli_tests.py`
- **Basic Tests**: `test_cli_basic.py`
- **Marketplace Tests**: Available
- **Coverage**: CLI command testing
### Test Categories
#### Unit Tests
```bash
# Run unit tests only
cd /opt/aitbc
source venv/bin/activate
python -m pytest tests/unit/ -v
```
#### Integration Tests
```bash
# Run integration tests only
python -m pytest tests/integration/ -v --no-cov
```
#### Package Tests
```bash
# Run package tests
python -m pytest packages/ -v
# JavaScript package tests
cd packages/solidity/aitbc-token
npm test
```
#### Smart Contract Tests
```bash
# Run Solidity contract tests
cd packages/solidity/aitbc-token
npx hardhat test
```
## Troubleshooting
### Common Issues
1. **CLI Test Failures**
- Check virtual environment activation
- Verify CLI wrapper: `./aitbc-cli --help`
- Check Python path: `which python`
2. **Service Connection Errors**
- Check service status: `systemctl status aitbc-coordinator-api.service`
- Verify correct ports: 8000, 8001, 8006
- Check firewall settings
3. **Module Import Errors**
- Activate virtual environment: `source venv/bin/activate`
- Install dependencies: `pip install -r requirements.txt`
- Check PYTHONPATH: `echo $PYTHONPATH`
4. **Package Test Failures**
- JavaScript packages: Check npm and Node.js versions
- Missing dependencies: Run `npm install`
- Hardhat issues: Install missing ignition dependencies
### Debug Tips
1. Use `--pdb` to drop into debugger on failure
2. Use `-s` to see print statements
3. Use `--tb=long` for detailed tracebacks
4. Use `-x` to stop on first failure
5. Check service logs for errors
6. Verify environment variables are set
## Quick Test Commands
```bash
# Quick CLI test run
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ -x -q --disable-warnings
# Full test suite
python -m pytest tests/ --cov
# Debug specific test
python -m pytest cli/tests/test_cli_basic.py::test_cli_help -v -s
# Run only failing tests
python -m pytest cli/tests/ -k "not test_cli_help" --disable-warnings
```
## CI/CD Integration
### GitHub Actions Testing
```bash
# Test CLI in CI environment
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ -v --cov=cli/aitbc_cli --cov-report=xml
# Test packages
python -m pytest packages/ -v
cd packages/solidity/aitbc-token && npm test
```
### Local Development Testing
```bash
# Run tests before commits
cd /opt/aitbc
source venv/bin/activate
python -m pytest cli/tests/ --cov-fail-under=80
# Test specific changes
python -m pytest cli/tests/test_cli_basic.py -v
```
## Recent Updates (v2.0)
### Updated Project Structure
- **Working Directory**: Updated to `/opt/aitbc`
- **Virtual Environment**: Uses `/opt/aitbc/venv`
- **CLI Wrapper**: Uses `./aitbc-cli` for all operations
- **Test Structure**: Updated to `cli/tests/` organization
### Service Port Updates
- **Coordinator API**: Port 8000 (was 18000)
- **Exchange API**: Port 8001 (was 23000)
- **Blockchain RPC**: Port 8006 (was 20000)
- **Ollama**: Port 11434 (GPU operations)
### Enhanced Testing
- **CLI Test Runner**: Added custom test runner
- **Package Tests**: Added JavaScript package testing
- **Service Testing**: Updated service health checks
- **Coverage**: Enhanced coverage reporting
### Current Commands
- **CLI Commands**: Updated to use actual CLI implementation
- **Service Management**: Updated to current systemd services
- **Environment**: Proper venv activation and usage
- **Debugging**: Enhanced troubleshooting for current structure