RPC exposure and security¶
Defaults that protect you¶
- The node binds JSON-RPC to
127.0.0.1:8545. Binding any other address requires--rpc.token-file(bearer token ≥ 16 bytes, compared in constant time); otherwise the node refuses to start. personal,admin,debug,miner,cliqueandengineare not compiled into the RPC server (probed:-32601).- The node holds no user keys: signing RPCs return
unknown account. - Request bodies are capped at 4 MiB; slow clients are bounded by read/write/idle timeouts.
Offering a public wallet endpoint¶
Use the shipped nginx proxy (vps/proxy/nginx-pqwerai-rpc.conf), never the raw port:
sudo apt-get install -y nginx certbot python3-certbot-nginx
sudo cp /opt/pqwerai/current/share/vps/proxy/nginx-pqwerai-rpc.conf /etc/nginx/sites-available/pqwerai-rpc # set server_name
sudo ln -s /etc/nginx/sites-available/pqwerai-rpc /etc/nginx/sites-enabled/ && sudo certbot --nginx -d <rpc host>
| Limit | Value |
|---|---|
| Transport | HTTPS (TLS 1.2+), POST / only |
| Body | 256 KiB at the proxy |
| Rate | 20 requests/s per IP, burst 40; 20 concurrent connections per IP |
| Timeouts | 10 s body, 30 s upstream |
| Logging | access log without bodies |
Methods a public proxy should not forward¶
The operator interfaces — eth_getWork, eth_submitWork, eth_submitHashrate,
g4_submitVote, g4_link, g4_context, pqwerai_peerHealth — are registered on the node. g4_submitVote is
signature-verified and rate-limited, but a public endpoint has no reason to accept validator traffic; validators submit
to their own node. Consider an allowlist of the public methods.
For endpoint users¶
Pin chain ID 77240 and the manifest genesis hash, never send keys or passwords to an endpoint, and do not trust one
endpoint for finality — compare g4_status.finalized_hash across operators or run a node.
Sources at 72057fe3ec: testnet/release/network/PUBLIC_RPC_POLICY.md · testnet/release/vps/INSTALL.md · developers/data/rpc-policy.json
Found a problem? Report a documentation issue · Build testnet-rc1+72057fe3ec