This shows you the differences between two versions of the page.

Link to this comparison view

content:tech:rhizome_use-by [02/05/2014 14:47] (current)
Andrew Bettison created
Line 1: Line 1:
 +====== Rhizome Use-By ======
 +Each [[Rhizome bundle]] may be given an expiry date/time by putting an **expiry** field in its [[Rhizome manifest|manifest]].  It indicates that the bundle should not be retrieved or transferred after that time, which refers to [[http://en.wikipedia.org/wiki/Coordinated_Universal_Time|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.