HMP / docs /schemas /dht_protocol.json
GitHub Action
Sync from GitHub with Git LFS
163043c
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "DHT Protocol Schema",
"type": "object",
"oneOf": [
{ "$ref": "#/definitions/discovery" },
{ "$ref": "#/definitions/peerExchangeRequest" },
{ "$ref": "#/definitions/peerExchangeResponse" }
],
"definitions": {
"interface": {
"type": "object",
"required": ["addr", "nonce", "pow_hash", "difficulty", "datetime"],
"properties": {
"addr": { "type": "string", "pattern": "^(tcp|udp)://.+" },
"nonce": { "type": "integer", "minimum": 0 },
"pow_hash": { "type": "string" },
"difficulty": { "type": "integer", "minimum": 1 },
"datetime": { "type": "string", "format": "date-time" },
"type": {
"type": "string",
"enum": ["localhost", "internet", "yggdrasil", "i2p"],
"pattern": "^(lan:[0-9]{1,3}(\\.[0-9]{1,3}){3})$"
}
}
},
"peer": {
"type": "object",
"required": ["id", "name", "pubkey", "addresses"],
"properties": {
"id": { "type": "string" },
"name": { "type": "string" },
"pubkey": { "type": "string" },
"addresses": {
"type": "array",
"items": { "$ref": "#/definitions/interface" }
}
}
},
"discovery": {
"type": "object",
"required": ["type", "id", "name", "pubkey", "addresses"],
"properties": {
"type": { "const": "DISCOVERY" },
"id": { "type": "string" },
"name": { "type": "string" },
"pubkey": { "type": "string" },
"addresses": {
"type": "array",
"items": { "$ref": "#/definitions/interface" }
}
}
},
"peerExchangeRequest": {
"type": "object",
"required": ["type", "id", "name", "addresses"],
"properties": {
"type": { "const": "PEER_EXCHANGE_REQUEST" },
"id": { "type": "string" },
"name": { "type": "string" },
"addresses": {
"type": "array",
"items": { "$ref": "#/definitions/interface" }
}
}
},
"peerExchangeResponse": {
"type": "array",
"items": { "$ref": "#/definitions/peer" }
}
}
}