Protocol / Spaces / Space Hosting
shippedLayer 1 · Protocol

Space Hosting

The act of bringing a space into existence on a node, performed lazily when a delegation carries the tinycloud.space/host ability.

Space Hosting

Hosting is how an space comes to exist on a node: there is no "create space" call — a space is materialized lazily the first time the node transacts a delegation carrying the tinycloud.space/host ability over that space. To "host a space" is simply to hold (or be delegated) that capability for it.

Role

Space hosting is the bootstrap step of Layer 1: before any service invocation can target {spaceId}/{service}, the {spaceId} must be hosted. Hosting binds a space's name to its owner DID on a node without any registry — the capability's root authority is the proof of ownership.

Mechanics

When a delegation is transacted, the node scans its capabilities for one whose ability is exactly tinycloud.space/host against a bare space resource (service space, no path/query/fragment) and inserts that SpaceId idempotently (tinycloud-core/src/db.rs transact). The signing client builds the host delegation via host-SIWE in tinycloud-sdk-wasm/src/host.rs; the high-level SDK drives this through ensureSpaceExists / hostOwnedSpace on first use (see sign-in-flow). The exact match rule and insert are detailed in autonomic-space.

Relationships

Creates an space addressed by the URI grammar; carried as a capability inside a delegation; driven by the SDK sign-in-flow; performed by a node / host; ownership rooted at a DID.

Example

On first sign-in the SDK ensures …:default exists by transacting a host-SIWE delegation carrying tinycloud.space/host over tinycloud:pkh:eip155:1:0xf39f…2266:default/space; the node inserts the SpaceId, and subsequent tinycloud.kv/put invocations on …:default/kv/… are admitted.

Status & drift

Shipped. Vocabulary: "host" is the protocol verb; there is no separate "create" operation.

Sources

  • tinycloud-node: tinycloud-core/src/db.rs (transact host-insert), tinycloud-sdk-wasm/src/host.rs (host-SIWE)