refactor: merge .env.production into central .env and standardize paths
Some checks failed
Documentation Validation / validate-docs (push) Has been cancelled
Systemd Sync / sync-systemd (push) Successful in 4s

- Merge blockchain-node/.env.production into central /opt/aitbc/.env
- Update all blockchain paths to use standardized /var/lib/aitbc/ structure
- Remove separate .env.production file (merged into central config)
- Update systemd services to remove references to .env.production
- Standardize Coordinator API paths and RPC port (8006)
- Add trusted_proposers setting for follower nodes
- Update multi-node workflow to reflect merged configuration
- Use aitbc1genesis as default proposer in central .env
- All services now use single central .env file with standardized paths

This eliminates configuration file duplication and ensures consistent
directory structure across all AITBC services.
This commit is contained in:
aitbc1
2026-03-29 14:39:42 +02:00
parent 2860b0c8c9
commit bb7f592560
5 changed files with 4 additions and 5 deletions

View File

@@ -80,6 +80,7 @@ cp keystore/* /var/lib/aitbc/keystore/
# Update systemd services to use central .env and standard paths # Update systemd services to use central .env and standard paths
# Note: systemd services already reference /opt/aitbc/.env by default # Note: systemd services already reference /opt/aitbc/.env by default
# The separate .env.production file has been merged into central .env
# No need to modify EnvironmentFile as they should use the central .env # No need to modify EnvironmentFile as they should use the central .env
# Just ensure the paths in .env are correct for the standard directory structure # Just ensure the paths in .env are correct for the standard directory structure
@@ -270,11 +271,13 @@ cp /opt/aitbc/.env.aitbc.backup /opt/aitbc/.env # aitbc
### Service Configuration ### Service Configuration
- **Environment File**: All services use `/opt/aitbc/.env` (no separate config files) - **Environment File**: All services use `/opt/aitbc/.env` (merged from .env.production)
- **Virtual Environment**: Central venv at `/opt/aitbc/venv` - **Virtual Environment**: Central venv at `/opt/aitbc/venv`
- **Database Files**: `/var/lib/aitbc/data` - **Database Files**: `/var/lib/aitbc/data`
- **Wallet Credentials**: `/var/lib/aitbc/keystore` - **Wallet Credentials**: `/var/lib/aitbc/keystore`
- **Service Logs**: `/var/log/aitbc/` via journald - **Service Logs**: `/var/log/aitbc/` via journald
- **Standardized Paths**: All paths use `/var/lib/aitbc/` structure
- **No Separate Config Files**: `.env.production` merged into central `.env`
## Troubleshooting ## Troubleshooting

View File

@@ -10,7 +10,6 @@ WorkingDirectory=/opt/aitbc/apps/blockchain-node
EnvironmentFile=/opt/aitbc/.env EnvironmentFile=/opt/aitbc/.env
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/opt/aitbc/venv/bin/python -m aitbc_chain.combined_main ExecStart=/opt/aitbc/venv/bin/python -m aitbc_chain.combined_main
Restart=always Restart=always
RestartSec=5 RestartSec=5

View File

@@ -9,7 +9,6 @@ Group=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node WorkingDirectory=/opt/aitbc/apps/blockchain-node
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/usr/bin/python3 -m aitbc_chain.p2p_network --host ${p2p_bind_host} --port ${p2p_bind_port} --redis ${gossip_broadcast_url} --node-id ${proposer_id} ExecStart=/usr/bin/python3 -m aitbc_chain.p2p_network --host ${p2p_bind_host} --port ${p2p_bind_port} --redis ${gossip_broadcast_url} --node-id ${proposer_id}
Restart=always Restart=always
RestartSec=5 RestartSec=5

View File

@@ -10,7 +10,6 @@ WorkingDirectory=/opt/aitbc/apps/blockchain-node
EnvironmentFile=/opt/aitbc/.env EnvironmentFile=/opt/aitbc/.env
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/usr/bin/python3 -m uvicorn aitbc_chain.app:app --host ${rpc_bind_host} --port ${rpc_bind_port} ExecStart=/usr/bin/python3 -m uvicorn aitbc_chain.app:app --host ${rpc_bind_host} --port ${rpc_bind_port}
Restart=always Restart=always
RestartSec=5 RestartSec=5

View File

@@ -10,7 +10,6 @@ WorkingDirectory=/opt/aitbc/apps/blockchain-node
EnvironmentFile=/opt/aitbc/.env EnvironmentFile=/opt/aitbc/.env
Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin Environment=PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/usr/bin/python3 -m aitbc_chain.chain_sync --redis redis://localhost:6379 --node-id ait18yefwwclgmyu2a74zvv0hj3a3xw6gxsn4akrj963kp069j9xy5ns3kurun --rpc-port 8006 --leader-host 10.1.223.40 --source-host 10.1.223.40 --source-port 8006 --import-host 10.1.223.40 --import-port 8006 ExecStart=/usr/bin/python3 -m aitbc_chain.chain_sync --redis redis://localhost:6379 --node-id ait18yefwwclgmyu2a74zvv0hj3a3xw6gxsn4akrj963kp069j9xy5ns3kurun --rpc-port 8006 --leader-host 10.1.223.40 --source-host 10.1.223.40 --source-port 8006 --import-host 10.1.223.40 --import-port 8006
Restart=always Restart=always
RestartSec=5 RestartSec=5