Files
aitbc/scripts/README.md
oib 15427c96c0 chore: update file permissions to executable across repository
- Change file mode from 644 to 755 for all project files
- Add chain_id parameter to get_balance RPC endpoint with default "ait-devnet"
- Rename Miner.extra_meta_data to extra_metadata for consistency
2026-03-06 22:17:54 +01:00

204 lines
5.5 KiB
Markdown
Executable File

# AITBC Development Environment Scripts
This directory contains scripts for managing the AITBC development environment, including incus containers and systemd services.
## 📋 Available Scripts
### 🔧 `start-aitbc-dev.sh`
Starts incus containers and AITBC systemd services on localhost.
**Features:**
- Starts incus containers: `aitbc` and `aitbc1`
- Starts all local systemd services matching `aitbc-*`
- Checks service health and port status
- Tests health endpoints
- Provides colored output and status reporting
**Usage:**
```bash
./scripts/start-aitbc-dev.sh
```
### 🛑 `stop-aitbc-dev.sh`
Stops incus containers and AITBC systemd services on localhost.
**Features:**
- Stops incus containers: `aitbc` and `aitbc1`
- Stops all local systemd services matching `aitbc-*`
- Verifies services are stopped
- Provides colored output and status reporting
**Usage:**
```bash
./scripts/stop-aitbc-dev.sh
```
### 🚀 `start-aitbc-full.sh`
Comprehensive startup script for the complete AITBC development environment.
**Features:**
- Starts incus containers: `aitbc` and `aitbc1`
- Starts services inside containers
- Starts all local systemd services matching `aitbc-*`
- Tests connectivity to container services
- Provides detailed status reporting
- Shows container IP addresses
- Tests health endpoints
**Services Started:**
- **Local Services:** All `aitbc-*` systemd services
- **Container Services:**
- `aitbc-coordinator-api`
- `aitbc-wallet-daemon`
- `aitbc-blockchain-node`
**Usage:**
```bash
./scripts/start-aitbc-full.sh
```
## 🎯 Prerequisites
### Required Commands:
- `incus` - Container management
- `systemctl` - Systemd service management
- `curl` - Health endpoint testing
- `netstat` - Port checking
### Required Containers:
The scripts expect these incus containers to exist:
- `aitbc`
- `aitbc1`
### Required Services:
The scripts look for systemd services matching the pattern `aitbc-*`.
## 📊 Service Ports
| Port | Service | Description |
|------|---------|-------------|
| 8001 | Coordinator API | Main API service |
| 8002 | Wallet Daemon | Wallet management |
| 8003 | Blockchain RPC | Blockchain node RPC |
| 8000 | Coordinator API (alt) | Alternative API |
| 8081 | Blockchain Node 1 | Blockchain instance |
| 8082 | Blockchain Node 2 | Blockchain instance |
| 8006 | Coordinator API (dev) | Development API |
## 🔍 Health Endpoints
The scripts test these health endpoints:
- `http://localhost:8001/health` - Coordinator API
- `http://localhost:8002/health` - Wallet Daemon
- `http://localhost:8003/health` - Blockchain RPC
## 📝 Output Examples
### Success Output:
```
[INFO] Starting AITBC Development Environment...
[INFO] Starting incus containers...
[SUCCESS] Container aitbc started successfully
[SUCCESS] Container aitbc1 started successfully
[INFO] Starting AITBC systemd services on localhost...
[SUCCESS] Service aitbc-coordinator-api started successfully
[SUCCESS] Service aitbc-wallet-daemon started successfully
[INFO] Checking service status...
[SUCCESS] aitbc-coordinator-api: RUNNING
[SUCCESS] aitbc-wallet-daemon: RUNNING
[SUCCESS] AITBC Development Environment startup complete!
```
### Service Status:
```
[INFO] Checking AITBC service ports...
[SUCCESS] Coordinator API (port 8001): RUNNING
[SUCCESS] Wallet Daemon (port 8002): RUNNING
[WARNING] Blockchain RPC (port 8003): NOT RUNNING
```
## 🛠️ Troubleshooting
### Common Issues:
1. **Container not found:**
```
[ERROR] Container aitbc not found. Please create it first.
```
**Solution:** Create the incus containers first:
```bash
incus launch images:ubuntu/22.04 aitbc
incus launch images:ubuntu/22.04 aitbc1
```
2. **Service not found:**
```
[WARNING] No AITBC services found on localhost
```
**Solution:** Install AITBC services or check if they're named correctly.
3. **Port already in use:**
```
[WARNING] Service aitbc-coordinator-api is already running
```
**Solution:** This is normal - the script detects already running services.
4. **Permission denied:**
```
[ERROR] Failed to start service aitbc-coordinator-api
```
**Solution:** Run with sudo or check user permissions.
### Debug Commands:
```bash
# Check all AITBC services
systemctl list-units | grep aitbc-
# Check container status
incus list
# View service logs
journalctl -f -u aitbc-coordinator-api
# View container logs
incus exec aitbc -- journalctl -f -u aitbc-coordinator-api
# Check port usage
netstat -tlnp | grep :800
```
## 🔄 Workflow
### Development Setup:
1. Create incus containers (if not exists)
2. Install AITBC services in containers
3. Install AITBC systemd services locally
4. Run `./scripts/start-aitbc-full.sh`
### Daily Development:
1. `./scripts/start-aitbc-full.sh` - Start everything
2. Work on AITBC development
3. `./scripts/stop-aitbc-dev.sh` - Stop when done
### Testing:
1. Start services with scripts
2. Test health endpoints
3. Check logs for issues
4. Stop services when finished
## 📚 Additional Information
- **Container IPs:** Scripts show container IP addresses for direct access
- **Health Checks:** Automatic health endpoint testing
- **Service Status:** Real-time status reporting
- **Error Handling:** Graceful error handling with informative messages
## 🎯 Best Practices
1. **Use the full script** for complete environment setup
2. **Check the output** for any warnings or errors
3. **Monitor logs** when troubleshooting issues
4. **Stop services** when not in use to conserve resources
5. **Run scripts from the project root** for proper path resolution