ノード通信プロトコル
PRX ノードは TCP 上の暗号化・認証済みプロトコルを使用して通信します。このページではワイヤーフォーマットとメッセージタイプについて説明します。
トランスポート
- プロトコル: ペアリングされた鍵による相互認証付き TCP + TLS 1.3
- シリアライゼーション: 長さプレフィックス付き MessagePack フレーム
- 圧縮: オプションの LZ4 フレーム圧縮
メッセージタイプ
| タイプ | 方向 | 説明 |
|---|---|---|
TaskRequest | コントローラー -> ノード | ノードにタスクを割り当て |
TaskResult | ノード -> コントローラー | タスク実行結果を返却 |
StatusQuery | コントローラー -> ノード | ノードのステータスをリクエスト |
StatusReport | ノード -> コントローラー | ノードのヘルスとキャパシティを報告 |
Heartbeat | 双方向 | キープアライブとレイテンシ測定 |
Cancel | コントローラー -> ノード | 実行中のタスクをキャンセル |
設定
toml
[node.protocol]
tls_version = "1.3"
compression = "lz4" # "lz4" | "none"
max_frame_size_kb = 4096
heartbeat_interval_secs = 15
connection_timeout_secs = 10接続ライフサイクル
- 接続 -- TCP 接続を確立
- TLS ハンドシェイク -- ペアリングされた鍵で相互認証
- プロトコルネゴシエーション -- バージョンと圧縮方式に合意
- アクティブ -- メッセージを交換
- グレースフルクローズ -- 切断メッセージを送信して閉じる