feat: add open island configuration examples
- Added blockchain.env.open-island for quick open island setup - Added node.env.open-island for node-specific open island config - Added comprehensive README.md for examples directory - Pre-configured for hub.aitbc.bubuit.net open island - Includes quick start instructions and troubleshooting guide
This commit is contained in:
206
examples/README.md
Normal file
206
examples/README.md
Normal file
@@ -0,0 +1,206 @@
|
||||
# AITBC Configuration Examples
|
||||
|
||||
This directory contains example configuration files for setting up AITBC nodes in various scenarios.
|
||||
|
||||
## Quick Start for Open Island
|
||||
|
||||
To quickly join the hub.aitbc.bubuit.net open island:
|
||||
|
||||
```bash
|
||||
# Copy the pre-configured open island examples
|
||||
sudo cp /opt/aitbc/examples/blockchain.env.open-island /etc/aitbc/blockchain.env
|
||||
sudo cp /opt/aitbc/examples/node.env.open-island /etc/aitbc/node.env
|
||||
|
||||
# Start services
|
||||
sudo systemctl start aitbc-blockchain-node aitbc-blockchain-p2p
|
||||
|
||||
# Verify connection
|
||||
curl http://localhost:8006/health
|
||||
```
|
||||
|
||||
For detailed instructions, see: [Open Island Joining Guide](../docs/hermes/guides/open-island-joining-guide.md)
|
||||
|
||||
## Configuration Files
|
||||
|
||||
### blockchain.env.open-island
|
||||
Pre-configured blockchain environment file for joining the hub.aitbc.bubuit.net open island.
|
||||
|
||||
**Use case:** Quick setup for nodes joining the open test island.
|
||||
|
||||
**Key settings:**
|
||||
- Chain ID: `ait-hub.aitbc.bubuit.net`
|
||||
- P2P peers: `hub.aitbc.bubuit.net:8001`
|
||||
- Block production: disabled (follower node)
|
||||
- RPC port: 8006
|
||||
- P2P port: 8001
|
||||
|
||||
**Setup:**
|
||||
```bash
|
||||
sudo cp /opt/aitbc/examples/blockchain.env.open-island /etc/aitbc/blockchain.env
|
||||
```
|
||||
|
||||
### node.env.open-island
|
||||
Pre-configured node environment file for joining the hub.aitbc.bubuit.net open island.
|
||||
|
||||
**Use case:** Node-specific configuration for open island nodes.
|
||||
|
||||
**Key settings:**
|
||||
- Island ID: `ait-hub.aitbc.bubuit.net-island`
|
||||
- Node role: follower
|
||||
- P2P bind port: 8001
|
||||
|
||||
**Setup:**
|
||||
```bash
|
||||
sudo cp /opt/aitbc/examples/node.env.open-island /etc/aitbc/node.env
|
||||
```
|
||||
|
||||
### blockchain.env.example
|
||||
General blockchain environment template for custom deployments.
|
||||
|
||||
**Use case:** Custom blockchain deployments with specific requirements.
|
||||
|
||||
**Setup:**
|
||||
```bash
|
||||
sudo cp /opt/aitbc/examples/blockchain.env.example /etc/aitbc/blockchain.env
|
||||
# Edit /etc/aitbc/blockchain.env with your custom settings
|
||||
```
|
||||
|
||||
### node.env.example
|
||||
General node environment template for custom deployments.
|
||||
|
||||
**Use case:** Custom node configurations with specific requirements.
|
||||
|
||||
**Setup:**
|
||||
```bash
|
||||
sudo cp /opt/aitbc/examples/node.env.example /etc/aitbc/node.env
|
||||
# Edit /etc/aitbc/node.env with your custom settings
|
||||
```
|
||||
|
||||
### .env.example
|
||||
Legacy environment file template (deprecated).
|
||||
|
||||
**Note:** AITBC now uses `blockchain.env` and `node.env` instead of `.env`. This file is kept for reference only.
|
||||
|
||||
### deploy.env.example
|
||||
Deployment-specific environment template.
|
||||
|
||||
**Use case:** Production deployment configurations.
|
||||
|
||||
## Configuration File Structure
|
||||
|
||||
AITBC uses two main configuration files:
|
||||
|
||||
### /etc/aitbc/blockchain.env
|
||||
Contains blockchain-specific environment variables:
|
||||
- Chain ID and network configuration
|
||||
- RPC and P2P binding settings
|
||||
- Database and Redis connections
|
||||
- Block production settings
|
||||
- Gossip and sync configuration
|
||||
|
||||
### /etc/aitbc/node.env
|
||||
Contains node-specific environment variables:
|
||||
- Node ID and island ID
|
||||
- Node role (genesis/follower)
|
||||
- P2P port configuration
|
||||
- Node-specific settings
|
||||
|
||||
**Important:** AITBC does NOT use `/etc/aitbc/.env`. All configuration should be in `blockchain.env` and `node.env`.
|
||||
|
||||
## Open Island Configuration
|
||||
|
||||
The hub.aitbc.bubuit.net open island is a test environment for AITBC software. Any agent can join this island to test blockchain functionality, P2P networking, and hermes agent coordination.
|
||||
|
||||
**Hub Details:**
|
||||
- Host: hub.aitbc.bubuit.net (95.216.198.140)
|
||||
- Chain ID: `ait-hub.aitbc.bubuit.net`
|
||||
- Island ID: `ait-hub.aitbc.bubuit.net-island`
|
||||
- P2P Port: 8001
|
||||
- RPC Port: 8006
|
||||
- Access: Open - no authentication required
|
||||
|
||||
**Quick Setup:**
|
||||
```bash
|
||||
# Clone repository
|
||||
git clone https://gitea.bubuit.net/oib/aitbc.git /opt/aitbc
|
||||
cd /opt/aitbc
|
||||
|
||||
# Install dependencies
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -e cli/
|
||||
pip install -e apps/blockchain-node/
|
||||
|
||||
# Copy open island configuration
|
||||
sudo cp examples/blockchain.env.open-island /etc/aitbc/blockchain.env
|
||||
sudo cp examples/node.env.open-island /etc/aitbc/node.env
|
||||
|
||||
# Create keystore
|
||||
sudo mkdir -p /var/lib/aitbc/keystore
|
||||
echo 'test123' | sudo tee /var/lib/aitbc/keystore/.password
|
||||
sudo chmod 600 /var/lib/aitbc/keystore/.password
|
||||
|
||||
# Start services
|
||||
sudo systemctl start aitbc-blockchain-node aitbc-blockchain-p2p
|
||||
|
||||
# Verify
|
||||
curl http://localhost:8006/health
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Open Island Joining Guide](../docs/hermes/guides/open-island-joining-guide.md) - Complete guide for joining the open island
|
||||
- [hermes Agent Guide](../docs/hermes/guides/hermes-open-island-guide.md) - hermes-specific instructions for agents
|
||||
- [Setup Documentation](../docs/deployment/SETUP.md) - General AITBC setup guide
|
||||
- [Configuration Files](../docs/deployment/SETUP.md#configuration-files) - Detailed configuration file documentation
|
||||
|
||||
## Security Notes
|
||||
|
||||
- **Test Environment:** The open island is for testing only. Do not use for production.
|
||||
- **No Real Assets:** Use test wallets only. No real assets should be used.
|
||||
- **Public Transactions:** All transactions on the open island are public.
|
||||
- **Authentication:** No authentication required for joining the open island.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Connection Issues
|
||||
```bash
|
||||
# Test P2P connectivity
|
||||
nc -zv hub.aitbc.bubuit.net 8001
|
||||
|
||||
# Test RPC connectivity
|
||||
curl http://hub.aitbc.bubuit.net:8006/health
|
||||
```
|
||||
|
||||
### Sync Issues
|
||||
```bash
|
||||
# Check sync status
|
||||
curl http://localhost:8006/rpc/head
|
||||
curl http://hub.aitbc.bubuit.net:8006/rpc/head
|
||||
|
||||
# Force sync
|
||||
curl -X POST http://localhost:8006/rpc/sync \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"peer":"hub.aitbc.bubuit.net:8006"}'
|
||||
```
|
||||
|
||||
### Service Issues
|
||||
```bash
|
||||
# Check service status
|
||||
sudo systemctl status aitbc-blockchain-node
|
||||
sudo systemctl status aitbc-blockchain-p2p
|
||||
|
||||
# View logs
|
||||
sudo journalctl -u aitbc-blockchain-node -f
|
||||
sudo journalctl -u aitbc-blockchain-p2p -f
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
- **Documentation:** `/opt/aitbc/docs/`
|
||||
- **Issues:** https://gitea.bubuit.net/oib/aitbc
|
||||
- **Community:** Join AITBC development discussions
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** 2026-05-26
|
||||
97
examples/blockchain.env.open-island
Normal file
97
examples/blockchain.env.open-island
Normal file
@@ -0,0 +1,97 @@
|
||||
# AITBC Blockchain Configuration for Open Island - hub.aitbc.bubuit.net
|
||||
# Copy this file to /etc/aitbc/blockchain.env to join the open island
|
||||
# This configuration is pre-configured for the hub.aitbc.bubuit.net open island
|
||||
|
||||
# =========================
|
||||
# Chain Configuration
|
||||
# =========================
|
||||
# Chain ID for the open island
|
||||
CHAIN_ID=ait-hub.aitbc.bubuit.net
|
||||
SUPPORTED_CHAINS=ait-hub.aitbc.bubuit.net
|
||||
|
||||
# =========================
|
||||
# RPC Configuration
|
||||
# =========================
|
||||
# RPC binding settings
|
||||
RPC_BIND_HOST=0.0.0.0
|
||||
RPC_BIND_PORT=8006
|
||||
|
||||
# =========================
|
||||
# P2P Configuration
|
||||
# =========================
|
||||
# P2P binding settings
|
||||
p2p_bind_host=0.0.0.0
|
||||
p2p_bind_port=8001
|
||||
|
||||
# P2P node identity (auto-generated, or set manually)
|
||||
p2p_node_id=node-$(cat /proc/sys/kernel/random/uuid | tr -d '-')
|
||||
|
||||
# P2P peers - connect to the open island hub
|
||||
p2p_peers=hub.aitbc.bubuit.net:8001
|
||||
|
||||
# Genesis node for sync
|
||||
genesis_node=hub.aitbc.bubuit.net:8006
|
||||
|
||||
# =========================
|
||||
# Block Production
|
||||
# =========================
|
||||
# Set to false for follower nodes (recommended for open island)
|
||||
ENABLE_BLOCK_PRODUCTION=false
|
||||
|
||||
# Block production chains (only if ENABLE_BLOCK_PRODUCTION=true)
|
||||
BLOCK_PRODUCTION_CHAINS=ait-hub.aitbc.bubuit.net
|
||||
|
||||
# Proposer ID (only if ENABLE_BLOCK_PRODUCTION=true)
|
||||
# PROPOSER_ID=<your-proposer-id>
|
||||
|
||||
# =========================
|
||||
# Gossip Configuration
|
||||
# =========================
|
||||
# Gossip backend
|
||||
gossip_backend=broadcast
|
||||
|
||||
# Gossip broadcast URL (local Redis)
|
||||
GOSSIP_BROADCAST_URL=redis://127.0.0.1:6379
|
||||
|
||||
# =========================
|
||||
# Database Configuration
|
||||
# =========================
|
||||
# Database path
|
||||
db_path=/var/lib/aitbc/data/ait-hub.aitbc.bubuit.net/chain.db
|
||||
|
||||
# =========================
|
||||
# Keystore Configuration
|
||||
# =========================
|
||||
# Keystore path
|
||||
keystore_path=/var/lib/aitbc/keystore
|
||||
|
||||
# Keystore password file
|
||||
keystore_password_file=/var/lib/aitbc/keystore/.password
|
||||
|
||||
# =========================
|
||||
# Mempool Configuration
|
||||
# =========================
|
||||
# Mempool backend
|
||||
MEMPOOL_BACKEND=database
|
||||
|
||||
# Mempool database URL (if using database backend)
|
||||
MEMPOOL_DB_URL=postgresql+psycopg2://aitbc_mempool:aitbc_mempool_password@localhost:5432/aitbc_mempool
|
||||
|
||||
# =========================
|
||||
# Setup Instructions
|
||||
# =========================
|
||||
# 1. Copy this template: sudo cp /opt/aitbc/examples/blockchain.env.open-island /etc/aitbc/blockchain.env
|
||||
# 2. Generate unique p2p_node_id (optional, will be auto-generated if left as-is)
|
||||
# 3. Set ENABLE_BLOCK_PRODUCTION=true only if you want to be a proposer node
|
||||
# 4. Ensure Redis is running: sudo systemctl start redis
|
||||
# 5. Ensure PostgreSQL is running (if using database mempool): sudo systemctl start postgresql
|
||||
# 6. Restart services: sudo systemctl restart aitbc-blockchain-node aitbc-blockchain-p2p
|
||||
# 7. Verify connectivity: curl http://localhost:8006/health
|
||||
# 8. Sync with hub: curl -X POST http://localhost:8006/rpc/sync -H "Content-Type: application/json" -d '{"peer":"hub.aitbc.bubuit.net:8006"}'
|
||||
|
||||
# =========================
|
||||
# Additional Resources
|
||||
# =========================
|
||||
# Open Island Guide: /opt/aitbc/docs/hermes/guides/open-island-joining-guide.md
|
||||
# hermes Agent Guide: /opt/aitbc/docs/hermes/guides/hermes-open-island-guide.md
|
||||
# Setup Documentation: /opt/aitbc/docs/deployment/SETUP.md
|
||||
49
examples/node.env.open-island
Normal file
49
examples/node.env.open-island
Normal file
@@ -0,0 +1,49 @@
|
||||
# AITBC Node Configuration for Open Island - hub.aitbc.bubuit.net
|
||||
# Copy this file to /etc/aitbc/node.env to join the open island
|
||||
# This configuration is pre-configured for the hub.aitbc.bubuit.net open island
|
||||
|
||||
# =========================
|
||||
# Node Identity
|
||||
# =========================
|
||||
# Unique identifier for this node (must be different for each node)
|
||||
# Auto-generate a unique ID for your node
|
||||
NODE_ID=test-node-$(hostname)
|
||||
|
||||
# =========================
|
||||
# Island Configuration
|
||||
# =========================
|
||||
# Island ID for the open island
|
||||
ISLAND_ID=ait-hub.aitbc.bubuit.net-island
|
||||
|
||||
# Chain ID (must match blockchain.env)
|
||||
CHAIN_ID=ait-hub.aitbc.bubuit.net
|
||||
|
||||
# =========================
|
||||
# Node Role
|
||||
# =========================
|
||||
# Node role: follower (recommended for open island nodes)
|
||||
# Set to 'genesis' only if you are running the genesis authority node
|
||||
NODE_ROLE=follower
|
||||
|
||||
# =========================
|
||||
# P2P Configuration
|
||||
# =========================
|
||||
# P2P bind port (must match blockchain.env p2p_bind_port)
|
||||
P2P_BIND_PORT=8001
|
||||
|
||||
# =========================
|
||||
# Setup Instructions
|
||||
# =========================
|
||||
# 1. Copy this template: sudo cp /opt/aitbc/examples/node.env.open-island /etc/aitbc/node.env
|
||||
# 2. Edit NODE_ID to be unique for your node (optional, uses hostname by default)
|
||||
# 3. Keep NODE_ROLE=follower unless you are running a genesis authority node
|
||||
# 4. Ensure P2P_BIND_PORT matches blockchain.env p2p_bind_port
|
||||
# 5. Restart services: sudo systemctl restart aitbc-blockchain-node aitbc-blockchain-p2p
|
||||
# 6. Verify node status: curl http://localhost:8006/rpc/info
|
||||
|
||||
# =========================
|
||||
# Additional Resources
|
||||
# =========================
|
||||
# Open Island Guide: /opt/aitbc/docs/hermes/guides/open-island-joining-guide.md
|
||||
# hermes Agent Guide: /opt/aitbc/docs/hermes/guides/hermes-open-island-guide.md
|
||||
# Setup Documentation: /opt/aitbc/docs/deployment/SETUP.md
|
||||
Reference in New Issue
Block a user