# Quick Start Guide - RPC Translator Service

**Date**: 2026-01-04  
**Status**: ✅ Ready for Deployment

---

## Overview

This guide provides the fastest path to deploy the RPC Translator service and its supporting infrastructure.

---

## Step 1: Deploy Supporting Services (LXC Containers)

### On Proxmox Host (r630-01)

```bash
# 1. Navigate to project directory
cd /path/to/proxmox/rpc-translator-138

# 2. Verify node is ready
./verify-node-ready.sh r630-01

# 3. Deploy all supporting services
./deploy-supporting-services.sh r630-01

# 4. Start containers
pct start 106  # Redis
pct start 107  # Web3Signer
pct start 108  # Vault
```

### Configure Services

**Redis (VMID 106):**
```bash
pct enter 106
apt-get update
apt-get install -y redis-server
nano /etc/redis/redis.conf  # Configure as needed
systemctl enable redis-server
systemctl restart redis-server
```

**Web3Signer (VMID 107):**
```bash
pct enter 107
apt-get update
apt-get install -y openjdk-17-jre-headless wget
cd /opt
wget https://artifacts.consensys.net/web3signer/web3signer-23.10.0/web3signer-23.10.0.tar.gz
tar -xzf web3signer-23.10.0.tar.gz
# Configure Web3Signer (see DEPLOYMENT.md)
```

**Vault (VMID 108):**
```bash
pct enter 108
apt-get update
apt-get install -y unzip wget
wget https://releases.hashicorp.com/vault/1.15.0/vault_1.15.0_linux_amd64.zip
unzip vault_1.15.0_linux_amd64.zip
mv vault /usr/local/bin/
# Configure Vault (see DEPLOYMENT.md)
```

---

## Step 2: Verify Supporting Services

```bash
# Test Redis
redis-cli -h 192.168.11.110 ping

# Test Web3Signer
curl http://192.168.11.111:9000/upcheck

# Test Vault
curl http://192.168.11.112:8200/v1/sys/health
```

---

## Step 3: Deploy Translator Service

### On Each Translator VMID (2400, 2401, 2402)

```bash
# 1. SSH to VMID
ssh root@192.168.11.240  # or .241, .242

# 2. Install Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
npm install -g pnpm

# 3. Deploy application
cd /opt
git clone <repository> rpc-translator-138
cd rpc-translator-138
pnpm install --prod
pnpm run build

# 4. Configure environment
cp env.template .env
nano .env  # Update with actual IPs and credentials

# 5. Install systemd service
cp systemd/rpc-translator-138.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable rpc-translator-138.service
systemctl start rpc-translator-138.service
```

---

## Step 4: Verify Translator Service

```bash
# Check service status
systemctl status rpc-translator-138.service

# Test HTTP endpoint
curl http://localhost:9545 -X POST -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

# Test WebSocket (if available)
# Use a WebSocket client to connect to ws://localhost:9546
```

---

## Container Specifications

| Service | VMID | IP | Port | RAM | Disk |
|---------|------|----|------|-----|------|
| Redis | 106 | 192.168.11.110 | 6379 | 512MB | 10GB |
| Web3Signer | 107 | 192.168.11.111 | 9000 | 2048MB | 20GB |
| Vault | 108 | 192.168.11.112 | 8200 | 2048MB | 20GB |

---

## Environment Configuration

Update `.env` file on each translator VMID:

```bash
# Supporting Services
WEB3SIGNER_URL=http://192.168.11.111:9000
REDIS_HOST=192.168.11.110
VAULT_ADDR=http://192.168.11.112:8200

# Besu Upstream (local)
BESU_HTTP_URLS=http://127.0.0.1:8545
BESU_WS_URLS=ws://127.0.0.1:8546
CHAIN_ID=138

# Translator Service
HTTP_PORT=9545
WS_PORT=9546
```

---

## Troubleshooting

**Container won't start:**
- Check logs: `journalctl -u pve-container@106`
- Verify storage: `pvesh get /nodes/r630-01/storage`
- Check resources: `pvesh get /nodes/r630-01/status`

**Service won't connect:**
- Verify firewall rules allow connections
- Check service is running: `systemctl status <service>`
- Test connectivity: `ping <ip>` and `curl <url>`

**For detailed troubleshooting, see:**
- `DEPLOYMENT.md` - Troubleshooting section
- `LXC_DEPLOYMENT.md` - Container-specific troubleshooting

---

## Full Documentation

- **Complete Guide**: `DEPLOYMENT.md`
- **Checklist**: `DEPLOYMENT_CHECKLIST.md`
- **LXC Guide**: `LXC_DEPLOYMENT.md`
- **VMID Allocation**: `VMID_ALLOCATION.md`
- **Status**: `DEPLOYMENT_STATUS.md`

---

## Support

For issues or questions:
1. Check troubleshooting sections in documentation
2. Review deployment logs
3. Verify all prerequisites are met
4. Consult detailed guides for step-by-step instructions
