- 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.
4.3 KiB
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_sendTransactionwas rejected with error: "The method eth_sendTransaction is not supported" - After:
eth_sendTransactionis intercepted, signed, and sent viaeth_sendRawTransaction
✅ ThirdWeb Compatibility
- ThirdWeb SDK and other clients can now use
eth_sendTransactionwithout 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
- Monitor Performance: Watch for any performance issues with the additional translation layer
- Configure Web3Signer: Ensure signing keys are properly configured
- Set Up Monitoring: Monitor transaction success rates and error rates
- Load Testing: Test with high transaction volumes
Update completed successfully. Public endpoint now supports eth_sendTransaction.