deploy / fetch (push) Successful in 17s
deploy / deploy-miner (1, quadbrat.hanzalova.internal, bob.hanzalova.internal) (push) Has been skipped
deploy / deploy-node (bob.hanzalova.internal, 0x134e73f06fa9bdb1dbfa909e149c563f5860ceb71a0e7307918f7033970edf59, benjy.hanzalova.internal quadbrat.hanzalova.internal, --public-addr /dns4/nh.thgttg.com/tcp/30333, --rpc-external --rpc-methods safe --rpc-cors all… (push) Failing after 31s
deploy / deploy-miner (1, benjy.hanzalova.internal, bob.hanzalova.internal) (push) Has been skipped
deploy / deploy-metrics (push) Has been skipped
Substrate binds JSON-RPC to loopback and makes opening it deliberately awkward, which is correct for a validator. rpc_expose in the node matrix takes the complete flag string; empty keeps it on loopback. --rpc-methods safe is the load-bearing flag. It permits every state read and author_submitExtrinsic (signed, so no key exposure) while blocking author_rotateKeys, system_addReservedPeer and the rest. --rpc-methods auto happens to downgrade once listening externally, but relying on that makes the safety depend on a flag nobody wrote down. The firewalld rich rule is scoped to the node's own /16, derived from its own resolved address at deploy time -- so no subnet literal enters this repo and the rule follows the host between sites. Loopback is whitelisted from rate limiting because the arena exporter runs beside the node and makes ~4 calls every 2s, which is 120/min -- enough to throttle itself against a naive limit. validate now asserts the bind matches intent in both directions: nothing listening while rpc_expose is set is a failure, and loopback-only is reported as configuration rather than silence.
11 lines
452 B
XML
11 lines
452 B
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<service>
|
|
<short>quantus-node-rpc</short>
|
|
<description>Quantus node JSON-RPC (HTTP and WebSocket on one port).
|
|
Unauthenticated: anyone who can reach it can read all chain state and submit
|
|
signed extrinsics. Opened only by a firewalld rich rule scoped to the site
|
|
subnet, never added to the zone outright, and never reachable from the
|
|
WAN.</description>
|
|
<port protocol="tcp" port="9944"/>
|
|
</service>
|