Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
961 lines
30 KiB
Markdown
961 lines
30 KiB
Markdown
# Ali's Infrastructure - Complete Reference (ChainID 138)
|
|
|
|
**Last Updated:** December 26, 2024
|
|
**Status:** ✅ Active
|
|
**Network:** ChainID 138 (DeFi Oracle Meta Mainnet)
|
|
**RPC Endpoint:** `http://192.168.11.250:8545` or `https://rpc-core.d-bis.org`
|
|
|
|
---
|
|
|
|
## Table of Contents
|
|
|
|
1. [Executive Summary](#executive-summary)
|
|
2. [Wallet Address](#wallet-address)
|
|
3. [Contract Addresses](#contract-addresses)
|
|
4. [Container Inventory](#container-inventory)
|
|
5. [Infrastructure Architecture](#infrastructure-architecture)
|
|
6. [Network Configuration](#network-configuration)
|
|
7. [Access Control and Authentication](#access-control-and-authentication)
|
|
8. [Container Specifications](#container-specifications)
|
|
9. [Contract Integration](#contract-integration)
|
|
10. [Configuration Files](#configuration-files)
|
|
11. [Deployment Status](#deployment-status)
|
|
12. [Quick Reference](#quick-reference)
|
|
|
|
---
|
|
|
|
## Executive Summary
|
|
|
|
Ali maintains full root access to **4 containers** on ChainID 138 infrastructure:
|
|
|
|
| VMID | Hostname | Role | IP Address | Node | Status |
|
|
|------|----------|------|------------|------|--------|
|
|
| 1504 | `besu-sentry-ali` | Besu Sentry Node | 192.168.11.154 | pve | ✅ Active |
|
|
| 2503 | `besu-rpc-ali-0x8a` | Besu RPC Node (0x8a identity) | 192.168.11.253 | pve | ✅ Active |
|
|
| 2504 | `besu-rpc-ali-0x1` | Besu RPC Node (0x1 identity) | 192.168.11.254 | pve | ✅ Active |
|
|
| 6201 | `firefly-ali-1` | Hyperledger Firefly Node | 192.168.11.67 | pve | ✅ Active |
|
|
|
|
**Access Level:** Full root access to all containers and Proxmox host
|
|
|
|
**Key Features:**
|
|
- ✅ JWT authentication enabled on all RPC containers
|
|
- ✅ Discovery disabled on RPC nodes (MetaMask compatibility)
|
|
- ✅ Full infrastructure control
|
|
- ✅ Integration with all deployed contracts
|
|
|
|
---
|
|
|
|
## Wallet Address
|
|
|
|
### Primary Address
|
|
|
|
**Address:** `0xa55A4B57A91561e9df5a883D4883Bd4b1a7C4882`
|
|
|
|
**Label:** ALI's LEDGER (Genesis Faucet 1)
|
|
|
|
### Genesis Allocation
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Allocation** | 1,000,000,000 ETH |
|
|
| **Allocation (Hex)** | `0x33b2e3c9fd0803ce8000000` |
|
|
| **Network** | ChainID 138 |
|
|
| **Type** | Genesis faucet/pre-funded address |
|
|
| **Status** | ✅ Active |
|
|
|
|
### Configuration References
|
|
|
|
This address is configured as:
|
|
|
|
- **GENESIS_FAUCET_1_ADDRESS** in environment configuration files
|
|
- **GENESIS_DEPLOYER_2** in deployment scripts
|
|
- Referenced in `explorer-monorepo/docs/organized.env`
|
|
|
|
### Usage
|
|
|
|
- Primary wallet for ChainID 138 operations
|
|
- Genesis pre-funded account
|
|
- Used for deployment and operations
|
|
- Configured as one of the genesis faucet addresses
|
|
|
|
---
|
|
|
|
## Contract Addresses
|
|
|
|
All contracts deployed on ChainID 138, organized by category.
|
|
|
|
### Pre-Deployed Contracts (Genesis)
|
|
|
|
These contracts were pre-deployed when ChainID 138 was initialized:
|
|
|
|
| Contract | Address | Status | Purpose |
|
|
|----------|---------|--------|---------|
|
|
| **WETH9** | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | ✅ Pre-deployed | Wrapped Ether v9 |
|
|
| **WETH10** | `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` | ✅ Pre-deployed | Wrapped Ether v10 |
|
|
| **Multicall** | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | ✅ Pre-deployed | Batch contract calls |
|
|
|
|
**Explorer Links:**
|
|
- [WETH9](https://explorer.d-bis.org/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)
|
|
- [WETH10](https://explorer.d-bis.org/address/0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f)
|
|
- [Multicall](https://explorer.d-bis.org/address/0x99b3511a2d315a497c8112c1fdd8d508d4b1e506)
|
|
|
|
---
|
|
|
|
### Oracle Contracts
|
|
|
|
Price feed and oracle infrastructure:
|
|
|
|
| Contract | Address | Status | Purpose |
|
|
|----------|---------|--------|---------|
|
|
| **Oracle Proxy** | `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6` | ✅ Deployed | ⭐ **MetaMask Price Feed** |
|
|
| **Oracle Aggregator** | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | ✅ Deployed | Price feed aggregator |
|
|
| **Price Feed Keeper** | `0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04` | ✅ Deployed | Automated price updates |
|
|
|
|
**Explorer Links:**
|
|
- [Oracle Proxy](https://explorer.d-bis.org/address/0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6)
|
|
- [Oracle Aggregator](https://explorer.d-bis.org/address/0x99b3511a2d315a497c8112c1fdd8d508d4b1e506)
|
|
- [Price Feed Keeper](https://explorer.d-bis.org/address/0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04)
|
|
|
|
**Note:** The Oracle Proxy address (`0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6`) is the primary address used by MetaMask for price feeds.
|
|
|
|
---
|
|
|
|
### CCIP Contracts
|
|
|
|
Cross-Chain Interoperability Protocol contracts:
|
|
|
|
| Contract | Address | Status | Purpose |
|
|
|----------|---------|--------|---------|
|
|
| **CCIP Router** | `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` | ✅ Deployed | Cross-chain message router |
|
|
| **CCIP Sender** | `0x105F8A15b819948a89153505762444Ee9f324684` | ✅ Deployed | Cross-chain message sender |
|
|
|
|
**Explorer Links:**
|
|
- [CCIP Router](https://explorer.d-bis.org/address/0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e)
|
|
- [CCIP Sender](https://explorer.d-bis.org/address/0x105F8A15b819948a89153505762444Ee9f324684)
|
|
|
|
---
|
|
|
|
### Bridge Contracts
|
|
|
|
Cross-chain bridge contracts for WETH tokens:
|
|
|
|
| Contract | Address | Status | Purpose |
|
|
|----------|---------|--------|---------|
|
|
| **CCIPWETH9Bridge** | `0x89dd12025bfCD38A168455A44B400e913ED33BE2` | ✅ Deployed | Bridge for WETH9 |
|
|
| **CCIPWETH10Bridge** | `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` | ✅ Deployed | Bridge for WETH10 |
|
|
|
|
**Explorer Links:**
|
|
- [CCIPWETH9Bridge](https://explorer.d-bis.org/address/0x89dd12025bfCD38A168455A44B400e913ED33BE2)
|
|
- [CCIPWETH10Bridge](https://explorer.d-bis.org/address/0xe0E93247376aa097dB308B92e6Ba36bA015535D0)
|
|
|
|
---
|
|
|
|
### eMoney System Contracts
|
|
|
|
Core eMoney infrastructure contracts:
|
|
|
|
| Contract | Address | Code Size | Status | Purpose |
|
|
|----------|---------|-----------|--------|---------|
|
|
| **TokenFactory138** | `0xEBFb5C60dE5f7C4baae180CA328D3BB39E1a5133` | 3,847 bytes | ✅ Deployed | Token creation factory |
|
|
| **BridgeVault138** | `0x31884f84555210FFB36a19D2471b8eBc7372d0A8` | 3,248 bytes | ✅ Deployed | Bridge vault management |
|
|
| **ComplianceRegistry** | `0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1` | 3,580 bytes | ✅ Deployed | Compliance tracking |
|
|
| **DebtRegistry** | `0x95BC4A997c0670d5DAC64d55cDf3769B53B63C28` | 2,672 bytes | ✅ Deployed | Debt tracking |
|
|
| **PolicyManager** | `0x0C4FD27018130A00762a802f91a72D6a64a60F14` | 3,804 bytes | ✅ Deployed | Policy management |
|
|
| **eMoneyToken Implementation** | `0x0059e237973179146237aB49f1322E8197c22b21` | 10,088 bytes | ✅ Deployed | eMoney token implementation |
|
|
|
|
**Explorer Links:**
|
|
- [TokenFactory138](https://explorer.d-bis.org/address/0xEBFb5C60dE5f7C4baae180CA328D3BB39E1a5133)
|
|
- [BridgeVault138](https://explorer.d-bis.org/address/0x31884f84555210FFB36a19D2471b8eBc7372d0A8)
|
|
- [ComplianceRegistry](https://explorer.d-bis.org/address/0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1)
|
|
- [DebtRegistry](https://explorer.d-bis.org/address/0x95BC4A997c0670d5DAC64d55cDf3769B53B63C28)
|
|
- [PolicyManager](https://explorer.d-bis.org/address/0x0C4FD27018130A00762a802f91a72D6a64a60F14)
|
|
- [eMoneyToken Implementation](https://explorer.d-bis.org/address/0x0059e237973179146237aB49f1322E8197c22b21)
|
|
|
|
---
|
|
|
|
### Compliance & Token Contracts
|
|
|
|
Compliance and token management contracts:
|
|
|
|
| Contract | Address | Code Size | Status | Purpose |
|
|
|----------|---------|-----------|--------|---------|
|
|
| **CompliantUSDT** | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | 6,806 bytes | ✅ Deployed | Compliant USDT token |
|
|
| **CompliantUSDC** | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | 6,806 bytes | ✅ Deployed | Compliant USDC token |
|
|
| **TokenRegistry** | `0x91Efe92229dbf7C5B38D422621300956B55870Fa` | 5,359 bytes | ✅ Deployed | Token registry |
|
|
| **FeeCollector** | `0xF78246eB94c6CB14018E507E60661314E5f4C53f` | 5,084 bytes | ✅ Deployed | Fee collection |
|
|
|
|
**Explorer Links:**
|
|
- [CompliantUSDT](https://explorer.d-bis.org/address/0x93E66202A11B1772E55407B32B44e5Cd8eda7f22)
|
|
- [CompliantUSDC](https://explorer.d-bis.org/address/0xf22258f57794CC8E06237084b353Ab30fFfa640b)
|
|
- [TokenRegistry](https://explorer.d-bis.org/address/0x91Efe92229dbf7C5B38D422621300956B55870Fa)
|
|
- [FeeCollector](https://explorer.d-bis.org/address/0xF78246eB94c6CB14018E507E60661314E5f4C53f)
|
|
|
|
---
|
|
|
|
### Contract Address Quick Reference
|
|
|
|
**All Contracts Summary:**
|
|
|
|
| Category | Count | Key Addresses |
|
|
|----------|-------|---------------|
|
|
| **Genesis** | 3 | WETH9, WETH10, Multicall |
|
|
| **Oracle** | 3 | Oracle Proxy (MetaMask), Aggregator, Keeper |
|
|
| **CCIP** | 2 | Router, Sender |
|
|
| **Bridge** | 2 | WETH9Bridge, WETH10Bridge |
|
|
| **eMoney** | 6 | TokenFactory, BridgeVault, Compliance, Debt, Policy, Token Implementation |
|
|
| **Compliance** | 4 | CompliantUSDT, CompliantUSDC, TokenRegistry, FeeCollector |
|
|
| **Total** | **20** | All contracts |
|
|
|
|
---
|
|
|
|
## Container Inventory
|
|
|
|
Complete list of Ali's containers on ChainID 138 infrastructure:
|
|
|
|
| VMID | Hostname (Current) | Hostname (Old) | Role | IP Address | Node | Memory | CPU | Disk |
|
|
|------|-------------------|----------------|------|------------|------|--------|-----|------|
|
|
| 1504 | `besu-sentry-ali` | `besu-sentry-5` | Besu Sentry Node | 192.168.11.154 | pve | 4GB | 2 cores | 100GB |
|
|
| 2503 | `besu-rpc-ali-0x8a` | `besu-rpc-4` | Besu RPC Node (0x8a) | 192.168.11.253 | pve | 16GB | 4 cores | 200GB |
|
|
| 2504 | `besu-rpc-ali-0x1` | `besu-rpc-4` | Besu RPC Node (0x1) | 192.168.11.254 | pve | 16GB | 4 cores | 200GB |
|
|
| 6201 | `firefly-ali-1` | `firefly-2` | Hyperledger Firefly | 192.168.11.67 | pve | 4GB | 2 cores | 50GB |
|
|
|
|
**Total Resources:**
|
|
- **Total Memory:** 40GB
|
|
- **Total CPU Cores:** 12 cores
|
|
- **Total Disk:** 550GB
|
|
|
|
---
|
|
|
|
## Infrastructure Architecture
|
|
|
|
### Architecture Diagram
|
|
|
|
```mermaid
|
|
flowchart TB
|
|
subgraph ProxmoxNode[Proxmox Node: pve]
|
|
subgraph AliContainers[Ali's Containers]
|
|
Sentry[besu-sentry-ali<br/>VMID: 1504<br/>192.168.11.154]
|
|
RPC8a[besu-rpc-ali-0x8a<br/>VMID: 2503<br/>192.168.11.253]
|
|
RPC01[besu-rpc-ali-0x1<br/>VMID: 2504<br/>192.168.11.254]
|
|
Firefly[firefly-ali-1<br/>VMID: 6201<br/>192.168.11.67]
|
|
end
|
|
end
|
|
|
|
subgraph Blockchain[ChainID 138 Blockchain]
|
|
Contracts[Smart Contracts<br/>Oracle, CCIP, Bridge, eMoney]
|
|
Validators[Validator Nodes]
|
|
end
|
|
|
|
subgraph ExternalServices[External Services]
|
|
MetaMask[MetaMask Wallets]
|
|
dApps[dApps & Services]
|
|
end
|
|
|
|
Sentry -->|P2P Connection| Validators
|
|
RPC8a -->|RPC Access| Contracts
|
|
RPC01 -->|RPC Access| Contracts
|
|
Firefly -->|Blockchain Integration| Contracts
|
|
RPC8a -->|Price Feed| MetaMask
|
|
RPC01 -->|Price Feed| MetaMask
|
|
ExternalServices -->|HTTP/WS| RPC8a
|
|
ExternalServices -->|HTTP/WS| RPC01
|
|
```
|
|
|
|
### Network Topology
|
|
|
|
```mermaid
|
|
graph TB
|
|
subgraph Network192[Network: 192.168.11.0/24]
|
|
subgraph AliInfra[Ali's Infrastructure]
|
|
IP154[192.168.11.154<br/>Besu Sentry]
|
|
IP253[192.168.11.253<br/>Besu RPC 0x8a]
|
|
IP254[192.168.11.254<br/>Besu RPC 0x1]
|
|
IP67[192.168.11.67<br/>Firefly]
|
|
end
|
|
|
|
subgraph OtherNodes[Other ChainID 138 Nodes]
|
|
Validators[Validators<br/>192.168.11.100-104]
|
|
OtherRPC[RPC Nodes<br/>192.168.11.250-252]
|
|
end
|
|
end
|
|
|
|
subgraph Internet[Internet]
|
|
Users[Users & dApps]
|
|
Cloudflare[Cloudflare/CDN]
|
|
end
|
|
|
|
Cloudflare -->|HTTPS/WSS| IP253
|
|
Cloudflare -->|HTTPS/WSS| IP254
|
|
Users -->|Via Cloudflare| IP253
|
|
Users -->|Via Cloudflare| IP254
|
|
IP154 -->|P2P 30303| Validators
|
|
IP253 -->|RPC 8545/8546| Contracts
|
|
IP254 -->|RPC 8545/8546| Contracts
|
|
IP67 -->|Blockchain API| Contracts
|
|
```
|
|
|
|
### Container Relationships
|
|
|
|
```mermaid
|
|
graph LR
|
|
subgraph AliContainers[Ali's Containers]
|
|
Sentry[Besu Sentry<br/>1504]
|
|
RPC8a[Besu RPC 0x8a<br/>2503]
|
|
RPC01[Besu RPC 0x1<br/>2504]
|
|
Firefly[Firefly<br/>6201]
|
|
end
|
|
|
|
subgraph Services[Services & Contracts]
|
|
Oracle[Oracle Contracts]
|
|
CCIP[CCIP Contracts]
|
|
Bridge[Bridge Contracts]
|
|
eMoney[eMoney Contracts]
|
|
end
|
|
|
|
Sentry -->|Discovers Peers| RPC8a
|
|
Sentry -->|Discovers Peers| RPC01
|
|
RPC8a -->|Reads| Oracle
|
|
RPC8a -->|Reads| CCIP
|
|
RPC8a -->|Reads| Bridge
|
|
RPC01 -->|Reads| Oracle
|
|
RPC01 -->|Reads| eMoney
|
|
Firefly -->|Integrates| Oracle
|
|
Firefly -->|Integrates| CCIP
|
|
Firefly -->|Integrates| Bridge
|
|
Firefly -->|Uses| RPC8a
|
|
Firefly -->|Uses| RPC01
|
|
```
|
|
|
|
### Access Control Flow
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
participant User as User/Service
|
|
participant Nginx as Nginx Proxy
|
|
participant JWT as JWT Validator
|
|
participant RPC as RPC Container
|
|
participant Besu as Besu Node
|
|
|
|
User->>Nginx: Request (with JWT token)
|
|
Nginx->>JWT: Validate token
|
|
alt Valid Token
|
|
JWT->>Nginx: Token valid
|
|
Nginx->>RPC: Forward request
|
|
RPC->>Besu: Process RPC call
|
|
Besu->>RPC: Return result
|
|
RPC->>Nginx: Response
|
|
Nginx->>User: Return result
|
|
else Invalid Token
|
|
JWT->>Nginx: Token invalid
|
|
Nginx->>User: 401 Unauthorized
|
|
end
|
|
```
|
|
|
|
### Contract Interaction Diagram
|
|
|
|
```mermaid
|
|
graph TB
|
|
subgraph Containers[Ali's Containers]
|
|
RPC8a[RPC 0x8a<br/>2503]
|
|
RPC01[RPC 0x1<br/>2504]
|
|
Firefly[Firefly<br/>6201]
|
|
end
|
|
|
|
subgraph OracleContracts[Oracle Contracts]
|
|
OracleProxy[Oracle Proxy<br/>0x3304b7...]
|
|
Aggregator[Oracle Aggregator<br/>0x99b351...]
|
|
end
|
|
|
|
subgraph CCIPContracts[CCIP Contracts]
|
|
Router[CCIP Router<br/>0x8078A0...]
|
|
Sender[CCIP Sender<br/>0x105F8A...]
|
|
end
|
|
|
|
subgraph BridgeContracts[Bridge Contracts]
|
|
WETH9Bridge[WETH9Bridge<br/>0x89dd12...]
|
|
WETH10Bridge[WETH10Bridge<br/>0xe0E932...]
|
|
end
|
|
|
|
subgraph eMoneyContracts[eMoney Contracts]
|
|
TokenFactory[TokenFactory<br/>0xEBFb5C...]
|
|
Compliance[Compliance<br/>0xbc54fe...]
|
|
end
|
|
|
|
RPC8a -->|Read Price| OracleProxy
|
|
RPC01 -->|Read Price| OracleProxy
|
|
Firefly -->|Query| OracleProxy
|
|
Firefly -->|Send Messages| Router
|
|
Firefly -->|Bridge Operations| WETH9Bridge
|
|
Firefly -->|Bridge Operations| WETH10Bridge
|
|
Firefly -->|Token Operations| TokenFactory
|
|
Firefly -->|Compliance Check| Compliance
|
|
```
|
|
|
|
---
|
|
|
|
## Network Configuration
|
|
|
|
### IP Address Allocation
|
|
|
|
| Container | IP Address | Subnet | Gateway | DNS |
|
|
|-----------|------------|--------|---------|-----|
|
|
| besu-sentry-ali (1504) | 192.168.11.154 | 192.168.11.0/24 | 192.168.11.1 | 192.168.11.1 |
|
|
| besu-rpc-ali-0x8a (2503) | 192.168.11.253 | 192.168.11.0/24 | 192.168.11.1 | 192.168.11.1 |
|
|
| besu-rpc-ali-0x1 (2504) | 192.168.11.254 | 192.168.11.0/24 | 192.168.11.1 | 192.168.11.1 |
|
|
| firefly-ali-1 (6201) | 192.168.11.67 | 192.168.11.0/24 | 192.168.11.1 | 192.168.11.1 |
|
|
|
|
### Port Mappings
|
|
|
|
| Container | Service | Port | Protocol | Access |
|
|
|-----------|---------|------|----------|--------|
|
|
| besu-sentry-ali (1504) | P2P | 30303 | TCP/UDP | Internal network |
|
|
| besu-sentry-ali (1504) | Metrics | 9545 | TCP | Internal network |
|
|
| besu-rpc-ali-0x8a (2503) | HTTP RPC | 8545 | TCP | Public (via JWT) |
|
|
| besu-rpc-ali-0x8a (2503) | WebSocket RPC | 8546 | TCP | Public (via JWT) |
|
|
| besu-rpc-ali-0x8a (2503) | Metrics | 9545 | TCP | Internal network |
|
|
| besu-rpc-ali-0x1 (2504) | HTTP RPC | 8545 | TCP | Public (via JWT) |
|
|
| besu-rpc-ali-0x1 (2504) | WebSocket RPC | 8546 | TCP | Public (via JWT) |
|
|
| besu-rpc-ali-0x1 (2504) | Metrics | 9545 | TCP | Internal network |
|
|
| firefly-ali-1 (6201) | HTTP API | 5000 | TCP | Internal network |
|
|
| firefly-ali-1 (6201) | WebSocket | 5001 | TCP | Internal network |
|
|
|
|
### Firewall Rules
|
|
|
|
**Inbound Rules:**
|
|
- ✅ P2P (30303): Allow from internal network (192.168.11.0/24)
|
|
- ✅ RPC HTTP (8545): Allow from public (via Nginx/JWT)
|
|
- ✅ RPC WebSocket (8546): Allow from public (via Nginx/JWT)
|
|
- ✅ Metrics (9545): Allow from internal network only
|
|
- ✅ Firefly API (5000-5001): Allow from internal network only
|
|
|
|
**Outbound Rules:**
|
|
- ✅ All outbound: Allow (for blockchain sync and external services)
|
|
|
|
---
|
|
|
|
## Access Control and Authentication
|
|
|
|
### Access Level: Full Root Access
|
|
|
|
Ali has **full root access** to all containers and the Proxmox host, providing:
|
|
|
|
- ✅ SSH access to all containers
|
|
- ✅ Proxmox console access
|
|
- ✅ Container management (start, stop, restart, migrate)
|
|
- ✅ Configuration file access
|
|
- ✅ Key material access
|
|
- ✅ Service management
|
|
- ✅ Network configuration
|
|
- ✅ Full administrative privileges
|
|
|
|
### JWT Authentication
|
|
|
|
All RPC containers (2503, 2504) require JWT authentication:
|
|
|
|
**Configuration:**
|
|
- Token generation: `./scripts/generate-jwt-token-for-container.sh [VMID] [username] [days]`
|
|
- Token format: `Bearer <JWT_TOKEN>`
|
|
- Validation: Nginx with lua-resty-jwt
|
|
- Secret location: `/etc/nginx/jwt_secret` (on each container)
|
|
|
|
**Token Generation Example:**
|
|
```bash
|
|
# Generate token for VMID 2503 (0x8a identity)
|
|
./scripts/generate-jwt-token-for-container.sh 2503 ali-full-access 365
|
|
|
|
# Generate token for VMID 2504 (0x1 identity)
|
|
./scripts/generate-jwt-token-for-container.sh 2504 ali-full-access 365
|
|
```
|
|
|
|
**Using JWT Tokens:**
|
|
```bash
|
|
# HTTP RPC request with JWT
|
|
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
|
|
https://rpc-endpoint.d-bis.org
|
|
```
|
|
|
|
### Access Level Comparison
|
|
|
|
| Feature | Ali | Luis/Putu |
|
|
|---------|-----|-----------|
|
|
| **SSH Access** | ✅ Full | ❌ No |
|
|
| **Proxmox Console** | ✅ Full | ❌ No |
|
|
| **Container Management** | ✅ Full | ❌ No |
|
|
| **Key Material Access** | ✅ Full | ❌ No |
|
|
| **RPC Access** | ✅ Full (JWT) | ✅ Limited (JWT only) |
|
|
| **Configuration Access** | ✅ Full | ❌ No |
|
|
| **Service Management** | ✅ Full | ❌ No |
|
|
|
|
---
|
|
|
|
## Container Specifications
|
|
|
|
### 1. Besu Sentry Node (VMID 1504)
|
|
|
|
**Hostname:** `besu-sentry-ali` (formerly `besu-sentry-5`)
|
|
|
|
**Specifications:**
|
|
- **Memory:** 4GB
|
|
- **CPU:** 2 cores
|
|
- **Disk:** 100GB
|
|
- **IP Address:** 192.168.11.154
|
|
- **Node:** pve
|
|
|
|
**Purpose:**
|
|
- Discovers and connects to validator nodes
|
|
- Provides network connectivity for RPC nodes
|
|
- Acts as network gateway
|
|
- Enables discovery of other blockchain nodes
|
|
|
|
**Configuration:**
|
|
- Discovery: **Enabled**
|
|
- P2P Port: 30303
|
|
- Metrics Port: 9545
|
|
- ChainID: 138
|
|
- Sync Mode: FAST
|
|
|
|
**Access:**
|
|
- Internal network only
|
|
- No public RPC endpoints
|
|
- JWT authentication: N/A (no public access)
|
|
|
|
---
|
|
|
|
### 2. Besu RPC Node - 0x8a Identity (VMID 2503)
|
|
|
|
**Hostname:** `besu-rpc-ali-0x8a` (formerly `besu-rpc-4`)
|
|
|
|
**Specifications:**
|
|
- **Memory:** 16GB
|
|
- **CPU:** 4 cores
|
|
- **Disk:** 200GB
|
|
- **IP Address:** 192.168.11.253
|
|
- **Node:** pve
|
|
|
|
**Purpose:**
|
|
- Provides RPC access with 0x8a identity
|
|
- Serves public RPC requests (with JWT authentication)
|
|
- Reports chainID 0x1 to MetaMask (wallet compatibility)
|
|
- Provides price feed access
|
|
|
|
**Configuration:**
|
|
- Discovery: **Disabled** (prevents mainnet connection)
|
|
- RPC HTTP Port: 8545
|
|
- RPC WebSocket Port: 8546
|
|
- Metrics Port: 9545
|
|
- ChainID: 138 (reports 0x1 to MetaMask)
|
|
- Identity: 0x8a
|
|
|
|
**APIs Enabled:**
|
|
- ETH, NET, WEB3, TXPOOL, QBFT
|
|
- No ADMIN, DEBUG, or TRACE APIs
|
|
|
|
**Access:**
|
|
- Public access via Nginx reverse proxy
|
|
- JWT authentication: ✅ Required
|
|
- CORS: Enabled
|
|
|
|
---
|
|
|
|
### 3. Besu RPC Node - 0x1 Identity (VMID 2504)
|
|
|
|
**Hostname:** `besu-rpc-ali-0x1` (formerly `besu-rpc-4`)
|
|
|
|
**Specifications:**
|
|
- **Memory:** 16GB
|
|
- **CPU:** 4 cores
|
|
- **Disk:** 200GB
|
|
- **IP Address:** 192.168.11.254
|
|
- **Node:** pve
|
|
|
|
**Purpose:**
|
|
- Provides RPC access with 0x1 identity
|
|
- Serves public RPC requests (with JWT authentication)
|
|
- Reports chainID 0x1 to MetaMask (wallet compatibility)
|
|
- Provides price feed access
|
|
|
|
**Configuration:**
|
|
- Discovery: **Disabled** (prevents mainnet connection)
|
|
- RPC HTTP Port: 8545
|
|
- RPC WebSocket Port: 8546
|
|
- Metrics Port: 9545
|
|
- ChainID: 138 (reports 0x1 to MetaMask)
|
|
- Identity: 0x1
|
|
|
|
**APIs Enabled:**
|
|
- ETH, NET, WEB3, TXPOOL, QBFT
|
|
- No ADMIN, DEBUG, or TRACE APIs
|
|
|
|
**Access:**
|
|
- Public access via Nginx reverse proxy
|
|
- JWT authentication: ✅ Required
|
|
- CORS: Enabled
|
|
|
|
**Note:** The 0x1 and 0x8a identities allow different permission levels for MetaMask wallet compatibility.
|
|
|
|
---
|
|
|
|
### 4. Hyperledger Firefly Node (VMID 6201)
|
|
|
|
**Hostname:** `firefly-ali-1` (formerly `firefly-2`)
|
|
|
|
**Specifications:**
|
|
- **Memory:** 4GB
|
|
- **CPU:** 2 cores
|
|
- **Disk:** 50GB
|
|
- **IP Address:** 192.168.11.67
|
|
- **Node:** pve
|
|
|
|
**Purpose:**
|
|
- Hyperledger Firefly workflow orchestration
|
|
- Blockchain integration layer
|
|
- Smart contract interaction
|
|
- Multi-party workflows
|
|
- Token operations
|
|
|
|
**Configuration:**
|
|
- HTTP API Port: 5000
|
|
- WebSocket Port: 5001
|
|
- ChainID: 138
|
|
- RPC Connection: Uses Ali's RPC nodes (2503, 2504)
|
|
|
|
**Access:**
|
|
- Internal network only
|
|
- JWT authentication: ✅ Required
|
|
- Service-to-service communication
|
|
|
|
**Integration:**
|
|
- Connects to ChainID 138 via RPC nodes
|
|
- Interacts with Oracle contracts
|
|
- Uses CCIP for cross-chain operations
|
|
- Integrates with Bridge contracts
|
|
- Manages eMoney system operations
|
|
|
|
---
|
|
|
|
## Contract Integration
|
|
|
|
### Container-to-Contract Mappings
|
|
|
|
| Container | Contracts Used | Purpose |
|
|
|-----------|----------------|---------|
|
|
| **besu-rpc-ali-0x8a (2503)** | Oracle Proxy, Oracle Aggregator, CCIP Router, Bridge Contracts | RPC access for price feeds, cross-chain operations |
|
|
| **besu-rpc-ali-0x1 (2504)** | Oracle Proxy, Oracle Aggregator, eMoney Contracts | RPC access for price feeds, eMoney operations |
|
|
| **firefly-ali-1 (6201)** | All contracts | Workflow orchestration, smart contract interactions |
|
|
|
|
### Service Configuration Examples
|
|
|
|
#### RPC Node Configuration
|
|
|
|
**For Oracle Price Feeds:**
|
|
```bash
|
|
# Environment configuration
|
|
ORACLE_PROXY_ADDRESS=0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6
|
|
ORACLE_AGGREGATOR_ADDRESS=0x99b3511a2d315a497c8112c1fdd8d508d4b1e506
|
|
RPC_URL=http://192.168.11.253:8545
|
|
CHAIN_ID=138
|
|
```
|
|
|
|
#### Firefly Configuration
|
|
|
|
**Contract Addresses:**
|
|
```bash
|
|
# Oracle Contracts
|
|
ORACLE_PROXY=0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6
|
|
ORACLE_AGGREGATOR=0x99b3511a2d315a497c8112c1fdd8d508d4b1e506
|
|
|
|
# CCIP Contracts
|
|
CCIP_ROUTER=0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
|
|
CCIP_SENDER=0x105F8A15b819948a89153505762444Ee9f324684
|
|
|
|
# Bridge Contracts
|
|
WETH9_BRIDGE=0x89dd12025bfCD38A168455A44B400e913ED33BE2
|
|
WETH10_BRIDGE=0xe0E93247376aa097dB308B92e6Ba36bA015535D0
|
|
|
|
# eMoney Contracts
|
|
TOKEN_FACTORY=0xEBFb5C60dE5f7C4baae180CA328D3BB39E1a5133
|
|
COMPLIANCE_REGISTRY=0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1
|
|
|
|
# RPC Configuration
|
|
RPC_URL_138=http://192.168.11.253:8545
|
|
RPC_WS_URL_138=ws://192.168.11.253:8546
|
|
CHAIN_ID=138
|
|
```
|
|
|
|
### Contract Interaction Patterns
|
|
|
|
**1. Oracle Price Feed Query:**
|
|
```javascript
|
|
// Query latest ETH/USD price from Oracle Proxy
|
|
const oracleAddress = "0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6";
|
|
const price = await oracleContract.latestRoundData();
|
|
```
|
|
|
|
**2. CCIP Cross-Chain Message:**
|
|
```javascript
|
|
// Send cross-chain message via CCIP Router
|
|
const routerAddress = "0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e";
|
|
await routerContract.ccipSend(destinationChain, message, { value: fee });
|
|
```
|
|
|
|
**3. Bridge Operation:**
|
|
```javascript
|
|
// Bridge WETH9 via CCIPWETH9Bridge
|
|
const bridgeAddress = "0x89dd12025bfCD38A168455A44B400e913ED33BE2";
|
|
await bridgeContract.bridge(amount, destinationChain);
|
|
```
|
|
|
|
**4. eMoney Token Creation:**
|
|
```javascript
|
|
// Create token via TokenFactory
|
|
const factoryAddress = "0xEBFb5C60dE5f7C4baae180CA328D3BB39E1a5133";
|
|
await tokenFactory.createToken(name, symbol, decimals, complianceData);
|
|
```
|
|
|
|
---
|
|
|
|
## Configuration Files
|
|
|
|
### Besu Configuration Files
|
|
|
|
**Sentry Node (1504):**
|
|
- Config: `/etc/besu/config-sentry.toml`
|
|
- Static Nodes: `/var/lib/besu/static-nodes.json`
|
|
- Permissioned Nodes: `/var/lib/besu/permissions/permissioned-nodes.json`
|
|
|
|
**RPC Node 0x8a (2503):**
|
|
- Config: `/etc/besu/config-rpc-4.toml` or `/etc/besu/config-rpc-ali-0x8a.toml`
|
|
- Static Nodes: `/var/lib/besu/static-nodes.json`
|
|
- Permissioned Nodes: `/var/lib/besu/permissions/permissioned-nodes.json`
|
|
- Nginx Config: `/etc/nginx/sites-available/rpc-ali-0x8a`
|
|
|
|
**RPC Node 0x1 (2504):**
|
|
- Config: `/etc/besu/config-rpc-4.toml` or `/etc/besu/config-rpc-ali-0x1.toml`
|
|
- Static Nodes: `/var/lib/besu/static-nodes.json`
|
|
- Permissioned Nodes: `/var/lib/besu/permissions/permissioned-nodes.json`
|
|
- Nginx Config: `/etc/nginx/sites-available/rpc-ali-0x1`
|
|
|
|
### Firefly Configuration Files
|
|
|
|
**Firefly Node (6201):**
|
|
- Main Config: `/opt/firefly/firefly.yml`
|
|
- Environment: `/opt/firefly/.env`
|
|
- Database: PostgreSQL (internal)
|
|
- Stack Config: `docker-compose.yml`
|
|
|
|
### Deployment Scripts
|
|
|
|
**Main Configuration Script:**
|
|
- Location: `scripts/configure-besu-chain138-nodes.sh`
|
|
- Purpose: Deploy Besu configurations to all nodes
|
|
|
|
**JWT Token Generation:**
|
|
- Location: `scripts/generate-jwt-token-for-container.sh`
|
|
- Usage: `./scripts/generate-jwt-token-for-container.sh [VMID] [username] [days]`
|
|
|
|
**Verification Script:**
|
|
- Location: `scripts/verify-chain138-config.sh`
|
|
- Purpose: Verify configuration deployment
|
|
|
|
### Key Configuration Parameters
|
|
|
|
**Besu RPC Nodes:**
|
|
```toml
|
|
# Discovery (disabled for RPC nodes)
|
|
discovery-enabled=false
|
|
|
|
# RPC APIs
|
|
rpc-http-api=["ETH","NET","WEB3","TXPOOL","QBFT"]
|
|
|
|
# Ports
|
|
rpc-http-port=8545
|
|
rpc-ws-port=8546
|
|
|
|
# ChainID
|
|
network-id=138
|
|
```
|
|
|
|
**JWT Authentication:**
|
|
```nginx
|
|
# Nginx configuration
|
|
location / {
|
|
access_by_lua_block {
|
|
local jwt = require "resty.jwt"
|
|
-- JWT validation logic
|
|
}
|
|
proxy_pass http://127.0.0.1:8545;
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Deployment Status
|
|
|
|
### Container Status
|
|
|
|
| Container | Status | Last Updated | Notes |
|
|
|-----------|--------|--------------|-------|
|
|
| besu-sentry-ali (1504) | ✅ Active | December 26, 2024 | Discovery enabled |
|
|
| besu-rpc-ali-0x8a (2503) | ✅ Active | December 26, 2024 | JWT auth enabled, discovery disabled |
|
|
| besu-rpc-ali-0x1 (2504) | ✅ Active | December 26, 2024 | JWT auth enabled, discovery disabled |
|
|
| firefly-ali-1 (6201) | ✅ Active | December 26, 2024 | Integrated with ChainID 138 |
|
|
|
|
### Contract Deployment Status
|
|
|
|
| Category | Deployed | Verified | Explorer |
|
|
|----------|----------|----------|----------|
|
|
| Genesis Contracts | ✅ 3/3 | ✅ Yes | ✅ Yes |
|
|
| Oracle Contracts | ✅ 3/3 | ✅ Yes | ✅ Yes |
|
|
| CCIP Contracts | ✅ 2/2 | ✅ Yes | ✅ Yes |
|
|
| Bridge Contracts | ✅ 2/2 | ✅ Yes | ✅ Yes |
|
|
| eMoney Contracts | ✅ 6/6 | ✅ Yes | ✅ Yes |
|
|
| Compliance Contracts | ✅ 4/4 | ✅ Yes | ✅ Yes |
|
|
| **Total** | **✅ 20/20** | **✅ Yes** | **✅ Yes** |
|
|
|
|
### Migration Status
|
|
|
|
| Container | Old Hostname | New Hostname | Migration Status |
|
|
|-----------|--------------|--------------|------------------|
|
|
| 1504 | besu-sentry-5 | besu-sentry-ali | ✅ Complete |
|
|
| 2503 | besu-rpc-4 | besu-rpc-ali-0x8a | ✅ Complete |
|
|
| 2504 | besu-rpc-4 | besu-rpc-ali-0x1 | ✅ Complete |
|
|
| 6201 | firefly-2 | firefly-ali-1 | ✅ Complete |
|
|
|
|
All containers have been renamed and are located on the **pve** Proxmox node.
|
|
|
|
---
|
|
|
|
## Quick Reference
|
|
|
|
### Container Quick Access
|
|
|
|
**SSH Access:**
|
|
```bash
|
|
# Sentry Node
|
|
ssh root@192.168.11.154
|
|
|
|
# RPC Node 0x8a
|
|
ssh root@192.168.11.253
|
|
|
|
# RPC Node 0x1
|
|
ssh root@192.168.11.254
|
|
|
|
# Firefly Node
|
|
ssh root@192.168.11.67
|
|
```
|
|
|
|
**Proxmox Access:**
|
|
```bash
|
|
# List containers
|
|
ssh root@192.168.11.10 "pvesh get /nodes/pve/lxc" | grep -E "(1504|2503|2504|6201)"
|
|
|
|
# Container status
|
|
ssh root@192.168.11.10 "pct status 1504"
|
|
ssh root@192.168.11.10 "pct status 2503"
|
|
ssh root@192.168.11.10 "pct status 2504"
|
|
ssh root@192.168.11.10 "pct status 6201"
|
|
```
|
|
|
|
### Contract Address Quick Reference
|
|
|
|
**Most Used Contracts:**
|
|
|
|
| Contract | Address | Usage |
|
|
|----------|---------|-------|
|
|
| **Oracle Proxy** | `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6` | MetaMask price feeds |
|
|
| **CCIP Router** | `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` | Cross-chain messaging |
|
|
| **WETH9** | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | Wrapped Ether |
|
|
| **TokenFactory** | `0xEBFb5C60dE5f7C4baae180CA328D3BB39E1a5133` | Token creation |
|
|
|
|
### RPC Endpoints
|
|
|
|
**Internal RPC (from internal network):**
|
|
- HTTP: `http://192.168.11.253:8545` (0x8a identity)
|
|
- HTTP: `http://192.168.11.254:8545` (0x1 identity)
|
|
- WebSocket: `ws://192.168.11.253:8546` (0x8a identity)
|
|
- WebSocket: `ws://192.168.11.254:8546` (0x1 identity)
|
|
|
|
**Public RPC (via JWT):**
|
|
- Requires JWT token in Authorization header
|
|
- Endpoints configured via Nginx reverse proxy
|
|
- Access controlled via JWT validation
|
|
|
|
### Useful Commands
|
|
|
|
**Check Container Status:**
|
|
```bash
|
|
# Check all Ali containers
|
|
for vmid in 1504 2503 2504 6201; do
|
|
echo "=== VMID $vmid ==="
|
|
ssh root@192.168.11.10 "pct status $vmid"
|
|
done
|
|
```
|
|
|
|
**Generate JWT Token:**
|
|
```bash
|
|
# For RPC node 2503 (0x8a)
|
|
./scripts/generate-jwt-token-for-container.sh 2503 ali-full-access 365
|
|
|
|
# For RPC node 2504 (0x1)
|
|
./scripts/generate-jwt-token-for-container.sh 2504 ali-full-access 365
|
|
```
|
|
|
|
**Test RPC Connection:**
|
|
```bash
|
|
# Test from internal network
|
|
curl -X POST http://192.168.11.253:8545 \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
|
```
|
|
|
|
**Check Contract on Explorer:**
|
|
```bash
|
|
# Open contract in explorer
|
|
xdg-open "https://explorer.d-bis.org/address/0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6"
|
|
```
|
|
|
|
### Service Scripts
|
|
|
|
**Deployment Scripts:**
|
|
- `scripts/configure-besu-chain138-nodes.sh` - Main configuration
|
|
- `scripts/verify-chain138-config.sh` - Verification
|
|
- `scripts/generate-jwt-token-for-container.sh` - JWT token generation
|
|
- `scripts/setup-new-chain138-containers.sh` - Quick setup
|
|
|
|
**Configuration Scripts:**
|
|
- `scripts/configure-nginx-jwt-auth.sh` - JWT authentication setup
|
|
- `scripts/copy-besu-config-with-nodes.sh` - Config file deployment
|
|
|
|
### Related Documentation
|
|
|
|
- [ChainID 138 Besu Configuration](../../06-besu/CHAIN138_BESU_CONFIGURATION.md)
|
|
- [Contract Addresses Reference](../../11-references/CONTRACT_ADDRESSES_REFERENCE.md)
|
|
- [JWT Authentication Requirements](../../04-configuration/CHAIN138_JWT_AUTH_REQUIREMENTS.md)
|
|
- [Missing Containers List](../../03-deployment/MISSING_CONTAINERS_LIST.md)
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
This document provides a comprehensive reference for Ali's infrastructure on ChainID 138, including:
|
|
|
|
- ✅ **4 Containers** with full specifications
|
|
- ✅ **20 Smart Contracts** organized by category
|
|
- ✅ **1 Primary Wallet** address with genesis allocation
|
|
- ✅ **Complete Network Configuration** with IP addresses and ports
|
|
- ✅ **Access Control** details with JWT authentication
|
|
- ✅ **Contract Integration** patterns and examples
|
|
- ✅ **Visual Diagrams** showing architecture and relationships
|
|
- ✅ **Quick Reference** tables and commands
|
|
|
|
All infrastructure is active and operational on ChainID 138 (DeFi Oracle Meta Mainnet).
|
|
|
|
---
|
|
|
|
**Last Updated:** December 26, 2024
|
|
**Document Version:** 1.0
|
|
**Status:** ✅ Complete
|
|
|