Rhizome Use-By

Each Rhizome bundle may be given an expiry date/time by putting an expiry field in its manifest. It indicates that the bundle should not be retrieved or transferred after that time, which refers to Coordinated Universal Time (UCT).

Rhizome Use-By is implemented as follows:

  • an expired bundle means one whose expiry time is in the past, ie, is less than the node's idea of UCT
  • every Rhizome node should periodically remove all expired bundles from its store
  • a Rhizome node should not advertise, request or transfer any expired bundle

The clock of each Rhizome node may not be coordinated, and may deviate significantly from true UCT. This means that different nodes may not always agree on which bundles are expired. It is sufficient for a node to use its own clock in all expiry decisions, but ideally a node would coordinate its clock with nearby nodes using something like Mesh time.

If an incorrect clock causes a node to expire a bundle too early or too late, this does not violate the basic service guarantees of Rhizome, but may cause unnecessary network traffic if the node acts on information which is no longer current.


Login