Files
proxmox/rpc-translator-138/PUBLIC_ENDPOINT_UPDATE.md
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

4.3 KiB

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:

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:

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:

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:

# 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

systemctl status nginx

Check Translator Service

systemctl status rpc-translator-138.service

View Logs

# 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.