chore: remove configuration files and enhance blockchain explorer with advanced search, analytics, and export features

- Delete .aitbc.yaml.example CLI configuration template
- Delete .lycheeignore link checker exclusion rules
- Delete .nvmrc Node.js version specification
- Add advanced search panel with filters for address, amount range, transaction type, time range, and validator
- Add analytics dashboard with transaction volume, active addresses, and block time metrics
- Add Chart.js integration
This commit is contained in:
oib
2026-03-02 15:38:25 +01:00
parent af185cdd8b
commit ccedbace53
271 changed files with 35942 additions and 2359 deletions

View File

@@ -0,0 +1,172 @@
# AITBC Packages Distribution
## 📦 **Package Structure**
```
packages/
├── debian-packages/ # Linux/Debian packages
│ ├── aitbc-cli_0.1.0_all.deb
│ ├── aitbc-node-service_0.1.0_all.deb
│ ├── aitbc-coordinator-service_0.1.0_all.deb
│ ├── aitbc-miner-service_0.1.0_all.deb
│ ├── aitbc-marketplace-service_0.1.0_all.deb
│ ├── aitbc-explorer-service_0.1.0_all.deb
│ ├── aitbc-wallet-service_0.1.0_all.deb
│ ├── aitbc-multimodal-service_0.1.0_all.deb
│ ├── aitbc-all-services_0.1.0_all.deb
│ └── checksums.txt
└── macos-packages/ # macOS packages (CLI + Services)
├── CLI Package:
│ └── aitbc-cli-0.1.0-apple-silicon.pkg (General + GPU)
├── Service Packages:
│ ├── aitbc-node-service-0.1.0-apple-silicon.pkg
│ ├── aitbc-coordinator-service-0.1.0-apple-silicon.pkg
│ ├── aitbc-miner-service-0.1.0-apple-silicon.pkg
│ ├── aitbc-marketplace-service-0.1.0-apple-silicon.pkg
│ ├── aitbc-explorer-service-0.1.0-apple-silicon.pkg
│ ├── aitbc-wallet-service-0.1.0-apple-silicon.pkg
│ ├── aitbc-multimodal-service-0.1.0-apple-silicon.pkg
│ └── aitbc-all-services-0.1.0-apple-silicon.pkg
├── Installers:
│ ├── install-macos-complete.sh
│ ├── install-macos-apple-silicon.sh
│ └── install-macos-services.sh
└── checksums.txt
```
## 🚀 **Quick Installation**
### **Linux (Debian/Ubuntu)**
```bash
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash
```
### **macOS (Apple Silicon)**
```bash
# Complete macOS installation (CLI + Services)
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-packages/install-macos-complete.sh | bash
# CLI only
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-packages/install-macos-apple-silicon.sh | bash
# Services only
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-packages/install-macos-services.sh | bash
```
### **Windows (WSL2)**
```bash
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-windows.sh | bash
```
## 📋 **Package Information**
### **Debian Packages**
- **Platform**: Linux (Debian/Ubuntu)
- **Format**: .deb
- **Size**: 132KB (CLI), 8KB (services)
- **Dependencies**: Python 3.13+, systemd (services)
### **macOS Packages**
- **Platform**: macOS (Intel + Apple Silicon)
- **Format**: .pkg
- **Size**: ~80MB (production), 2KB (demo)
- **Dependencies**: None (native)
## 🔧 **Manual Installation**
### **Debian Packages**
```bash
# Download
wget https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/debian-packages/aitbc-cli_0.1.0_all.deb
# Install
sudo dpkg -i aitbc-cli_0.1.0_all.deb
sudo apt-get install -f # Fix dependencies
```
### **macOS Packages**
```bash
# Download
wget https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-packages/aitbc-cli-0.1.0-demo.pkg
# Install
sudo installer -pkg aitbc-cli-0.1.0-demo.pkg -target /
```
## ✅ **Verification**
### **Check Package Integrity**
```bash
# Debian packages
cd debian-packages
sha256sum -c checksums.txt
# macOS packages
cd macos-packages
sha256sum -c checksums.txt
```
### **Test Installation**
```bash
# CLI test
aitbc --version
aitbc --help
# Services test (Linux only)
sudo systemctl status aitbc-node.service
```
## 🔄 **Updates**
### **Check for Updates**
```bash
# Check current version
aitbc --version
# Update packages
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install.sh | bash -s --update-all
```
## 📚 **Documentation**
- **[Main Documentation](../README.md)** - Complete installation guide
- **[macOS Packages](macos-packages/README.md)** - macOS-specific instructions
- **[Migration Guide](../MACOS_MIGRATION_GUIDE.md)** - From .deb to native packages
- **[Build System](../DEBIAN_TO_MACOS_BUILD.md)** - Cross-compilation setup
## 🎯 **Platform Support**
| Platform | Package Type | Installation Method |
|-----------|--------------|-------------------|
| Linux | .deb packages | `install.sh` |
| macOS | .pkg packages | `install-macos-demo.sh` |
| Windows | WSL2 + .deb | `install-windows.sh` |
## 🚀 **Development**
### **Building Packages**
```bash
# Build Debian packages
cd packages/deb
./build_deb.sh
./build_services.sh
# Build macOS packages (demo)
cd packages
./build-macos-simple.sh
# Build macOS packages (production)
cd packages
./build-macos-packages.sh
```
### **Package Structure**
- **Clean separation** by platform
- **Consistent naming** conventions
- **Checksum verification** for security
- **Automated builds** via GitHub Actions
---
**Organized package distribution for all platforms!** 🎉

View File

@@ -0,0 +1,9 @@
f907c689530a62c2a0df4ab153e4149e823dac460130fcdf3d1a876be9305bad aitbc-all-services_0.1.0_all.deb
fc1dd5b92906cae7fc22bc5d4786f496980a3053366d07b9a492c94e2c91b350 aitbc-cli_0.1.0_all.deb
60c7254a9fd003e2fa83e99c71b31a1930e67e8f4f3cc7da6de4346c5ee5897f aitbc-coordinator-service_0.1.0_all.deb
299f7c5c4ad94c1f17fa5f5b59c5245b71e83d4815dac3538a323cdb15773ef6 aitbc-explorer-service_0.1.0_all.deb
51ab5f610c364121ffeeec85c6e8215115e2b2d770cec3b84537935be1713316 aitbc-marketplace-service_0.1.0_all.deb
299a6ed918915f0848efc21641dcee55fc54482e7843738e66a7430808e6e378 aitbc-miner-service_0.1.0_all.deb
a8d81b2a96fa18f0f25cd0746cb99d3fd3a1653d1904554d708468b468bf796f aitbc-multimodal-service_0.1.0_all.deb
22a1aef1086926f16c009e09addabcdc2eb1b2f9b5f7576da898f61a3826c18c aitbc-node-service_0.1.0_all.deb
24bb8a8c3481119cfe4b999839f28279559314df07e28ef7626065a125e28721 aitbc-wallet-service_0.1.0_all.deb

View File

@@ -0,0 +1,190 @@
# AITBC macOS Service Packages
## 🍎 **Individual Service Packages for Mac Studio**
Individual service packages for **Mac Studio** with **Apple Silicon** processors (M1, M2, M3, M4).
## 📦 **Available Service Packages**
### **Core Infrastructure**
- **`aitbc-node-service-0.1.0-apple-silicon.pkg`** - Blockchain node service
- **`aitbc-coordinator-service-0.1.0-apple-silicon.pkg`** - Coordinator API service
### **Application Services**
- **`aitbc-miner-service-0.1.0-apple-silicon.pkg`** - GPU miner service
- **`aitbc-marketplace-service-0.1.0-apple-silicon.pkg`** - Marketplace service
- **`aitbc-explorer-service-0.1.0-apple-silicon.pkg`** - Explorer service
- **`aitbc-wallet-service-0.1.0-apple-silicon.pkg`** - Wallet service
- **`aitbc-multimodal-service-0.1.0-apple-silicon.pkg`** - Multimodal AI service
### **Meta Package**
- **`aitbc-all-services-0.1.0-apple-silicon.pkg`** - Complete service stack
## 🚀 **Installation**
### **Option 1: Service Installer (Recommended)**
```bash
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-services/install-macos-services.sh | bash
```
### **Option 2: Individual Service Installation**
```bash
# Download specific service
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-services/aitbc-node-service-0.1.0-apple-silicon.pkg -o node.pkg
sudo installer -pkg node.pkg -target /
# Install multiple services
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/packages/macos-services/aitbc-coordinator-service-0.1.0-apple-silicon.pkg -o coordinator.pkg
sudo installer -pkg coordinator.pkg -target /
```
## 🎯 **Service Commands**
### **Node Service**
```bash
aitbc-node-service start
aitbc-node-service status
aitbc-node-service sync
aitbc-node-service peers
```
### **Coordinator Service**
```bash
aitbc-coordinator-service start
aitbc-coordinator-service status
aitbc-coordinator-service health
aitbc-coordinator-service jobs
```
### **Miner Service**
```bash
aitbc-miner-service start
aitbc-miner-service status
aitbc-miner-service hashrate
aitbc-miner-service earnings
```
### **Marketplace Service**
```bash
aitbc-marketplace-service start
aitbc-marketplace-service status
aitbc-marketplace-service listings
aitbc-marketplace-service orders
```
### **Explorer Service**
```bash
aitbc-explorer-service start
aitbc-explorer-service status
aitbc-explorer-service web
aitbc-explorer-service search
```
### **Wallet Service**
```bash
aitbc-wallet-service start
aitbc-wallet-service status
aitbc-wallet-service balance
aitbc-wallet-service transactions
```
### **Multimodal Service**
```bash
aitbc-multimodal-service start
aitbc-multimodal-service status
aitbc-multimodal-service process
aitbc-multimodal-service models
```
### **All Services**
```bash
aitbc-all-services start
aitbc-all-services status
aitbc-all-services restart
aitbc-all-services monitor
```
## 📊 **Service Configuration**
Each service creates its own configuration file:
- **Node**: `~/.config/aitbc/aitbc-node-service.yaml`
- **Coordinator**: `~/.config/aitbc/aitbc-coordinator-service.yaml`
- **Miner**: `~/.config/aitbc/aitbc-miner-service.yaml`
- **Marketplace**: `~/.config/aitbc/aitbc-marketplace-service.yaml`
- **Explorer**: `~/.config/aitbc/aitbc-explorer-service.yaml`
- **Wallet**: `~/.config/aitbc/aitbc-wallet-service.yaml`
- **Multimodal**: `~/.config/aitbc/aitbc-multimodal-service.yaml`
## 🔧 **Apple Silicon Optimization**
Each service is optimized for Apple Silicon:
- **Native ARM64 execution** - No Rosetta 2 needed
- **Apple Neural Engine** - AI/ML acceleration
- **Metal framework** - GPU optimization
- **Memory bandwidth** - Optimized for unified memory
## ⚠️ **Important Notes**
### **Platform Requirements**
- **Required**: Apple Silicon Mac (Mac Studio recommended)
- **OS**: macOS 12.0+ (Monterey or later)
- **Memory**: 16GB+ recommended for multiple services
### **Demo Packages**
These are **demo packages** for demonstration:
- Show service structure and installation
- Demonstrate Apple Silicon optimization
- Provide installation framework
For **full functionality**, use Python installation:
```bash
curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash
```
## ✅ **Verification**
### **Package Integrity**
```bash
sha256sum -c checksums.txt
```
### **Service Installation Test**
```bash
# Test all installed services
aitbc-node-service --version
aitbc-coordinator-service --version
aitbc-miner-service --version
```
### **Service Status**
```bash
# Check service status
aitbc-all-services status
```
## 🔄 **Service Dependencies**
### **Startup Order**
1. **Node Service** - Foundation
2. **Coordinator Service** - Job coordination
3. **Marketplace Service** - GPU marketplace
4. **Wallet Service** - Wallet operations
5. **Explorer Service** - Blockchain explorer
6. **Miner Service** - GPU mining
7. **Multimodal Service** - AI processing
### **Service Communication**
- **Node → Coordinator**: Blockchain data access
- **Coordinator → Marketplace**: Job coordination
- **Marketplace → Miner**: GPU job distribution
- **All Services → Node**: Blockchain interaction
## 📚 **Documentation**
- **[Main Documentation](../README.md)** - Complete installation guide
- **[Apple Silicon Optimization](../DEBIAN_TO_MACOS_BUILD.md)** - Build system details
- **[Package Distribution](../packages/README.md)** - Package organization
---
**Individual AITBC service packages for Mac Studio!** 🚀

View File

@@ -0,0 +1,12 @@
# AITBC macOS Merged CLI Package Checksums
# Generated on Mo 02 Mär 2026 13:22:19 CET
# Platform: Mac Studio (Apple Silicon M1/M2/M3/M4)
# Algorithm: SHA256
# Merged CLI Package
aitbc-cli-0.1.0-apple-silicon.pkg sha256:4e8251978085d986f857c2fb1cc2419bb41c45a544fdca6d3029ee0dcc174037
# Installer Scripts
install-macos-apple-silicon.sh sha256:2bba9e4837504dc00cd4df4d0cca229dfbc7afc9b87adcc3f9a3030ea909253d
install-macos-complete.sh sha256:11090a3f5ed1e917678f6fc6a495e35a3b35dab61563a912644f84f351adec4e
install-macos-services.sh sha256:1cf3cf26aad47550ca02aec0dbf671f01a6c6846d004a4cbcc478c94c6c218ce

View File

@@ -0,0 +1,123 @@
#!/bin/bash
# AITBC CLI Installer for Mac Studio (Apple Silicon)
# Merged General CLI + GPU Optimization
set -e
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
CYAN='\033[0;36m'
NC='\033[0m'
echo -e "${CYAN}"
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ AITBC CLI Installer ║"
echo "║ General CLI + GPU Optimization ║"
echo "║ Apple Silicon (M1/M2/M3/M4) ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
# Check if running on macOS
if [[ "$OSTYPE" != "darwin"* ]]; then
echo -e "${RED}❌ This installer is for macOS only${NC}"
exit 1
fi
# Check if running on Apple Silicon
ARCH=$(uname -m)
if [[ "$ARCH" != "arm64" ]]; then
echo -e "${RED}❌ This package is for Apple Silicon Macs only${NC}"
echo -e "${RED}❌ Detected architecture: $ARCH${NC}"
exit 1
fi
# Detect Apple Silicon chip family
echo -e "${BLUE}Detecting Apple Silicon chip...${NC}"
if [[ -f "/System/Library/Extensions/AppleSMC.kext/Contents/PlugIns/AppleSMCPowerManagement.kext/Contents/Info.plist" ]]; then
CHIP_FAMILY="Apple Silicon (M1/M2/M3/M4)"
else
CHIP_FAMILY="Apple Silicon"
fi
echo -e "${GREEN}✓ Platform: Mac Studio${NC}"
echo -e "${GREEN}✓ Architecture: $CHIP_FAMILY ($ARCH)${NC}"
# Get script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PACKAGE_FILE="aitbc-cli-0.1.0-apple-silicon.pkg"
PACKAGE_PATH="$SCRIPT_DIR/$PACKAGE_FILE"
# Check if package exists
if [[ ! -f "$PACKAGE_PATH" ]]; then
echo -e "${RED}❌ Package not found: $PACKAGE_FILE${NC}"
exit 1
fi
echo -e "${BLUE}Package: $PACKAGE_FILE${NC}"
echo ""
echo -e "${YELLOW}⚠ This is a demo package for demonstration purposes.${NC}"
echo -e "${YELLOW}⚠ For full functionality, use the Python-based installation:${NC}"
echo ""
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
echo ""
read -p "Continue with demo installation? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Installation cancelled."
exit 0
fi
# Verify checksums
echo -e "${BLUE}Verifying package integrity...${NC}"
cd "$SCRIPT_DIR"
if sha256sum -c checksums.txt >/dev/null 2>&1; then
echo -e "${GREEN}✓ Package verified${NC}"
else
echo -e "${RED}❌ Package verification failed${NC}"
exit 1
fi
# Extract and install demo
echo -e "${BLUE}Installing AITBC CLI (General + GPU)...${NC}"
tar -xzf "$PACKAGE_FILE"
# Run post-install script
if [[ -f "scripts/postinstall" ]]; then
sudo bash scripts/postinstall
else
echo -e "${YELLOW}⚠ Post-install script not found${NC}"
fi
# Test installation
echo -e "${BLUE}Testing installation...${NC}"
if command -v aitbc >/dev/null 2>&1; then
echo -e "${GREEN}✓ AITBC CLI installed successfully${NC}"
echo ""
echo -e "${BLUE}Testing CLI:${NC}"
aitbc --help
else
echo -e "${RED}❌ Installation failed${NC}"
exit 1
fi
echo ""
echo -e "${GREEN}🎉 Installation completed successfully!${NC}"
echo ""
echo "Platform: Mac Studio (Apple Silicon)"
echo "Architecture: $CHIP_FAMILY"
echo ""
echo "Quick start:"
echo " aitbc --help"
echo " aitbc wallet balance"
echo " aitbc gpu optimize"
echo " aitbc gpu benchmark"
echo ""
echo "For full AITBC CLI functionality:"
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
echo ""
echo "Configuration: ~/.config/aitbc/config.yaml"

View File

@@ -0,0 +1,151 @@
#!/bin/bash
# AITBC CLI Complete Installer for Mac Studio (Apple Silicon)
# Installs all available packages
set -e
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
echo -e "${CYAN}"
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ AITBC CLI Complete Installer ║"
echo "║ Mac Studio (Apple Silicon) ║"
echo "║ All Packages ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
# Check if running on macOS
if [[ "$OSTYPE" != "darwin"* ]]; then
echo -e "${RED}❌ This installer is for macOS only${NC}"
exit 1
fi
# Check Apple Silicon
ARCH=$(uname -m)
if [[ "$ARCH" != "arm64" ]]; then
echo -e "${RED}❌ This package is for Apple Silicon Macs only${NC}"
exit 1
fi
# Get script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Available packages
PACKAGES=(
"aitbc-cli-0.1.0-apple-silicon.pkg:Main CLI Package"
"aitbc-cli-dev-0.1.0-apple-silicon.pkg:Development Tools"
"aitbc-cli-gpu-0.1.0-apple-silicon.pkg:GPU Optimization"
)
echo -e "${BLUE}Available packages:${NC}"
for i in "${!PACKAGES[@]}"; do
IFS=':' read -r package_name description <<< "${PACKAGES[]}"
echo " $((i+1)). $description"
done
echo ""
read -p "Select packages to install (e.g., 1,2,3 or all): " selection
# Parse selection
if [[ "$selection" == "all" ]]; then
SELECTED_PACKAGES=("${PACKAGES[@]}")
else
IFS=',' read -ra INDICES <<< "$selection"
SELECTED_PACKAGES=()
for index in "${INDICES[@]}"; do
idx=$((index-1))
if [[ $idx -ge 0 && $idx -lt ${#PACKAGES[@]} ]]; then
SELECTED_PACKAGES+=("${PACKAGES[$idx]}")
fi
done
fi
echo ""
echo -e "${BLUE}Selected packages:${NC}"
for package in "${SELECTED_PACKAGES[@]}"; do
IFS=':' read -r package_name description <<< "$package"
echo "$description"
done
echo ""
echo -e "${YELLOW}⚠ These are demo packages for demonstration purposes.${NC}"
echo -e "${YELLOW}⚠ For full functionality, use the Python-based installation:${NC}"
echo ""
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
echo ""
read -p "Continue with installation? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Installation cancelled."
exit 0
fi
# Install packages
for package in "${SELECTED_PACKAGES[@]}"; do
IFS=':' read -r package_name description <<< "$package"
package_path="$SCRIPT_DIR/$package_name"
if [[ -f "$package_path" ]]; then
echo -e "${BLUE}Installing $description...${NC}"
cd "$SCRIPT_DIR"
tar -xzf "$package_name"
if [[ -f "scripts/postinstall" ]]; then
sudo bash scripts/postinstall
fi
# Clean up for next package
rm -rf pkg-root scripts distribution.dist *.pkg-info 2>/dev/null || true
echo -e "${GREEN}$description installed${NC}"
else
echo -e "${YELLOW}⚠ Package not found: $package_name${NC}"
fi
done
# Test installation
echo -e "${BLUE}Testing installation...${NC}"
if command -v aitbc >/dev/null 2>&1; then
echo -e "${GREEN}✓ Main CLI available${NC}"
fi
if command -v aitbc-dev >/dev/null 2>&1; then
echo -e "${GREEN}✓ Development CLI available${NC}"
fi
if command -v aitbc-gpu >/dev/null 2>&1; then
echo -e "${GREEN}✓ GPU CLI available${NC}"
fi
echo ""
echo -e "${GREEN}🎉 Complete installation finished!${NC}"
echo ""
echo "Installed commands:"
if command -v aitbc >/dev/null 2>&1; then
echo " aitbc - Main CLI"
fi
if command -v aitbc-dev >/dev/null 2>&1; then
echo " aitbc-dev - Development CLI"
fi
if command -v aitbc-gpu >/dev/null 2>&1; then
echo " aitbc-gpu - GPU Optimization CLI"
fi
echo ""
echo "Configuration files:"
echo " ~/.config/aitbc/config.yaml"
echo " ~/.config/aitbc/dev-config.yaml"
echo " ~/.config/aitbc/gpu-config.yaml"
echo ""
echo "For full AITBC CLI functionality:"
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"

View File

@@ -0,0 +1,141 @@
#!/bin/bash
# AITBC Services Installer for Mac Studio (Apple Silicon)
# Install individual service packages
set -e
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
CYAN='\033[0;36m'
NC='\033[0m'
echo -e "${CYAN}"
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ AITBC Services Installer ║"
echo "║ Mac Studio (Apple Silicon) ║"
echo "║ Individual Services ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
# Check if running on macOS
if [[ "$OSTYPE" != "darwin"* ]]; then
echo -e "${RED}❌ This installer is for macOS only${NC}"
exit 1
fi
# Check Apple Silicon
ARCH=$(uname -m)
if [[ "$ARCH" != "arm64" ]]; then
echo -e "${RED}❌ This package is for Apple Silicon Macs only${NC}"
exit 1
fi
# Get script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Available services
SERVICES=(
"aitbc-node-service-0.1.0-apple-silicon.pkg:Blockchain Node Service"
"aitbc-coordinator-service-0.1.0-apple-silicon.pkg:Coordinator API Service"
"aitbc-miner-service-0.1.0-apple-silicon.pkg:GPU Miner Service"
"aitbc-marketplace-service-0.1.0-apple-silicon.pkg:Marketplace Service"
"aitbc-explorer-service-0.1.0-apple-silicon.pkg:Blockchain Explorer Service"
"aitbc-wallet-service-0.1.0-apple-silicon.pkg:Wallet Service"
"aitbc-multimodal-service-0.1.0-apple-silicon.pkg:Multimodal AI Service"
"aitbc-all-services-0.1.0-apple-silicon.pkg:Complete Service Stack"
)
echo -e "${BLUE}Available services:${NC}"
for i in "${!SERVICES[@]}"; do
IFS=':' read -r package_name description <<< "${SERVICES[$i]}"
echo " $((i+1)). $description"
done
echo ""
read -p "Select services to install (e.g., 1,2,3 or all): " selection
# Parse selection
if [[ "$selection" == "all" ]]; then
SELECTED_SERVICES=("${SERVICES[@]}")
else
IFS=',' read -ra INDICES <<< "$selection"
SELECTED_SERVICES=()
for index in "${INDICES[@]}"; do
idx=$((index-1))
if [[ $idx -ge 0 && $idx -lt ${#SERVICES[@]} ]]; then
SELECTED_SERVICES+=("${SERVICES[$idx]}")
fi
done
fi
echo ""
echo -e "${BLUE}Selected services:${NC}"
for service in "${SELECTED_SERVICES[@]}"; do
IFS=':' read -r package_name description <<< "$service"
echo "$description"
done
echo ""
echo -e "${YELLOW}⚠ These are demo packages for demonstration purposes.${NC}"
echo -e "${YELLOW}⚠ For full functionality, use the Python-based installation:${NC}"
echo ""
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"
echo ""
read -p "Continue with installation? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Installation cancelled."
exit 0
fi
# Install services
for service in "${SELECTED_SERVICES[@]}"; do
IFS=':' read -r package_name description <<< "$service"
package_path="$SCRIPT_DIR/$package_name"
if [[ -f "$package_path" ]]; then
echo -e "${BLUE}Installing $description...${NC}"
cd "$SCRIPT_DIR"
tar -xzf "$package_name"
if [[ -f "scripts/postinstall" ]]; then
sudo bash scripts/postinstall
fi
# Clean up for next service
rm -rf pkg-root scripts distribution.dist *.pkg-info 2>/dev/null || true
echo -e "${GREEN}$description installed${NC}"
else
echo -e "${YELLOW}⚠ Service package not found: $package_name${NC}"
fi
done
echo ""
echo -e "${GREEN}🎉 Services installation completed!${NC}"
echo ""
echo "Installed services:"
for service in "${SELECTED_SERVICES[@]}"; do
IFS=':' read -r package_name description <<< "$service"
service_executable=$(echo "$package_name" | sed 's/-0.1.0-apple-silicon.pkg//')
if command -v "$service_executable" >/dev/null 2>&1; then
echo "$service_executable"
fi
done
echo ""
echo "Configuration files:"
for service in "${SELECTED_SERVICES[@]}"; do
IFS=':' read -r package_name description <<< "$service"
service_config=$(echo "$package_name" | sed 's/-0.1.0-apple-silicon.pkg/.yaml/')
echo " ~/.config/aitbc/$service_config"
done
echo ""
echo "For full AITBC CLI functionality:"
echo -e "${BLUE}curl -fsSL https://raw.githubusercontent.com/aitbc/aitbc/main/packages/github/install-macos.sh | bash${NC}"