Browsing the registry

The registry is a peer, and its bindings are entities in its tree. So browsing it is the same act as browsing anything else on the network: a client walks the signed root and reads what it finds.

This page is not that client. A page rendered ahead of time can only publish a snapshot — stale the moment a binding changes, and stripped of the signatures that are the only thing making a binding mean anything. Reading a registry is a live walk against a signed root or it is decoration. Point a client at this domain and browse it there.

It does print the current listing below, but not as a directory of the network — as an exhibit, because seeing what an unverified listing actually contains is a much faster route to the point of this page than describing it.

What follows is the part worth knowing before you do, because it is the part that surprises people.

A listing is a menu, not an inventory

A registry can publish an index of the names it carries, and that index is a convenience with no authority behind it. It tells a client what names to offer. It commits to nothing.

Here is this registry's, in full:

GET /2KFNrGARQBkx3d9WQtkeuT3HbQ3oXSS7PBggWt1szT9hzb
      /system/registry/binding/by-name.list

200, 417 bytes
{
  "type": "system/tree/listing",
  "data": {
    "path":   "/2KFNrGARQBkx3d9WQtkeuT3HbQ3oXSS7PBggWt1szT9hzb/system/registry/binding/by-name",
    "count":  3,
    "offset": 0,
    "entries": {
      "billslab.com":             { "hash": h'0081473e…376a82', "has_children": false },
      "entitycoreprotocol.org":   { "hash": h'001665e0…585ef388', "has_children": false },
      "entitychurchregistry.org": { "hash": h'0066ccac…e05da41d', "has_children": false }
    }
  }
}

That is the whole menu, and printing it is the fastest way to see what it is worth. Each hash points at a binding; not one of them has been verified by anything you just read. The listing is a file an origin served. Nothing in it is signed, the names are map keys rather than commitments, and the count is the origin's own arithmetic about its own response.

Take one of those entries through an actual resolve and it acquires a signature, a name-association check, an expiry and a revocation probe. Until then it is a suggestion.

Concretely, a hostile origin can do two things to a listing:

The commitment lives somewhere else entirely: in the per-binding signature. The registry signs a body that carries the name and the target together, so that signature is the association. An index entry is a pointer to where the commitment can be found; it is not the commitment.

Even a signed walk can be short

The obvious fix — walk the signed tree rather than trusting a published list — is a real improvement and not a complete one. A walk that skips an interior node it cannot fetch returns fewer names than exist, with no error raised and a root hash that still verifies. Withholding one node hides everything beneath it, silently.

The rule that falls out of this is the one thing a browsing surface must get right:

An entry that will not resolve is a failure, never the end of a branch. And every listed name means nothing until it has been through a real resolve.

A browser that treats an unfetchable link as "nothing further here" will render a short list confidently. A browser that treats it as an error will tell you it could not see the whole registry, which is the true statement.

So what browsing gets you

Used with that caution, browsing is genuinely useful: it is how you discover what a registry offers, and how you check that a name you were given resolves the way the person who gave it to you said it would.

What it is not is an audit. You cannot conclude from a listing that a name is absent, or that you have seen everything this registry carries. Absence is exactly the claim the mechanism cannot support.

And what browsing this one gets you

Not much, by design. This registry carries the handful of names its own demonstration needs — the sites in this constellation, resolving through it and linking to each other. Browsing it shows you the shape of the mechanism working. It tells you nothing about the network, because it is not an index of one and is not trying to become one.

The registry worth browsing is the one you run.