Federation Handshake

The lab handshake introduces two nodes and registers them in the demo registry. This is not a production federation protocol.

Endpoints (lab)

Node info
`/api/v1/node/info`
Handshake
`/api/v1/federation/handshake`
Registry
`/api/v1/federation/nodes`

Sample handshake

{
  "@context": "https://local-loop-io.github.io/projects/loop-protocol/contexts/loop-v0.2.0.jsonld",
  "@type": "NodeHandshake",
  "schema_version": "0.2.0",
  "node_id": "munich.loop",
  "name": "DEMO Munich Node",
  "endpoint": "https://demo-munich.loop/api",
  "capabilities": ["material-registry", "lab-relay"],
  "timestamp": "2025-12-20T10:00:00Z"
}

Federation Handshake (Lab Only)

This document defines a lab-only handshake payload used to introduce two LOOP nodes in a controlled demo environment. It does not represent production federation.

Goals

  • Exchange minimal node metadata.
  • Confirm protocol version compatibility.
  • Establish a lab-only trust acknowledgement.

Handshake request

Schema: schemas/handshake.schema.json (NodeHandshake).

Required fields:

  • node_id (e.g., munich.loop)
  • endpoint (lab API URL)
  • capabilities (string array)
  • timestamp (ISO 8601)

Handshake response

Schema: schemas/handshake.schema.json (NodeHandshakeResponse).

Required fields:

  • status (accepted or rejected)
  • peer_id
  • received_at
  • lab_only: true

Security notes (lab stage)

  • Request signatures are optional placeholders.
  • Mutual TLS and request signing are planned for later TRL stages.
Express interestJoin the public interest list