Unified Resource Coordinate

© R.A.Sol

HPPR supports two address forms:

Hash addresses are immutable. Coordinate addresses are time-dependent and may resolve to different packets as new packets are stored.

A versioned coordinate pins one exact packet.

Terms

Version Selectors

Multiple packets can share one coordinate. Add /|/... to select a version.

Example

Packet:

🖧: P.EXAMPLE~HASH~EXAMPLE~HASH~EXAMPLE~HASH~EX.H3
Group: a-group
App: some-app
Location: our-collection/item
TAI: 1640995200:123000000
...

Addresses:

Get resolution

In the tables below, <loc> is the Location header value and does not end with /.

The tip is the latest packet at a path. Tie-break order is highest TAI, then highest hash.

Path Gets
.../<loc> tip
.../<loc>/ tip
.../<loc>/| tip
.../<loc>/|/plex Plex tip
.../<loc>/|/plex/<tai> Plex tip at tai
.../<loc>/|/plex/<tai>/<hash> exact Plex
.../<loc>/|/seal Seal tip
.../<loc>/|/seal/<vkey> Seal tip for signer
.../<loc>/|/seal/<vkey>/<tai> signer Seal tip at tai
.../<loc>/|/seal/<vkey>/<tai>/<hash> exact Seal

List resolution

Path Lists
.../<loc>/ child locations, plus |/ when present
.../<loc>/|/ plex/ and or seal/
.../<loc>/|/plex/ TAIs
.../<loc>/|/plex/<tai>/ hashes
.../<loc>/|/seal/ signer verification keys
.../<loc>/|/seal/<vkey>/ TAIs
.../<loc>/|/seal/<vkey>/<tai>/ hashes