- 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.
175 lines
4.3 KiB
Markdown
175 lines
4.3 KiB
Markdown
# 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.**
|