Skip to content

Interoperability

TamTunnel edited this page Jan 4, 2026 · 1 revision

Interoperability Guide

This guide describes how to build a SpaceComms-compatible node in any programming language.

Implementation Requirements

To interoperate with the SpaceComms reference implementation, a node MUST:

  1. Transport: Support HTTP/2 over TLS 1.3.
  2. Protocol: Implement the v1.0 specification.
  3. Serialization: Parse and generate JSON messages adhering to the schemas.
  4. Handshake: Perform the HELLO exchange and negotiate protocol version.

Minimum Endpoints

Endpoint Description
/spacecomms/v1/messages Main receiver for all protocol messages

Message Examples

1. HELLO (Handshake)

Required to establish a session.

{
  "protocol_version": "1.0",
  "message_id": "msg-hello-001",
  "message_type": "HELLO",
  "payload": {
    "node_name": "Python Implementation Node",
    "capabilities": ["CDM", "OBJECT_STATE"],
    "supported_versions": ["1.0", "1.1"],
    "protocol_version": "1.0"
  }
}

2. CDM_ANNOUNCE

Propagating a Conjunction Data Message.

{
  "protocol_version": "1.0",
  "message_id": "msg-cdm-123",
  "message_type": "CDM_ANNOUNCE",
  "payload": {
    "cdm": {
      "cdm_id": "CDM-2024-TEST",
      "originator": "TEST-PROVIDER",
      "tca": "2024-01-16T12:00:00.000Z",
      "collision_probability": 0.001
    }
  }
}

Interop Test Recipe

  1. Run Reference Node: cargo run -- start --config examples/config.yaml
  2. Point Your Node: Configure your implementation to peer with http://localhost:8080.
  3. Verify Checklist:
    • Handshake Success (HK received)
    • Heartbeat (Periodic pings)
    • CDM Exchange (Bidirectional)

Conformance Levels

Level Role Capabilities
Level 0 Observer Read-only; subscribes to data.
Level 1 Producer/Consumer Originate/forward messages, basic routing.
Level 2 Full Node Full routing logic, policy enforcement, mTLS.

Clone this wiki locally