Skip to content

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.