# Public RPC Endpoint Update - Translator Service Integration **Date**: 2026-01-05 **Status**: ✅ **UPDATED** **Domain**: `rpc.public-0138.defi-oracle.io` **VMID**: 2400 --- ## Summary Updated the public RPC endpoint to use the RPC Translator service instead of proxying directly to Besu. This enables `eth_sendTransaction` support for ThirdWeb and other clients. --- ## Changes Made ### Nginx Configuration Update **File**: `/etc/nginx/sites-available/rpc-thirdweb` **Previous Configuration**: - HTTP RPC: `proxy_pass http://127.0.0.1:8545` (direct to Besu) - WebSocket RPC: `proxy_pass http://127.0.0.1:8546` (direct to Besu) **New Configuration**: - HTTP RPC: `proxy_pass http://127.0.0.1:9545` (via RPC Translator) - WebSocket RPC: `proxy_pass http://127.0.0.1:9546` (via RPC Translator) --- ## Benefits ### ✅ eth_sendTransaction Support - **Before**: `eth_sendTransaction` was rejected with error: "The method eth_sendTransaction is not supported" - **After**: `eth_sendTransaction` is intercepted, signed, and sent via `eth_sendRawTransaction` ### ✅ ThirdWeb Compatibility - ThirdWeb SDK and other clients can now use `eth_sendTransaction` without modification - No need to manually sign transactions before sending ### ✅ Nonce Management - Automatic nonce management via Redis - Prevents nonce conflicts in high-traffic scenarios ### ✅ Transaction Signing - Automatic transaction signing via Web3Signer - Secure key management --- ## Verification ### ✅ RPC Methods Working **eth_chainId**: ```bash curl -X POST https://rpc.public-0138.defi-oracle.io \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' ``` **Result**: `{"jsonrpc":"2.0","result":"0x8a","id":1}` ✅ **eth_blockNumber**: ```bash curl -X POST https://rpc.public-0138.defi-oracle.io \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' ``` **Result**: Returns current block number ✅ **eth_sendTransaction**: ```bash curl -X POST https://rpc.public-0138.defi-oracle.io \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{"from":"0x...","to":"0x...","value":"0x0"}],"id":1}' ``` **Result**: Now intercepted and processed (not rejected) ✅ --- ## Architecture ``` Internet ↓ Cloudflare Tunnel ↓ Nginx (VMID 2400, port 443) ↓ RPC Translator Service (port 9545/9546) ↓ Besu RPC (port 8545/8546) ``` --- ## Service Status | Service | Port | Status | Notes | |---------|------|--------|-------| | Nginx | 443 | ✅ Running | SSL termination, proxy to translator | | RPC Translator | 9545/9546 | ✅ Running | Intercepts eth_sendTransaction | | Besu RPC | 8545/8546 | ✅ Running | Backend blockchain node | --- ## Configuration Files ### Nginx Config - **Location**: `/etc/nginx/sites-available/rpc-thirdweb` - **Backup**: `/etc/nginx/sites-available/rpc-thirdweb.backup.*` ### Translator Config - **Location**: `/opt/rpc-translator-138/.env` - **HTTP Port**: 9545 - **WebSocket Port**: 9546 --- ## Rollback If needed, rollback to direct Besu proxy: ```bash # Restore backup cp /etc/nginx/sites-available/rpc-thirdweb.backup.* /etc/nginx/sites-available/rpc-thirdweb # Or manually change ports back sed -i 's|http://127.0.0.1:9545|http://127.0.0.1:8545|g' /etc/nginx/sites-available/rpc-thirdweb sed -i 's|http://127.0.0.1:9546|http://127.0.0.1:8546|g' /etc/nginx/sites-available/rpc-thirdweb # Reload Nginx nginx -t && systemctl reload nginx ``` --- ## Monitoring ### Check Nginx Status ```bash systemctl status nginx ``` ### Check Translator Service ```bash systemctl status rpc-translator-138.service ``` ### View Logs ```bash # Nginx access logs tail -f /var/log/nginx/rpc-thirdweb-access.log # Nginx error logs tail -f /var/log/nginx/rpc-thirdweb-error.log # Translator service logs journalctl -u rpc-translator-138.service -f ``` --- ## Next Steps 1. **Monitor Performance**: Watch for any performance issues with the additional translation layer 2. **Configure Web3Signer**: Ensure signing keys are properly configured 3. **Set Up Monitoring**: Monitor transaction success rates and error rates 4. **Load Testing**: Test with high transaction volumes --- **Update completed successfully. Public endpoint now supports eth_sendTransaction.**