Zum Inhalt
HALOWERK

Sicherwerk

log chain verify

Recomputes every record hash from a canonical JSON representation of id, sequence, timestamp, previous_hash and payload, then checks that each record points to the hash of the record before it. If a root_hash is supplied, the same computed record hashes are folded into a deterministic binary Merkle tree with the last leaf duplicated on odd levels.

POST https://sicher.halowerk.com/v1/log-chain-verify

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
recordsarrayJaAudit records in chain order.
root_hashstringNeinOptional claimed Merkle root over the computed record hashes.
require_monotonic_sequencebooleanNeinRequire sequence numbers to increase by one.
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "required": [
    "records"
  ],
  "additionalProperties": false,
  "properties": {
    "records": {
      "type": "array",
      "minItems": 1,
      "maxItems": 500,
      "description": "Audit records in chain order.",
      "items": {
        "type": "object",
        "required": [
          "id",
          "sequence",
          "timestamp",
          "previous_hash",
          "payload",
          "hash"
        ],
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Stable event id."
          },
          "sequence": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000000000,
            "description": "Monotonic event position."
          },
          "timestamp": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "Event time as supplied by the log producer."
          },
          "previous_hash": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 64,
                "maxLength": 71
              },
              {
                "type": "null"
              }
            ],
            "description": "Hash of the previous record, or null for the first record."
          },
          "payload": {
            "description": "Event payload to include in the record hash."
          },
          "hash": {
            "type": "string",
            "minLength": 64,
            "maxLength": 71,
            "description": "Claimed SHA-256 hash of this record."
          }
        }
      }
    },
    "root_hash": {
      "type": "string",
      "minLength": 64,
      "maxLength": 71,
      "description": "Optional claimed Merkle root over the computed record hashes."
    },
    "require_monotonic_sequence": {
      "type": "boolean",
      "default": true,
      "description": "Require sequence numbers to increase by one."
    }
  }
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "records": [
    {
      "id": "evt-001",
      "sequence": 1,
      "timestamp": "2026-08-19T09:00:00Z",
      "previous_hash": null,
      "payload": {
        "action": "created",
        "actor": "build-bot",
        "subject": "release-2026.08.19"
      },
      "hash": "7f07223905bb01a5b3f2eda8a61c69280b6e75c938712afcb187bbf2a0d696c4"
    },
    {
      "id": "evt-002",
      "sequence": 2,
      "timestamp": "2026-08-19T09:01:00Z",
      "previous_hash": "7f07223905bb01a5b3f2eda8a61c69280b6e75c938712afcb187bbf2a0d696c4",
      "payload": {
        "action": "approved",
        "actor": "release-manager",
        "subject": "release-2026.08.19"
      },
      "hash": "4584b3d398d3dd075f43d61a2c44991c61d3183c22243582c367cdccb1af664c"
    }
  ],
  "root_hash": "f6e5b0a2eeed0102fcdd3480a6f7a851bb55679f2d3c7e532df3780f46c1b426"
}

Ergebnis & Dokumentation

Veröffentlichtes Ergebnisschema anzeigen
{
  "$ref": "https://sicher.halowerk.com/v1/log-chain-verify/schema#/outputSchema"
}

Veröffentlichtes Ergebnisbeispiel öffnen

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →