Skip to content
This page was generated and translated with the assistance of AI. If you spot any inaccuracies, feel free to help improve it. Edit on GitHub

Node Communication Protocol

PRX nodes communicate using an encrypted, authenticated protocol over TCP. This page describes the wire format and message types.

Transport

  • Protocol: TCP with TLS 1.3 (mutual authentication via paired keys)
  • Serialization: Length-prefixed MessagePack frames
  • Compression: Optional LZ4 frame compression

Message Types

TypeDirectionDescription
TaskRequestController -> NodeAssign a task to the node
TaskResultNode -> ControllerReturn task execution result
StatusQueryController -> NodeRequest node status
StatusReportNode -> ControllerReport node health and capacity
HeartbeatBidirectionalKeepalive and latency measurement
CancelController -> NodeCancel a running task

Configuration

toml
[node.protocol]
tls_version = "1.3"
compression = "lz4"  # "lz4" | "none"
max_frame_size_kb = 4096
heartbeat_interval_secs = 15
connection_timeout_secs = 10

Connection Lifecycle

  1. Connect -- TCP connection established
  2. TLS handshake -- mutual authentication with paired keys
  3. Protocol negotiation -- agree on version and compression
  4. Active -- exchange messages
  5. Graceful close -- send disconnect message and close

Released under the Apache-2.0 License.