Skip to content

v3.10.0 [holonomic substrate]: Deterministic ALM topology — path-independent tree from pure inputs #136

@emooreatx

Description

@emooreatx

Goal (Part 3 of the v3.10.0 holonomic bundle)

Today the ALM tree depends on which `SignedRelayCapacity` ads a planner saw in what order — path-dependent. v3.10.0 makes the topology a pure deterministic function of:

  • current capacity advertisements (signed claims, observable to all peers)
  • current trust graph (Federation trust island state, observable to all peers)
  • current reachability snapshot (Reticulum announce table, observable to all peers in the locality)

Every peer with the same input snapshot arrives at the same tree without leader / consensus.

Why this matters

Path-dependent topology = federation fragments. Two peers with the same inputs but different ordering of receipt build different trees → the federation isn't one federation, it's N split-brain partitions overlaid.

Path-independent topology = federation coherence. Composes with WholenessWitness (#135) — the inputs to the topology function are themselves witness leaves; differences between peers' trees are detected and reconciled via the witness chain.

Spec sketch

```rust
/// Pure deterministic function: given a witness-anchored input snapshot,
/// returns the same ALM topology for every peer.
pub fn compute_alm_topology(
snapshot: &TopologyInputSnapshot,
locality: &LocalityId,
) -> AlmTopology {
// 1. Filter advertisements to those reachable in locality.
// 2. Sort by canonical key (signed_at, peer_id) — deterministic ordering.
// 3. Construct tree by total ordering of capacity × trust × reachability.
// 4. Witness-leaf the output for cross-peer comparison.
}
```

Conformance

Conformance test vectors live in CIRISRegistry CEG 1.1 §T (filed at CIRISRegistry#85 normative absorption). Two implementations of CEG 1.1 §T MUST produce the same byte-exact `AlmTopology` given the same byte-exact `TopologyInputSnapshot`.

Out of scope for this issue

Composes with

Status

Filed as part of v3.10.0 holonomic substrate bundle. Ships interlocked with #134, #135, and the trust-bootstrap issue. See `docs/ROADMAP_TO_V4.md` §"v3.10.0 — the holonomic substrate (four interlocking pieces, one cut)".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions