📈 CLI Expansion: Full wallet and transaction support • Create enterprise_cli.py with advanced operations • Add batch transaction processing from JSON files • Implement wallet import/export operations • Add wallet rename and delete functionality 📈 Advanced Operations: Mining, marketplace, AI services • Mining operations: start/stop/status with multi-threading • Marketplace: list items and create listings • AI services: submit compute jobs with payment • Enterprise automation script for demo purposes 📈 Enterprise Features: Batch operations, automation • Batch transaction processing with JSON input • Cross-node deployment and synchronization • Sample file generation for batch operations • Enterprise automation script with all features • Professional error handling and user feedback New CLI Commands: • batch: Process multiple transactions from JSON file • mine: Mining operations (start/stop/status) • market: Marketplace operations (list/create) • ai: AI service operations (submit jobs) • sample: Create sample batch files Enterprise Features: • JSON-based batch processing • Multi-threaded mining support • Marketplace integration • AI compute job submission • Cross-node automation • Professional error handling • Sample file generation This completes the long-term CLI goals with enterprise-grade features and automation capabilities.
9.7 KiB
AITBC Enhanced CLI - Complete Usage Guide
Overview
The AITBC Enhanced CLI provides comprehensive wallet and blockchain management capabilities with professional-grade features and user-friendly interfaces.
Installation
The CLI tool is located at /opt/aitbc/cli/simple_wallet.py and is deployed on both aitbc1 and aitbc nodes.
Commands
1. Create Wallet
Create a new encrypted wallet with automatic key generation.
python /opt/aitbc/cli/simple_wallet.py create --name <wallet-name> --password-file <path-to-password-file>
Examples:
# Create wallet with password file
python /opt/aitbc/cli/simple_wallet.py create --name my-wallet --password-file /var/lib/aitbc/keystore/.password
# Create wallet with interactive password
python /opt/aitbc/cli/simple_wallet.py create --name my-wallet
Output:
Wallet created: my-wallet
Address: ait1abc123def456...
Keystore: /var/lib/aitbc/keystore/my-wallet.json
Wallet address: ait1abc123def456...
2. Send Transaction
Send AIT coins from one wallet to another with automatic signing.
python /opt/aitbc/cli/simple_wallet.py send --from <sender-wallet> --to <recipient-address> --amount <amount> --password-file <path-to-password-file>
Examples:
# Send 1000 AIT with default fee
python /opt/aitbc/cli/simple_wallet.py send --from genesis --to ait1abc123... --amount 1000 --password-file /var/lib/aitbc/keystore/.password
# Send with custom fee and RPC URL
python /opt/aitbc/cli/simple_wallet.py send --from my-wallet --to ait1def456... --amount 500 --fee 5 --password-file /var/lib/aitbc/keystore/.password --rpc-url http://localhost:8006
Output:
Transaction submitted successfully
From: ait1abc123def456...
To: ait1def456abc789...
Amount: 1000 AIT
Fee: 10 AIT
Transaction hash: 0x123abc456def...
3. List Wallets
Display all available wallets with their addresses.
python /opt/aitbc/cli/simple_wallet.py list [--format table|json]
Examples:
# Table format (default)
python /opt/aitbc/cli/simple_wallet.py list
# JSON format
python /opt/aitbc/cli/simple_wallet.py list --format json
Output:
Wallets:
genesis: ait1abc123def456...
treasury: ait1def456abc789...
my-wallet: ait1ghi789jkl012...
4. Get Balance
Retrieve wallet balance, nonce, and address information.
python /opt/aitbc/cli/simple_wallet.py balance --name <wallet-name> [--rpc-url <url>]
Examples:
# Get balance for specific wallet
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet
# Get balance with custom RPC URL
python /opt/aitbc/cli/simple_wallet.py balance --name genesis --rpc-url http://10.1.223.40:8006
Output:
Wallet: my-wallet
Address: ait1ghi789jkl012...
Balance: 1500 AIT
Nonce: 5
5. Get Transactions
Retrieve wallet transaction history with detailed information.
python /opt/aitbc/cli/simple_wallet.py transactions --name <wallet-name> [--limit <number>] [--format table|json]
Examples:
# Get last 10 transactions
python /opt/aitbc/cli/simple_wallet.py transactions --name my-wallet
# Get last 5 transactions in JSON format
python /opt/aitbc/cli/simple_wallet.py transactions --name my-wallet --limit 5 --format json
Output:
Transactions for my-wallet:
1. Hash: 0x123abc456def...
Amount: 1000 AIT
Fee: 10 AIT
Type: transfer
2. Hash: 0x789ghi012jkl...
Amount: 500 AIT
Fee: 5 AIT
Type: transfer
6. Get Chain Information
Display blockchain network information and configuration.
python /opt/aitbc/cli/simple_wallet.py chain [--rpc-url <url>]
Examples:
# Get chain information
python /opt/aitbc/cli/simple_wallet.py chain
# Get chain information from remote node
python /opt/aitbc/cli/simple_wallet.py chain --rpc-url http://10.1.223.40:8006
Output:
Blockchain Information:
Chain ID: ait-mainnet
Supported Chains: ait-mainnet
RPC Version: v0.2.2
Height: 1234
7. Get Network Status
Display current network status and health information.
python /opt/aitbc/cli/simple_wallet.py network [--rpc-url <url>]
Examples:
# Get network status
python /opt/aitbc/cli/simple_wallet.py network
# Get network status in JSON format
python /opt/aitbc/cli/simple_wallet.py network --format json
Output:
Network Status:
Height: 1234
Latest Block: 0xabc123def456...
Chain ID: ait-mainnet
RPC Version: v0.2.2
Timestamp: 1711706400
Advanced Features
Output Formats
Most commands support both table and JSON output formats:
# Table format (human-readable)
python /opt/aitbc/cli/simple_wallet.py list --format table
# JSON format (machine-readable)
python /opt/aitbc/cli/simple_wallet.py list --format json
Remote Node Operations
Connect to different RPC endpoints:
# Local node
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --rpc-url http://localhost:8006
# Remote node
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --rpc-url http://10.1.223.40:8006
Password Management
Multiple password input methods:
# Password file
python /opt/aitbc/cli/simple_wallet.py send --from wallet --to address --amount 100 --password-file /path/to/password
# Interactive password
python /opt/aitbc/cli/simple_wallet.py send --from wallet --to address --amount 100
# Direct password (not recommended for production)
python /opt/aitbc/cli/simple_wallet.py send --from wallet --to address --amount 100 --password mypassword
Common Workflows
1. Complete Wallet Setup
# Create wallet
python /opt/aitbc/cli/simple_wallet.py create --name my-wallet --password-file /var/lib/aitbc/keystore/.password
# Get wallet address
WALLET_ADDR=$(python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --format json | jq -r '.address')
# Check balance
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet
2. Transaction Workflow
# Check sender balance
python /opt/aitbc/cli/simple_wallet.py balance --name sender-wallet
# Send transaction
python /opt/aitbc/cli/simple_wallet.py send --from sender-wallet --to $WALLET_ADDR --amount 1000 --password-file /var/lib/aitbc/keystore/.password
# Monitor transaction
python /opt/aitbc/cli/simple_wallet.py transactions --name sender-wallet --limit 3
# Check recipient balance
python /opt/aitbc/cli/simple_wallet.py balance --name recipient-wallet
3. Network Monitoring
# Check network status
python /opt/aitbc/cli/simple_wallet.py network
# Check chain information
python /opt/aitbc/cli/simple_wallet.py chain
# List all wallets
python /opt/aitbc/cli/simple_wallet.py list
# Check all wallet balances
for wallet in $(python /opt/aitbc/cli/simple_wallet.py list --format json | jq -r '.[].name'); do
echo "Wallet: $wallet"
python /opt/aitbc/cli/simple_wallet.py balance --name $wallet
echo "---"
done
Cross-Node Operations
aitbc1 to aitbc Operations
# On aitbc1 - check network status
python /opt/aitbc/cli/simple_wallet.py network
# On aitbc - check network status
ssh aitbc 'python /opt/aitbc/cli/simple_wallet.py network'
# Send from aitbc1 to aitbc wallet
python /opt/aitbc/cli/simple_wallet.py send --from genesis --to $AITBC_WALLET_ADDR --amount 1000 --password-file /var/lib/aitbc/keystore/.password
# Check balance on aitbc
ssh aitbc "python /opt/aitbc/cli/simple_wallet.py balance --name aitbc-user"
Error Handling
The CLI provides comprehensive error handling:
- Wallet Not Found: Clear error message when wallet doesn't exist
- Password Errors: Proper password validation and error messages
- Network Errors: RPC connectivity issues with helpful messages
- Transaction Errors: Detailed transaction failure information
- JSON Parsing: Graceful handling of malformed responses
Security Best Practices
- Password Management: Use password files instead of command-line passwords
- File Permissions: Ensure keystore files have proper permissions (600)
- Network Security: Use HTTPS for RPC endpoints in production
- Backup: Regularly backup keystore files
- Validation: Always verify transaction details before sending
Integration with Scripts
The CLI is designed for easy integration with shell scripts:
#!/bin/bash
# Get wallet balance in script
BALANCE=$(python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --format json | jq -r '.balance')
if [ "$BALANCE" -gt "1000" ]; then
echo "Sufficient balance for transaction"
python /opt/aitbc/cli/simple_wallet.py send --from my-wallet --to $RECIPIENT --amount 1000 --password-file /var/lib/aitbc/keystore/.password
else
echo "Insufficient balance: $BALANCE AIT"
fi
Troubleshooting
Common Issues
- Permission Denied: Check file permissions on keystore directory
- Connection Refused: Verify RPC service is running
- Invalid Password: Ensure password file contains correct password
- Wallet Not Found: Verify wallet name is correct
Debug Mode
Add verbose output for debugging:
# Enable debug output (if implemented)
python /opt/aitbc/cli/simple_wallet.py --debug balance --name my-wallet
Future Enhancements
Planned features for future releases:
- Batch Operations: Send multiple transactions in one command
- Smart Contracts: Deploy and interact with smart contracts
- Staking: Delegate and undelegate tokens
- Governance: Participate in governance proposals
- NFT Support: Create and manage NFTs
- Multi-signature: Create and manage multi-sig wallets
Support
For support and issues:
- Check the error messages for specific guidance
- Verify network connectivity and service status
- Review this documentation for proper usage
- Check system logs for additional error details