Node Identity v1¶
Source schema: doc/schemas/node-identity.v1.schema.json
Machine-readable schema for the persisted local identity of a network-participating Orbiplex Node.
Governing Basis¶
doc/project/40-proposals/014-node-transport-and-discovery-mvp.mddoc/project/50-requirements/requirements-006.mddoc/project/60-solutions/node.md
Project Lineage¶
Requirements¶
Stories¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
Schema version. |
node/id |
yes |
string | Stable Node identifier derived from the public key and persisted across restarts until explicit rotation. In v1 this MUST be node:did:key:z<base58btc(0xed01 \|\| raw_ed25519_public_key)>. |
participant/id |
yes |
string | Stable participation-role identifier for the Node operator. In v1 this MUST be participant:did:key:z<base58btc(0xed01 \|\| raw_ed25519_public_key)>. MVP may share the same underlying Ed25519 fingerprint as node/id, but protocol semantics MUST still treat the two identifiers as distinct roles. |
created-at |
yes |
string | Timestamp when the local identity was first created. |
identity/status |
no |
enum: active |
Local lifecycle state of the identity material. In the MVP runtime only active has semantics; future states such as rotation or retirement are deferred. |
key/alg |
yes |
enum: ed25519 |
Public-key algorithm used to derive node/id, participant/id, and sign role-bound artifacts in the MVP baseline. |
key/public |
yes |
string | Canonical did:key fingerprint payload used by peers to validate signed advertisements and handshakes. In v1 this is the base58btc multibase Ed25519 public-key fingerprint without the node:did:key: prefix. |
key/storage-ref |
yes |
string | Local secret-storage reference to the corresponding private key material. In the MVP baseline this MUST use the local-file: scheme, for example local-file:identity/node-signing-key.v1.json. |
policy_annotations |
no |
object | Optional local annotations that do not change networking semantics. |
| ## Field Semantics |
schema/v¶
- Required:
yes - Shape: const:
1
Schema version.
node/id¶
- Required:
yes - Shape: string
Stable Node identifier derived from the public key and persisted across restarts until explicit rotation. In v1 this MUST be node:did:key:z<base58btc(0xed01 || raw_ed25519_public_key)>.
participant/id¶
- Required:
yes - Shape: string
Stable participation-role identifier for the Node operator. In v1 this MUST be participant:did:key:z<base58btc(0xed01 || raw_ed25519_public_key)>. MVP may share the same underlying Ed25519 fingerprint as node/id, but protocol semantics MUST still treat the two identifiers as distinct roles.
created-at¶
- Required:
yes - Shape: string
Timestamp when the local identity was first created.
identity/status¶
- Required:
no - Shape: enum:
active
Local lifecycle state of the identity material. In the MVP runtime only active has semantics; future states such as rotation or retirement are deferred.
key/alg¶
- Required:
yes - Shape: enum:
ed25519
Public-key algorithm used to derive node/id, participant/id, and sign role-bound artifacts in the MVP baseline.
key/public¶
- Required:
yes - Shape: string
Canonical did:key fingerprint payload used by peers to validate signed advertisements and handshakes. In v1 this is the base58btc multibase Ed25519 public-key fingerprint without the node:did:key: prefix.
key/storage-ref¶
- Required:
yes - Shape: string
Local secret-storage reference to the corresponding private key material. In the MVP baseline this MUST use the local-file: scheme, for example local-file:identity/node-signing-key.v1.json.
policy_annotations¶
- Required:
no - Shape: object
Optional local annotations that do not change networking semantics.