The dependency graph a blocklace induces on hashes: the parent hashes of the block(s) carrying h.
In a hash-unique blocklace this is just the parents of the one block with hash h.
Equations
- CordialMiners.blockDeps L h = {b ∈ L | b.blockHash = h}.biUnion CordialMiners.Block.parents
Instances For
The concrete blocklace ordering: topologically sort the present hashes by the parent graph, with
canonical least-first tie-breaking. As a function of the blocklace it is an Ordering, realized by
the verified topoSort.
Equations
Instances For
The order has no duplicate positions.
Output-validity: every hash in the order is present in the blocklace.
The order is topologically sorted for the parent graph: no parent hash is placed after the hash that depends on it.
Determinism: equal blocklaces give equal orders (the ordering is a pure function).
Completeness: under a strict rank on the parent graph (a parent ranks below its child, e.g. by round), every present hash appears in the order. With blockOrder_subset and blockOrder_nodup, the order lists exactly the present hashes, once each.
A real parent edge becomes a dependency in the induced graph: if child points to parent, then
parent's hash is a dependency of child's hash.
Causal consistency for real parent edges: wherever a block's hash sits in the order, the hash of any block it points to as a parent is never after it. The published order respects the blocklace DAG.