HMP / docs /schemas /dht_protocol.json
GitHub Action
Sync from GitHub with Git LFS
cc036f3
Raw
History Blame
4.57 kB
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://hypercortex.org/schemas/dht_protocol.json",
"title": "DHT Protocol Schema",
"description": "Schema for DISCOVERY and PEER_EXCHANGE messages in the HyperCortex Mesh DHT layer.",
"schema_version": "4.2",
"type": "object",
"oneOf": [
{ "$ref": "#/definitions/discovery" },
{ "$ref": "#/definitions/peerExchangeRequest" },
{ "$ref": "#/definitions/peerExchangeResponse" }
],
"definitions": {
"interface": {
"type": "object",
"required": ["addr", "nonce", "pow_hash", "difficulty", "datetime", "type"],
"properties": {
"addr": {
"type": "string",
"pattern": "^(tcp|udp)://.+",
"description": "Full address of the peer (transport://host:port)."
},
"nonce": {
"type": "integer",
"minimum": 0,
"description": "Proof-of-Work nonce."
},
"pow_hash": {
"type": "string",
"description": "Proof-of-Work SHA256 hash result."
},
"difficulty": {
"type": "integer",
"minimum": 1,
"description": "Difficulty level of the Proof-of-Work."
},
"datetime": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the address was last validated."
},
"type": {
"type": "string",
"description": "Interface type: internet, localhost, or private network.",
"pattern": "^(localhost|internet|yggdrasil|i2p|lan:[0-9]{1,3}(\\.[0-9]{1,3}){3})$"
}
},
"additionalProperties": false
},
"peer": {
"type": "object",
"required": ["id", "name", "pubkey", "addresses", "signature", "sig_algo", "version"],
"properties": {
"version": {
"type": "string",
"description": "Version of this peer record format.",
"default": "1.0"
},
"id": {
"type": "string",
"description": "Peer's decentralized identifier (DID)."
},
"name": {
"type": "string",
"description": "Human-readable name of the peer."
},
"pubkey": {
"type": "string",
"description": "Base58-encoded Ed25519 public key."
},
"addresses": {
"type": "array",
"items": { "$ref": "#/definitions/interface" },
"description": "List of network interfaces associated with this peer."
},
"signature": {
"type": "string",
"description": "Base64URL-encoded Ed25519 signature of this record."
},
"sig_algo": {
"type": "string",
"enum": ["ed25519"],
"description": "Signature algorithm used for signing the record."
}
},
"additionalProperties": false
},
"discovery": {
"type": "object",
"required": ["type", "version", "id", "name", "pubkey", "addresses", "signature", "sig_algo"],
"properties": {
"type": { "const": "DISCOVERY" },
"version": {
"type": "string",
"description": "Version of the DISCOVERY message format.",
"default": "1.0"
},
"id": { "type": "string" },
"name": { "type": "string" },
"pubkey": { "type": "string" },
"addresses": {
"type": "array",
"items": { "$ref": "#/definitions/interface" }
},
"signature": { "type": "string" },
"sig_algo": { "type": "string", "enum": ["ed25519"] }
},
"additionalProperties": false
},
"peerExchangeRequest": {
"type": "object",
"required": ["type", "version", "id", "name", "addresses", "signature", "sig_algo"],
"properties": {
"type": { "const": "PEER_EXCHANGE_REQUEST" },
"version": {
"type": "string",
"description": "Version of the PEER_EXCHANGE_REQUEST format.",
"default": "1.0"
},
"id": { "type": "string" },
"name": { "type": "string" },
"addresses": {
"type": "array",
"items": { "$ref": "#/definitions/interface" }
},
"signature": { "type": "string" },
"sig_algo": { "type": "string", "enum": ["ed25519"] }
},
"additionalProperties": false
},
"peerExchangeResponse": {
"type": "array",
"items": { "$ref": "#/definitions/peer" },
"description": "List of peers known to the responding agent."
}
}
}