Genesis is a pivot, public routing is name-agnostic, and five issues the fake registry was hiding #32

Merged
jschoubben merged 19 commits from design/bootstrap-is-a-pivot into main 2026-09-11 19:56:50 +00:00
2 changed files with 6 additions and 6 deletions
Showing only changes of commit 5852b35ab9 - Show all commits
@@ -7,7 +7,7 @@ reconstructed: false
extends: 0007-connectivity.md extends: 0007-connectivity.md
--- ---
# 56. Public routing is name-agnostic, its names are resolved inside the mesh, and an internal authority can certify them # 66. Public routing is name-agnostic, its names are resolved inside the mesh, and an internal authority can certify them
## Context ## Context
+5 -5
View File
@@ -16,7 +16,7 @@ decisions:
- 02-DECISIONS/0004-a-node-and-how-it-joins.md - 02-DECISIONS/0004-a-node-and-how-it-joins.md
- 02-DECISIONS/0007-connectivity.md - 02-DECISIONS/0007-connectivity.md
- 02-DECISIONS/0006-the-substrate-and-the-control-plane.md - 02-DECISIONS/0006-the-substrate-and-the-control-plane.md
- 02-DECISIONS/0056-public-routing-is-name-agnostic.md - 02-DECISIONS/0066-public-routing-is-name-agnostic.md
--- ---
# Connectivity # Connectivity
@@ -363,7 +363,7 @@ that serves it, mesh-wide, by the same mechanism that writes the node names. It
mesh, not chosen by a module*, for the same reason the node names are: a module listing the routes mesh, not chosen by a module*, for the same reason the node names are: a module listing the routes
would go stale the day one changes. The mesh propagates the names it was told to serve and still would go stale the day one changes. The mesh propagates the names it was told to serve and still
knows nothing about what they mean knows nothing about what they mean
([ADR 0056](../../02-DECISIONS/0056-public-routing-is-name-agnostic.md)). ([ADR 0066](../../02-DECISIONS/0066-public-routing-is-name-agnostic.md)).
## 3 — Exposure ## 3 — Exposure
@@ -430,7 +430,7 @@ module.
domain into a module's label, so the composition is done by a per-node override — which reproduces domain into a module's label, so the composition is done by a per-node override — which reproduces
exactly the per-module cost it is meant to remove. The design is the composition; the override is a exactly the per-module cost it is meant to remove. The design is the composition; the override is a
stopgap until the manifest layer can carry a label and a domain separately stopgap until the manifest layer can carry a label and a domain separately
([ADR 0056](../../02-DECISIONS/0056-public-routing-is-name-agnostic.md)). ([ADR 0066](../../02-DECISIONS/0066-public-routing-is-name-agnostic.md)).
## 4 — Filtering ## 4 — Filtering
@@ -598,7 +598,7 @@ once that name is in internal resolution; a public authority is handed that depe
DNS, and an internal one has to be handed it by the mesh. *Checked by a handshake to a routed name DNS, and an internal one has to be handed it by the mesh. *Checked by a handshake to a routed name
that verifies against the internal root and nothing else — which cannot succeed unless the issuer that verifies against the internal root and nothing else — which cannot succeed unless the issuer
first reached the name to certify it* first reached the name to certify it*
([ADR 0056](../../02-DECISIONS/0056-public-routing-is-name-agnostic.md)). ([ADR 0066](../../02-DECISIONS/0066-public-routing-is-name-agnostic.md)).
## What this removes ## What this removes
@@ -634,7 +634,7 @@ The list is worth having in one place, because it is most of the argument:
- **Reporting declared-versus-observed.** ADR 0007 makes the disagreement detectable and does not - **Reporting declared-versus-observed.** ADR 0007 makes the disagreement detectable and does not
say who looks or what they are told. say who looks or what they are told.
- **Composing a route name from a label and a node's domain.** - **Composing a route name from a label and a node's domain.**
[ADR 0056](../../02-DECISIONS/0056-public-routing-is-name-agnostic.md) makes the public name the [ADR 0066](../../02-DECISIONS/0066-public-routing-is-name-agnostic.md) makes the public name the
operator's to move between meshes, but the manifest layer still stores it as a literal — so today operator's to move between meshes, but the manifest layer still stores it as a literal — so today
the composition is a per-node override rather than the design. The interpolation that would let a the composition is a per-node override rather than the design. The interpolation that would let a
module carry a label and a node carry the domain, and the mesh join them, does not yet exist. module carry a label and a node carry the domain, and the mesh join them, does not yet exist.