# Web3Signer Installation Complete ✅

**Date**: 2026-01-05  
**Status**: Web3Signer 25.12.0 Successfully Installed and Running

---

## Installation Summary

✅ **Web3Signer 25.12.0** has been successfully installed, configured, and is running on VMID 107.

### Installation Steps Completed

1. ✅ Downloaded Web3Signer 25.12.0 from GitHub releases
   - File size: 179 MB (187,034,282 bytes)
   - URL: https://github.com/Consensys/web3signer/releases/download/25.12.0/web3signer-25.12.0.tar.gz

2. ✅ Transferred to Proxmox host and extracted to `/opt/web3signer-23.10.0/`

3. ✅ Java 21 installed (required per [Web3Signer documentation](https://docs.web3signer.consensys.net/get-started/install-binaries))

4. ✅ Systemd service configured with `eth1` subcommand
   - Command: `web3signer eth1 --http-listen-port=9000 --http-listen-host=192.168.11.111 --data-path=/opt/web3signer/data`
   - Note: Web3Signer requires `eth1` or `eth2` subcommand

5. ✅ Service running and responding

---

## Configuration

**Service Details:**
- **Container**: VMID 107 (web3signer-rpc-translator)
- **IP Address**: 192.168.11.111
- **Port**: 9000
- **Data Path**: `/opt/web3signer/data`
- **Subcommand**: `eth1` (for Ethereum SECP256k1 signing)
- **Java Version**: OpenJDK 21.0.9

**Systemd Service:**
```ini
[Unit]
Description=Web3Signer
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/web3signer-23.10.0
ExecStart=/opt/web3signer-23.10.0/bin/web3signer --http-listen-port=9000 --http-listen-host=192.168.11.111 --http-host-allowlist=* --data-path=/opt/web3signer/data eth1 --chain-id=138
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=web3signer

[Install]
WantedBy=multi-user.target
```

---

## Verification

**Service Status:**
```bash
systemctl status web3signer
# Should show: Active (running)
```

**Health Check:**
```bash
curl http://192.168.11.111:9000/upcheck
# Should return: OK
```

**View Logs:**
```bash
pct exec 107 -- journalctl -u web3signer -f
```

---

## Important Notes

1. **Subcommand Required**: Web3Signer requires either `eth1` or `eth2` subcommand
   - `eth1`: For Ethereum SECP256k1 signing (used for our RPC translator)
   - `eth2`: For Ethereum 2.0 BLS signing

2. **Signing Keys**: Web3Signer is now running but needs signing keys configured
   - Keys should be added to `/opt/web3signer/data/keystore/`
   - Or configure key management (HashiCorp Vault, Azure Key Vault, AWS KMS)
   - See [Web3Signer Documentation](https://docs.web3signer.consensys.net/) for key configuration

3. **Configuration**: Uses command-line arguments
   - Main options: `--http-listen-port`, `--http-listen-host`, `--http-host-allowlist`, `--data-path`
   - Subcommand: `eth1` (for Ethereum SECP256k1 signing)
   - Eth1 options: `--chain-id=138`
   - Note: YAML config file was removed (not needed when using command-line args)

---

## Next Steps

1. ✅ **Web3Signer installed** - COMPLETE
2. ⏳ **Configure Web3Signer signing keys**
   - Add signing keys to enable transaction signing
   - See Web3Signer documentation for key formats
3. ⏳ **Deploy translator service** to VMIDs 2400-2402
4. ⏳ **Configure translator `.env` files**
5. ⏳ **Test end-to-end functionality**

---

## All Supporting Services Status

| Service | VMID | IP | Status | Health Check |
|---------|------|----|--------|--------------|
| **Redis** | 106 | 192.168.11.110 | ✅ Running | ✅ PONG |
| **Web3Signer** | 107 | 192.168.11.111 | ✅ Running | ✅ OK |
| **Vault** | 108 | 192.168.11.112 | ✅ Running | ✅ Healthy |

---

## References

- [Web3Signer 25.12.0 Release](https://github.com/Consensys/web3signer/releases/tag/25.12.0)
- [Web3Signer Documentation](https://docs.web3signer.consensys.net/)
- [Web3Signer Installation Guide](https://docs.web3signer.consensys.net/get-started/install-binaries)
- Deployment Guide: `DEPLOYMENT.md`
- Complete Tasks Guide: `COMPLETE_ALL_REMAINING_TASKS.md`
