Timestamp
A point in time as an integer of Unix milliseconds, issued by a causal clock when a blob is signed and never checked against wall-clock time on arrival.

Extends

A timestamp says when a blob was made. It orders a signer's own changes, breaks ties between concurrent edits, and gives comments and contacts their ids. The signer claims it, and the network does not check it.

This page defines the timestamp value type, an alias of integer used for the ts field of the blob envelope and for the timestamp half of a TSID. Its formal schema is attached as the schemaDefinition in this document's metadata, so the app can show it.

The value is Unix milliseconds. The daemon refuses to encode or decode a time that is not rounded to a millisecond. Producers use a causal clock: a new timestamp is strictly greater than any the node has observed, and a node whose wall clock is more than 40 seconds behind the newest timestamp it has tracked refuses to issue one. On arrival nothing compares ts to real time. The constraints are relative: a Change must be later than its dependencies and no earlier than the same signer's previous Change, and the newest snapshot blob of a record wins. The one clock check is at replay: a Change stamped 40 seconds or more ahead of the replaying node's clock fails to apply. So a signer can back-date or forward-date within those limits, and Integrity lists this among the things that are trusted, not verified. The value zero is a sentinel used only by the deterministic genesis of a home document.

See also

    blob: the ts field.

    Integrity: what is trusted and what is verified.

    Documents: how timestamps order Changes.

    date-time: a human-readable instant for schemas.

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime