The open provider protocol gains §11: a device whose describe offers `landscape`
takes the job form of wai.quantum.landscape/1 itself (`{"op", "request"}`) in
estimate and submit, states the job's operations and memory as the extension counts
them, and answers the extension's own answer from result; a request the reader
refuses is `refused` with its sentence and line. No second job form: the client
checks the answer and seals it, naming the provider, its job and its cost.
quantum-landscape §5.4 gives thirteen numbered rules a verifier holds a sealed
answer to from the job alone (the member's id, class, kernels, parity, capacity
and floor, demotion and audit; the program's digest, the seed, the plan, the state's
hash, the replay digest, the priced joules, the verdict against the truth; a
replay's lines, the rows; a provider's members). A job that breaks one is the new
§8.4 reason `landscape_form` (engine::landscape); `wai-quantum verify` also reads the
program and gives an answer whose energy or plan is not the program's as not valid.
- wai-quantum-qpu: `landscape` (plan, run, check, seal); the reference provider
takes landscape jobs on the extension's reference (`--no-landscape`, `--qubits 0`);
the checker holds a provider to the new `landscape` vectors (ten messages, refusals
among them, six jobs with the reference's counts and bits pinned); the schema.
- wai-quantum: `landscape <op> --provider NAME [--dry-run] [--yes]`; verify prints the
form and the program's reading; MCP `run_landscape`, `landscape_estimate` and
`run_landscape_on_provider`.
- the job service: POST /v1/landscape/{run,sweep,compare,replay}, sealed with its key
in a reading child within its bounds, a request naming a provider refused (J002);
MCP `run_landscape`.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1576 lines
46 KiB
JSON
1576 lines
46 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://git.transaction.science/Transaction-Science/open-standards/raw/branch/main/wai/wai-quantum/schemas/landscape.v1.json",
|
|
"title": "wai.quantum.landscape/1",
|
|
"description": "An energy-landscape answer as every host gives it (quantum_landscape; wai-quantum landscape; the browser build): the request, and the result sealed with the host's key. extensions/quantum-landscape.md states what each member means.",
|
|
"type": "object",
|
|
"required": [
|
|
"request",
|
|
"result"
|
|
],
|
|
"properties": {
|
|
"request": {
|
|
"type": "object",
|
|
"description": "The job's request, as given."
|
|
},
|
|
"result": {
|
|
"$ref": "#/$defs/result"
|
|
}
|
|
},
|
|
"$defs": {
|
|
"result": {
|
|
"description": "A run, a temperature sweep, a comparison or a replay, with its receipt where it has one.",
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/run"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/sweep"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/compare"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/replay"
|
|
}
|
|
]
|
|
},
|
|
"run": {
|
|
"type": "object",
|
|
"required": [
|
|
"protocol",
|
|
"label",
|
|
"member",
|
|
"program_digest",
|
|
"variables",
|
|
"pairs",
|
|
"seed",
|
|
"mode",
|
|
"mode_words",
|
|
"temperature",
|
|
"temperature_from",
|
|
"restarts",
|
|
"sweeps",
|
|
"state",
|
|
"groups",
|
|
"energy",
|
|
"truth",
|
|
"reached",
|
|
"declared",
|
|
"warnings",
|
|
"checks",
|
|
"verdict",
|
|
"summary",
|
|
"work",
|
|
"joules",
|
|
"state_hash",
|
|
"replay"
|
|
],
|
|
"properties": {
|
|
"engine": {
|
|
"type": "object",
|
|
"description": "The engine that made the result: the wai-quantum crate's name and version.",
|
|
"required": [
|
|
"name",
|
|
"version"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"const": "wai-quantum"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"schema": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"protocol": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"description": "What this run is, as the member that ran it says it."
|
|
},
|
|
"receipt": {
|
|
"type": "object",
|
|
"description": "The receipt: an Ed25519 signature over the request and this result (wai.quantum.receipt/2)."
|
|
},
|
|
"member": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"class",
|
|
"kernel",
|
|
"parity"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "The member that ran it: cpu:reference, gpu:..., fpga:..."
|
|
},
|
|
"class": {
|
|
"type": "string",
|
|
"description": "A class of the fabric: cpu, gpu, fpga."
|
|
},
|
|
"kernel": {
|
|
"enum": [
|
|
"wai.quantum.landscape/settle",
|
|
"wai.quantum.landscape/sample"
|
|
]
|
|
},
|
|
"parity": {
|
|
"enum": [
|
|
"reference",
|
|
"bit-exact",
|
|
"statistical",
|
|
"uncertified"
|
|
],
|
|
"description": "What the member has earned for this kernel."
|
|
},
|
|
"demoted": {
|
|
"description": "Why the host holds the member at uncertified for both kernels (extensions/quantum-landscape.md §7.3): its audit found a kernel graded bit-exact giving other bits than the reference's, or the host cannot keep its demotions. Absent otherwise.",
|
|
"type": "string"
|
|
},
|
|
"capacity": {
|
|
"description": "The capacity the member declares, which its parity holds within and past which the host runs it on nothing (extensions/quantum-landscape.md §5); absent where none is declared, as from the reference.",
|
|
"type": "object",
|
|
"properties": {
|
|
"cells": {
|
|
"type": "integer"
|
|
},
|
|
"couplings": {
|
|
"type": "integer"
|
|
},
|
|
"at_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"above_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"table_entries": {
|
|
"type": "integer"
|
|
},
|
|
"uncertain_span": {
|
|
"type": "integer"
|
|
},
|
|
"sweeps": {
|
|
"type": "integer"
|
|
},
|
|
"chains_per_call": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"program_digest": {
|
|
"type": "string",
|
|
"description": "BLAKE3 of the program's text."
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"about": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"item": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"expect": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"works",
|
|
"fails"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"variables": {
|
|
"type": "integer"
|
|
},
|
|
"pairs": {
|
|
"type": "integer"
|
|
},
|
|
"seed": {
|
|
"type": "string",
|
|
"description": "The seed, as a decimal string: all 64 bits survive."
|
|
},
|
|
"mode": {
|
|
"enum": [
|
|
"settle",
|
|
"quench",
|
|
"sample"
|
|
]
|
|
},
|
|
"mode_words": {
|
|
"type": "string"
|
|
},
|
|
"temperature": {
|
|
"type": "number"
|
|
},
|
|
"temperature_from": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"landscape",
|
|
"program",
|
|
"request"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"restarts": {
|
|
"type": "integer"
|
|
},
|
|
"sweeps": {
|
|
"type": "integer"
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"description": "The answer: one +, - or 0 a variable."
|
|
},
|
|
"groups": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"items"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"energy": {
|
|
"type": "integer",
|
|
"description": "The state's energy, worked out from the program, not by the member."
|
|
},
|
|
"truth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"arrangements",
|
|
"lowest",
|
|
"at_lowest",
|
|
"at_lowest_passing",
|
|
"example"
|
|
],
|
|
"properties": {
|
|
"arrangements": {
|
|
"type": "integer",
|
|
"description": "Every arrangement was checked: 3 to the number of variables."
|
|
},
|
|
"lowest": {
|
|
"type": "number",
|
|
"description": "The lowest energy any arrangement has."
|
|
},
|
|
"at_lowest": {
|
|
"type": "integer",
|
|
"description": "How many arrangements have it."
|
|
},
|
|
"at_lowest_passing": {
|
|
"description": "How many of those pass all the problem's own checks; null when it has none.",
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"example": {
|
|
"type": "string",
|
|
"description": "One of them, one +, - or 0 a variable."
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"reached": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"declared": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"energy",
|
|
"truth",
|
|
"reached",
|
|
"quantised"
|
|
],
|
|
"properties": {
|
|
"energy": {
|
|
"type": "number"
|
|
},
|
|
"truth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"arrangements",
|
|
"lowest",
|
|
"at_lowest",
|
|
"at_lowest_passing",
|
|
"example"
|
|
],
|
|
"properties": {
|
|
"arrangements": {
|
|
"type": "integer",
|
|
"description": "Every arrangement was checked: 3 to the number of variables."
|
|
},
|
|
"lowest": {
|
|
"type": "number",
|
|
"description": "The lowest energy any arrangement has."
|
|
},
|
|
"at_lowest": {
|
|
"type": "integer",
|
|
"description": "How many arrangements have it."
|
|
},
|
|
"at_lowest_passing": {
|
|
"description": "How many of those pass all the problem's own checks; null when it has none.",
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"example": {
|
|
"type": "string",
|
|
"description": "One of them, one +, - or 0 a variable."
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"reached": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"quantised": {
|
|
"type": "object",
|
|
"required": [
|
|
"scale",
|
|
"declared",
|
|
"kept",
|
|
"dropped",
|
|
"relative_error",
|
|
"fits"
|
|
],
|
|
"properties": {
|
|
"scale": {
|
|
"type": "number"
|
|
},
|
|
"declared": {
|
|
"type": "integer"
|
|
},
|
|
"kept": {
|
|
"type": "integer"
|
|
},
|
|
"dropped": {
|
|
"type": "integer"
|
|
},
|
|
"relative_error": {
|
|
"type": "number"
|
|
},
|
|
"fits": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"warnings": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"code",
|
|
"line",
|
|
"text"
|
|
],
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"line": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"checks": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"kind",
|
|
"passed",
|
|
"detail"
|
|
],
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string"
|
|
},
|
|
"passed": {
|
|
"type": "boolean"
|
|
},
|
|
"detail": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"verdict": {
|
|
"enum": [
|
|
"solved",
|
|
"missed",
|
|
"failed",
|
|
"unchecked"
|
|
]
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
},
|
|
"work": {
|
|
"type": "object",
|
|
"required": [
|
|
"sweeps",
|
|
"accumulates",
|
|
"cell_updates",
|
|
"draws",
|
|
"ended",
|
|
"rests"
|
|
],
|
|
"properties": {
|
|
"sweeps": {
|
|
"type": "integer"
|
|
},
|
|
"accumulates": {
|
|
"type": "integer"
|
|
},
|
|
"cell_updates": {
|
|
"type": "integer"
|
|
},
|
|
"draws": {
|
|
"type": "integer"
|
|
},
|
|
"ended": {
|
|
"type": "string"
|
|
},
|
|
"rests": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"joules": {
|
|
"type": "object",
|
|
"description": "How the run's energy in joules is stated: priced, and a meter's reading beside it where a member has one.",
|
|
"required": [
|
|
"kind",
|
|
"class",
|
|
"describes",
|
|
"line",
|
|
"rate_pj_per_accumulate",
|
|
"rate_source",
|
|
"pj",
|
|
"published_add",
|
|
"left_out",
|
|
"metered"
|
|
],
|
|
"properties": {
|
|
"kind": {
|
|
"const": "priced"
|
|
},
|
|
"class": {
|
|
"const": "ModelBased"
|
|
},
|
|
"describes": {
|
|
"type": "string",
|
|
"description": "What the priced figure says the cost of: the board its rate was read from, not the machine that ran the job."
|
|
},
|
|
"line": {
|
|
"type": "string"
|
|
},
|
|
"rate_pj_per_accumulate": {
|
|
"type": "number"
|
|
},
|
|
"rate_source": {
|
|
"type": "string"
|
|
},
|
|
"pj": {
|
|
"type": "number"
|
|
},
|
|
"published_add": {
|
|
"type": "object",
|
|
"required": [
|
|
"class",
|
|
"rate_pj_per_accumulate",
|
|
"source",
|
|
"pj",
|
|
"line"
|
|
],
|
|
"properties": {
|
|
"class": {
|
|
"const": "Estimator"
|
|
},
|
|
"rate_pj_per_accumulate": {
|
|
"type": "number"
|
|
},
|
|
"source": {
|
|
"type": "string"
|
|
},
|
|
"pj": {
|
|
"type": "number"
|
|
},
|
|
"line": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"description": "For scale: a published per-operation figure, the same count at its rate. It models no processor."
|
|
},
|
|
"left_out": {
|
|
"type": "object",
|
|
"required": [
|
|
"board_watts",
|
|
"board_hz",
|
|
"clocks_at_least",
|
|
"pj",
|
|
"line"
|
|
],
|
|
"properties": {
|
|
"board_watts": {
|
|
"type": "number"
|
|
},
|
|
"board_hz": {
|
|
"type": "number"
|
|
},
|
|
"clocks_at_least": {
|
|
"type": "integer"
|
|
},
|
|
"pj": {
|
|
"type": "number"
|
|
},
|
|
"line": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"metered": {
|
|
"description": "A reading from a meter on the member (extensions/energy-measurement.md; extensions/quantum-landscape.md §4.4); null where there is none or the run has none.",
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"joules_micro",
|
|
"window_us",
|
|
"class",
|
|
"scope"
|
|
],
|
|
"properties": {
|
|
"joules_micro": {
|
|
"type": "integer",
|
|
"description": "The run's calls' figures added up."
|
|
},
|
|
"window_us": {
|
|
"type": "integer",
|
|
"description": "The meter's windows over the run's calls, added up."
|
|
},
|
|
"class": {
|
|
"description": "The acquisition class and the evidence energy-measurement asks of it."
|
|
},
|
|
"scope": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "What the figure covers where that is more than this run: a whole rail or board, its idle draw and any other work on it in the windows. Null is this run alone."
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"state_hash": {
|
|
"type": "string",
|
|
"description": "FNV-1a of the state, each cell as the byte s + 1."
|
|
},
|
|
"replay": {
|
|
"type": "string",
|
|
"description": "BLAKE3 of the protocol, the program, the seed, the plan, the state and its energy."
|
|
},
|
|
"audit": {
|
|
"type": "object",
|
|
"description": "What the host's audit ran again on the reference, for an answer from a kernel graded bit-exact (extensions/quantum-landscape.md §7.3): each run's seed with the chains of it checked, or how much of a settle; absent where nothing was audited.",
|
|
"required": [
|
|
"checked"
|
|
],
|
|
"properties": {
|
|
"checked": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"refusals": {
|
|
"type": "array",
|
|
"description": "Members a placing host passed over before one answered, each with why (an uncertified kernel, a declined workload, a failed run or an answer the host's checks refused), in the order they were offered; absent where there was none (extensions/quantum-landscape.md §5).",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"member",
|
|
"why"
|
|
],
|
|
"properties": {
|
|
"member": {
|
|
"type": "string"
|
|
},
|
|
"why": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"provider": {
|
|
"$ref": "#/$defs/provider"
|
|
},
|
|
"job": {
|
|
"$ref": "#/$defs/provider_job"
|
|
},
|
|
"cost": {
|
|
"$ref": "#/$defs/provider_cost"
|
|
}
|
|
}
|
|
},
|
|
"sweep": {
|
|
"type": "object",
|
|
"required": [
|
|
"protocol",
|
|
"label",
|
|
"member",
|
|
"lowest",
|
|
"default_temperature",
|
|
"rows"
|
|
],
|
|
"properties": {
|
|
"engine": {
|
|
"type": "object",
|
|
"description": "The engine that made the result: the wai-quantum crate's name and version.",
|
|
"required": [
|
|
"name",
|
|
"version"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"const": "wai-quantum"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"schema": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"protocol": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"description": "What this run is, as the member that ran it says it."
|
|
},
|
|
"receipt": {
|
|
"type": "object",
|
|
"description": "The receipt: an Ed25519 signature over the request and this result (wai.quantum.receipt/2)."
|
|
},
|
|
"member": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"class",
|
|
"kernels"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"class": {
|
|
"type": "string"
|
|
},
|
|
"kernels": {
|
|
"type": "array",
|
|
"description": "Each kernel the job used, in the order first used, with the parity the host found for it.",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"kernel",
|
|
"parity"
|
|
],
|
|
"properties": {
|
|
"kernel": {
|
|
"enum": [
|
|
"wai.quantum.landscape/settle",
|
|
"wai.quantum.landscape/sample"
|
|
]
|
|
},
|
|
"parity": {
|
|
"enum": [
|
|
"reference",
|
|
"bit-exact",
|
|
"statistical",
|
|
"uncertified"
|
|
],
|
|
"description": "What the member has earned for this kernel."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"demoted": {
|
|
"description": "Why the host holds the member at uncertified for both kernels (extensions/quantum-landscape.md §7.3): its audit found a kernel graded bit-exact giving other bits than the reference's, or the host cannot keep its demotions. Absent otherwise.",
|
|
"type": "string"
|
|
},
|
|
"capacity": {
|
|
"description": "The capacity the member declares, which its parity holds within and past which the host runs it on nothing (extensions/quantum-landscape.md §5); absent where none is declared, as from the reference.",
|
|
"type": "object",
|
|
"properties": {
|
|
"cells": {
|
|
"type": "integer"
|
|
},
|
|
"couplings": {
|
|
"type": "integer"
|
|
},
|
|
"at_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"above_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"table_entries": {
|
|
"type": "integer"
|
|
},
|
|
"uncertain_span": {
|
|
"type": "integer"
|
|
},
|
|
"sweeps": {
|
|
"type": "integer"
|
|
},
|
|
"chains_per_call": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lowest": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"default_temperature": {
|
|
"type": "number"
|
|
},
|
|
"rows": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"temperature",
|
|
"is_default",
|
|
"mode",
|
|
"runs",
|
|
"reached_lowest",
|
|
"passed_checks",
|
|
"best_energy",
|
|
"mean_energy",
|
|
"accumulates_per_run",
|
|
"priced_per_run",
|
|
"left_out_per_run",
|
|
"kernel",
|
|
"parity"
|
|
],
|
|
"properties": {
|
|
"temperature": {
|
|
"type": "number"
|
|
},
|
|
"is_default": {
|
|
"type": "boolean"
|
|
},
|
|
"mode": {
|
|
"type": "string"
|
|
},
|
|
"runs": {
|
|
"type": "integer"
|
|
},
|
|
"reached_lowest": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"passed_checks": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"best_energy": {
|
|
"type": "integer"
|
|
},
|
|
"mean_energy": {
|
|
"type": "number"
|
|
},
|
|
"accumulates_per_run": {
|
|
"type": "integer"
|
|
},
|
|
"priced_per_run": {
|
|
"type": "string",
|
|
"description": "The work alone, priced: a small job prices low (left_out_per_run)."
|
|
},
|
|
"left_out_per_run": {
|
|
"type": "string",
|
|
"description": "The board's own draw over the fewest clocks one run's sweeps take, which priced_per_run leaves out."
|
|
},
|
|
"kernel": {
|
|
"enum": [
|
|
"wai.quantum.landscape/settle",
|
|
"wai.quantum.landscape/sample"
|
|
]
|
|
},
|
|
"parity": {
|
|
"enum": [
|
|
"reference",
|
|
"bit-exact",
|
|
"statistical",
|
|
"uncertified"
|
|
],
|
|
"description": "What the member has earned for this kernel."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"audit": {
|
|
"type": "object",
|
|
"description": "What the host's audit ran again on the reference, for an answer from a kernel graded bit-exact (extensions/quantum-landscape.md §7.3): each run's seed with the chains of it checked, or how much of a settle; absent where nothing was audited.",
|
|
"required": [
|
|
"checked"
|
|
],
|
|
"properties": {
|
|
"checked": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"refusals": {
|
|
"type": "array",
|
|
"description": "Members a placing host passed over before one answered, each with why (an uncertified kernel, a declined workload, a failed run or an answer the host's checks refused), in the order they were offered; absent where there was none (extensions/quantum-landscape.md §5).",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"member",
|
|
"why"
|
|
],
|
|
"properties": {
|
|
"member": {
|
|
"type": "string"
|
|
},
|
|
"why": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"provider": {
|
|
"$ref": "#/$defs/provider"
|
|
},
|
|
"job": {
|
|
"$ref": "#/$defs/provider_job"
|
|
},
|
|
"cost": {
|
|
"$ref": "#/$defs/provider_cost"
|
|
}
|
|
}
|
|
},
|
|
"compare": {
|
|
"type": "object",
|
|
"required": [
|
|
"protocol",
|
|
"label",
|
|
"member",
|
|
"target",
|
|
"target_is_exact",
|
|
"arrangements",
|
|
"rows"
|
|
],
|
|
"properties": {
|
|
"engine": {
|
|
"type": "object",
|
|
"description": "The engine that made the result: the wai-quantum crate's name and version.",
|
|
"required": [
|
|
"name",
|
|
"version"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"const": "wai-quantum"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"schema": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"protocol": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"description": "What this run is, as the member that ran it says it."
|
|
},
|
|
"member": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"class",
|
|
"kernels"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"class": {
|
|
"type": "string"
|
|
},
|
|
"kernels": {
|
|
"type": "array",
|
|
"description": "Each kernel the job used, in the order first used, with the parity the host found for it.",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"kernel",
|
|
"parity"
|
|
],
|
|
"properties": {
|
|
"kernel": {
|
|
"enum": [
|
|
"wai.quantum.landscape/settle",
|
|
"wai.quantum.landscape/sample"
|
|
]
|
|
},
|
|
"parity": {
|
|
"enum": [
|
|
"reference",
|
|
"bit-exact",
|
|
"statistical",
|
|
"uncertified"
|
|
],
|
|
"description": "What the member has earned for this kernel."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"demoted": {
|
|
"description": "Why the host holds the member at uncertified for both kernels (extensions/quantum-landscape.md §7.3): its audit found a kernel graded bit-exact giving other bits than the reference's, or the host cannot keep its demotions. Absent otherwise.",
|
|
"type": "string"
|
|
},
|
|
"capacity": {
|
|
"description": "The capacity the member declares, which its parity holds within and past which the host runs it on nothing (extensions/quantum-landscape.md §5); absent where none is declared, as from the reference.",
|
|
"type": "object",
|
|
"properties": {
|
|
"cells": {
|
|
"type": "integer"
|
|
},
|
|
"couplings": {
|
|
"type": "integer"
|
|
},
|
|
"at_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"above_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"table_entries": {
|
|
"type": "integer"
|
|
},
|
|
"uncertain_span": {
|
|
"type": "integer"
|
|
},
|
|
"sweeps": {
|
|
"type": "integer"
|
|
},
|
|
"chains_per_call": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"receipt": {
|
|
"type": "object",
|
|
"description": "The receipt: an Ed25519 signature over the request and this result (wai.quantum.receipt/2)."
|
|
},
|
|
"target": {
|
|
"type": "integer"
|
|
},
|
|
"target_is_exact": {
|
|
"type": "boolean"
|
|
},
|
|
"arrangements": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rows": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"solver",
|
|
"classical",
|
|
"runs",
|
|
"reached_target",
|
|
"passed_checks",
|
|
"best_energy",
|
|
"operations_per_run",
|
|
"accumulates_per_run",
|
|
"parity"
|
|
],
|
|
"properties": {
|
|
"solver": {
|
|
"type": "string"
|
|
},
|
|
"classical": {
|
|
"type": "boolean"
|
|
},
|
|
"runs": {
|
|
"type": "integer"
|
|
},
|
|
"reached_target": {
|
|
"type": "integer"
|
|
},
|
|
"passed_checks": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"best_energy": {
|
|
"type": "integer"
|
|
},
|
|
"operations_per_run": {
|
|
"type": "integer"
|
|
},
|
|
"accumulates_per_run": {
|
|
"type": "integer"
|
|
},
|
|
"parity": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"reference",
|
|
"bit-exact",
|
|
"statistical",
|
|
"uncertified"
|
|
],
|
|
"description": "What the member has earned for this kernel."
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The member's parity for the sampling kernel; null for a classical method, which ran on no member."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"audit": {
|
|
"type": "object",
|
|
"description": "What the host's audit ran again on the reference, for an answer from a kernel graded bit-exact (extensions/quantum-landscape.md §7.3): each run's seed with the chains of it checked, or how much of a settle; absent where nothing was audited.",
|
|
"required": [
|
|
"checked"
|
|
],
|
|
"properties": {
|
|
"checked": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"refusals": {
|
|
"type": "array",
|
|
"description": "Members a placing host passed over before one answered, each with why (an uncertified kernel, a declined workload, a failed run or an answer the host's checks refused), in the order they were offered; absent where there was none (extensions/quantum-landscape.md §5).",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"member",
|
|
"why"
|
|
],
|
|
"properties": {
|
|
"member": {
|
|
"type": "string"
|
|
},
|
|
"why": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"provider": {
|
|
"$ref": "#/$defs/provider"
|
|
},
|
|
"job": {
|
|
"$ref": "#/$defs/provider_job"
|
|
},
|
|
"cost": {
|
|
"$ref": "#/$defs/provider_cost"
|
|
}
|
|
}
|
|
},
|
|
"replay": {
|
|
"type": "object",
|
|
"description": "Many seeds, one line each: the seed, a digest of that run's whole answer, the state, its energy, the verdict, the accumulates and the replay digest.",
|
|
"required": [
|
|
"protocol",
|
|
"label",
|
|
"member",
|
|
"seeds",
|
|
"lines"
|
|
],
|
|
"properties": {
|
|
"engine": {
|
|
"type": "object",
|
|
"description": "The engine that made the result: the wai-quantum crate's name and version.",
|
|
"required": [
|
|
"name",
|
|
"version"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"const": "wai-quantum"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"schema": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"protocol": {
|
|
"const": "wai.quantum.landscape/1"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"receipt": {
|
|
"type": "object",
|
|
"description": "The receipt: an Ed25519 signature over the request and this result (wai.quantum.receipt/2)."
|
|
},
|
|
"member": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"class",
|
|
"kernel",
|
|
"parity"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "The member that ran it: cpu:reference, gpu:..., fpga:..."
|
|
},
|
|
"class": {
|
|
"type": "string",
|
|
"description": "A class of the fabric: cpu, gpu, fpga."
|
|
},
|
|
"kernel": {
|
|
"enum": [
|
|
"wai.quantum.landscape/settle",
|
|
"wai.quantum.landscape/sample"
|
|
]
|
|
},
|
|
"parity": {
|
|
"enum": [
|
|
"reference",
|
|
"bit-exact",
|
|
"statistical",
|
|
"uncertified"
|
|
],
|
|
"description": "What the member has earned for this kernel."
|
|
},
|
|
"demoted": {
|
|
"description": "Why the host holds the member at uncertified for both kernels (extensions/quantum-landscape.md §7.3): its audit found a kernel graded bit-exact giving other bits than the reference's, or the host cannot keep its demotions. Absent otherwise.",
|
|
"type": "string"
|
|
},
|
|
"capacity": {
|
|
"description": "The capacity the member declares, which its parity holds within and past which the host runs it on nothing (extensions/quantum-landscape.md §5); absent where none is declared, as from the reference.",
|
|
"type": "object",
|
|
"properties": {
|
|
"cells": {
|
|
"type": "integer"
|
|
},
|
|
"couplings": {
|
|
"type": "integer"
|
|
},
|
|
"at_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"above_zero": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "integer"
|
|
},
|
|
"field_bound": {
|
|
"type": "integer"
|
|
},
|
|
"cost": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"table_entries": {
|
|
"type": "integer"
|
|
},
|
|
"uncertain_span": {
|
|
"type": "integer"
|
|
},
|
|
"sweeps": {
|
|
"type": "integer"
|
|
},
|
|
"chains_per_call": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seeds": {
|
|
"type": "integer"
|
|
},
|
|
"lines": {
|
|
"type": "string"
|
|
},
|
|
"audit": {
|
|
"type": "object",
|
|
"description": "What the host's audit ran again on the reference, for an answer from a kernel graded bit-exact (extensions/quantum-landscape.md §7.3): each run's seed with the chains of it checked, or how much of a settle; absent where nothing was audited.",
|
|
"required": [
|
|
"checked"
|
|
],
|
|
"properties": {
|
|
"checked": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"refusals": {
|
|
"type": "array",
|
|
"description": "Members a placing host passed over before one answered, each with why (an uncertified kernel, a declined workload, a failed run or an answer the host's checks refused), in the order they were offered; absent where there was none (extensions/quantum-landscape.md §5).",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"member",
|
|
"why"
|
|
],
|
|
"properties": {
|
|
"member": {
|
|
"type": "string"
|
|
},
|
|
"why": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"provider": {
|
|
"$ref": "#/$defs/provider"
|
|
},
|
|
"job": {
|
|
"$ref": "#/$defs/provider_job"
|
|
},
|
|
"cost": {
|
|
"$ref": "#/$defs/provider_cost"
|
|
}
|
|
}
|
|
},
|
|
"provider": {
|
|
"type": "object",
|
|
"description": "A job run on a person's own provider (extensions/quantum-providers.md §11.3): the provider as the client that sealed it names it. Absent on a job run where it was sealed.",
|
|
"required": [
|
|
"name",
|
|
"kind",
|
|
"protocol",
|
|
"device",
|
|
"provenance",
|
|
"describe"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The person's name for the provider: the request's `provider`."
|
|
},
|
|
"kind": {
|
|
"enum": [
|
|
"http",
|
|
"process"
|
|
]
|
|
},
|
|
"protocol": {
|
|
"const": "wai.quantum.provider/1"
|
|
},
|
|
"device": {
|
|
"type": "string",
|
|
"description": "The provider's name for itself and the device's, `provider:device`."
|
|
},
|
|
"provenance": {
|
|
"type": "string",
|
|
"description": "silicon, or simulator or emulator, alone or followed by `:` and the sentence naming it."
|
|
},
|
|
"describe": {
|
|
"type": "string",
|
|
"description": "BLAKE3 of the RFC 8785 text of the provider's describe answer."
|
|
}
|
|
}
|
|
},
|
|
"provider_job": {
|
|
"type": "object",
|
|
"description": "The provider's id for the job, and the status checks before it finished.",
|
|
"required": [
|
|
"id",
|
|
"polls"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"polls": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
}
|
|
},
|
|
"provider_cost": {
|
|
"type": "object",
|
|
"description": "What the run cost, as extensions/quantum-providers.md §8.1 states it: whether it was free, the estimate shown before it was sent, what the provider says it charged, and whether the person confirmed it (true exactly when it was not free).",
|
|
"required": [
|
|
"free",
|
|
"estimate",
|
|
"charged",
|
|
"confirmed"
|
|
],
|
|
"properties": {
|
|
"free": {
|
|
"type": "boolean"
|
|
},
|
|
"estimate": {
|
|
"type": "object"
|
|
},
|
|
"charged": {
|
|
"type": [
|
|
"object",
|
|
"null"
|
|
]
|
|
},
|
|
"confirmed": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|