Jump to content

The Principia Machina/Diagrams/C2 Public Recorder pages: Difference between revisions

From The Invariance Itself
m 1 revision imported
Diagram layer page C2 Public Recorder pages, TPS 0.1.0
Line 4: Line 4:
* GENERATED FROM: declared by the human 2026-09-17; TPS 5.5-5.13
* GENERATED FROM: declared by the human 2026-09-17; TPS 5.5-5.13
* STATUS: hand-authored at TPS 0.1.0; conceptual, kept by the human; never generated
* STATUS: hand-authored at TPS 0.1.0; conceptual, kept by the human; never generated
* SOURCE SHA-256: <code>56f001725776acefa9da3d04eff61ceb587a522b519f306ca7e318c2eaf06aeb</code>
* SOURCE SHA-256: <code>6ad340be56ca2855074c865235b611e762fbaf4f0f0bfaf1953c2c69b8149ccd</code>
* KEY: [[The Principia Machina/Diagrams/Key for structure diagrams|key for structure diagrams]]: what each shape and arrow means; [[The Principia Machina/Diagrams/Terms|definition of terms]]; [[The Principia Machina/TPS 0.1.0/Contents|contents of the specification]]
* KEY: [[The Principia Machina/Diagrams/Key for structure diagrams|key for structure diagrams]]: what each shape and arrow means; [[The Principia Machina/Diagrams/Terms|definition of terms]]; [[The Principia Machina/TPS 0.1.0/Contents|contents of the specification]]


Rendered live from the source below, which is the text equivalent; if rendering is unavailable the source still stands.
Rendered live from the source, which is the text equivalent and is shown under the drawing; a wide drawing scrolls sideways inside its frame.


<div style="overflow-x:auto; max-width:100%; border:1px solid #c8ccd1; background:#ffffff; padding:0.5em;">
<graphviz>
<graphviz>
// C2 Public Recorder pages data structure. TPS 0.1.0 part 5. Bachman form:
// C2 Public Recorder pages data structure. TPS 0.1.0 part 5. Bachman form:
Line 14: Line 15:
// a set, owner to member, labeled with the set name and the rule TPS states.
// a set, owner to member, labeled with the set name and the rule TPS states.
digraph C2_public_recorder_pages {
digraph C2_public_recorder_pages {
   graph [rankdir=TB, nodesep=0.4, ranksep=0.65, fontname="Helvetica", fontsize=10,
   graph [rankdir=TB, nodesep=0.25, ranksep=0.5, newrank=true, fontname="Helvetica", fontsize=10,
         label="C2  PUBLIC RECORDER PAGES  (TPS 0.1.0: 5.5-5.13)", labelloc=t];
         label="C2  PUBLIC RECORDER PAGES  (TPS 0.1.0: 5.5-5.13)", labelloc=t];
   node  [shape=plaintext, fontname="Helvetica", fontsize=9, fontcolor="#202122"];
   node  [shape=plaintext, fontname="Helvetica", fontsize=9, fontcolor="#202122"];
Line 20: Line 21:


   DRAFT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   DRAFT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DRAFT CONTAINER</B> page</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DRAFT CONTAINER</B>&nbsp;page</TD></TR>
     <TR><TD>one per initiator</TD><TD>writer: its creator</TD></TR>
     <TR><TD>one per initiator</TD><TD>writer: its creator</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">TPK, TrM, TMS under construction; JSON content model;<BR/>outside the index until instantiation, then read-only</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">TPK, TrM, TMS under construction;<BR/>JSON content model; outside the index<BR/>until instantiation, then read-only</TD></TR>
     <TR><TD COLSPAN="2">5.3.4, 5.5.1, 5.5.5</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.3.4, 5.5.1, 5.5.5</TD></TR></TABLE>>];
   CERT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   CERT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CANDIDATE CERTIFICATE</B> staging</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CANDIDATE CERTIFICATE</B>&nbsp;staging</TD></TR>
     <TR><TD>writer: TPX</TD><TD>reader: H-DECL</TD></TR>
     <TR><TD>writer: TPX</TD><TD>reader: H-DECL</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">D(TPK) | D(TrM) | D(TMS) | D(TFK) | UUID | prefix</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">D(TPK) | D(TrM) | D(TMS) | D(TFK) | UUID | prefix</TD></TR>
     <TR><TD COLSPAN="2">5.5.3, 5.6.4</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.5.3, 5.6.4</TD></TR></TABLE>>];
   DECL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   DECL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DECLARATIONS</B> page, global</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DECLARATIONS</B>&nbsp;page, global</TD></TR>
     <TR><TD>append-only</TD><TD>writer: H-DECL only</TD></TR>
     <TR><TD>append-only</TD><TD>writer: H-DECL only</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">genesis line (TPS digest and version) | certificates |<BR/>container STATE | admissions | closeouts; content digests</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">genesis line (TPS digest and version)<BR/>certificates | container STATE<BR/>admissions | closeouts; content digests</TD></TR>
     <TR><TD COLSPAN="2">5.6.1, 5.11.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.6.1, 5.11.2</TD></TR></TABLE>>];
   BUILD [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   BUILD [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BUILD CHAIN</B> page, global</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BUILD CHAIN</B>&nbsp;page, global</TD></TR>
     <TR><TD>append-only</TD><TD>writer: TPX</TD></TR>
     <TR><TD>append-only</TD><TD>writer: TPX</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">one line per build, naming the declaration verified against;<BR/>link hash SHA-256</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">one line per build, naming the<BR/>declaration verified against;<BR/>link hash SHA-256</TD></TR>
     <TR><TD COLSPAN="2">5.6.1, 5.6.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.6.1, 5.6.2</TD></TR></TABLE>>];
   MANIFEST [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   MANIFEST [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>MANIFEST</B> page, per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>MANIFEST</B>&nbsp;page, per container</TD></TR>
     <TR><TD>writer: TPX at every landing</TD><TD>never its own digest</TD></TR>
     <TR><TD>writer: TPX at every landing</TD><TD>never its own digest</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry per page: title | content hash | local archive</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry per page:<BR/>title | content hash | local archive</TD></TR>
     <TR><TD COLSPAN="2">5.11.1, 5.11.3, 5.11.5</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.1, 5.11.3, 5.11.5</TD></TR></TABLE>>];
   BADGE [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   BADGE [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BADGE</B> on the manifest</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BADGE</B>&nbsp;on the manifest</TD></TR>
     <TR><TD>written LAST</TD><TD>commit marker</TD></TR>
     <TR><TD>written LAST</TD><TD>commit marker</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">HOLDER | GRANT | EXPIRY | LAST PUSH | LAST RELEASE |<BR/>CHAIN LINE | MANIFEST REVISION | D(IS)</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">HOLDER | GRANT | EXPIRY | LAST PUSH<BR/>LAST RELEASE | CHAIN LINE<BR/>MANIFEST REVISION | D(IS)</TD></TR>
     <TR><TD COLSPAN="2">5.10.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.10.1</TD></TR></TABLE>>];
   HUB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   HUB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CENTRAL HUB</B> index of record</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CENTRAL HUB</B>&nbsp;index of record</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry point per audience | current D(IS) | frame text by H-OP</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry point per audience<BR/>current D(IS) | frame text by H-OP</TD></TR>
     <TR><TD COLSPAN="2">5.11.7, 5.11.8</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.7, 5.11.8</TD></TR></TABLE>>];
   LIB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   LIB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LIBRARY PAGE</B> per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LIBRARY PAGE</B>&nbsp;per container</TD></TR>
     <TR><TD COLSPAN="2">5.11.7</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.7</TD></TR></TABLE>>];
   LOCK [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   LOCK [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LOCK</B> page, per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LOCK</B>&nbsp;page, per container</TD></TR>
     <TR><TD>base-revision edit</TD><TD>one, never nested</TD></TR>
     <TR><TD>base-revision edit</TD><TD>one, never nested</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">holder account | grant (previous + 1) | grant time | expiry (&lt;= 24 h)</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">holder account | grant (previous + 1)<BR/>grant time | expiry (&lt;= 24 h)</TD></TR>
     <TR><TD COLSPAN="2">5.7.1, 5.7.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.7.1, 5.7.2</TD></TR></TABLE>>];
   COLLAB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   COLLAB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>COLLABORATION</B> page, per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>COLLABORATION</B>&nbsp;page, per container</TD></TR>
     <TR><TD COLSPAN="2">5.8.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.1</TD></TR></TABLE>>];
   PET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   PET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>PETITION</B> row</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>PETITION</B>&nbsp;row</TD></TR>
     <TR><TD>writer: the petitioner, own row</TD><TD>queue = revision order</TD></TR>
     <TR><TD>writer: the petitioner, own row</TD><TD>queue = revision order</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">ACCOUNT | CAPABILITY (class, tools, CERTIFIED, D(IS),<BR/>conformance declaration) | STATUS</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">ACCOUNT | STATUS<BR/>CAPABILITY (class, tools, CERTIFIED,<BR/>D(IS), conformance declaration)</TD></TR>
     <TR><TD COLSPAN="2">5.8.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.2</TD></TR></TABLE>>];
   ASSIGN [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   ASSIGN [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>ASSIGNMENT</B> row</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>ASSIGNMENT</B>&nbsp;row</TD></TR>
     <TR><TD>writer: the lead</TD><TD>one per block</TD></TR>
     <TR><TD>writer: the lead</TD><TD>one per block</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ASSIGNEE | GRANT | WORKLOAD pointer |<BR/>LEASED RANGE | RETURN PAGE</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ASSIGNEE | GRANT<BR/>WORKLOAD pointer | LEASED RANGE<BR/>RETURN PAGE</TD></TR>
     <TR><TD COLSPAN="2">5.8.3</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.3</TD></TR></TABLE>>];
   RET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   RET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>RETURN</B> on the staging subpage</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>RETURN</B>&nbsp;on the staging subpage</TD></TR>
     <TR><TD>writer: the coworker, own page</TD><TD>untrusted input</TD></TR>
     <TR><TD>writer: the coworker, own page</TD><TD>untrusted input</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ACCOUNT | RECORDS | USED RANGE | DIFFERENCE</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ACCOUNT | RECORDS<BR/>USED RANGE | DIFFERENCE</TD></TR>
     <TR><TD COLSPAN="2">5.8.4, 6.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.4, 6.2</TD></TR></TABLE>>];
   PANEL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   PANEL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CONTROL PANEL</B> per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CONTROL PANEL</B>&nbsp;per container</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">copy-forward | schedule log | badge | STATE | canary pass rate</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">copy-forward | schedule log | badge<BR/>STATE | canary pass rate</TD></TR>
     <TR><TD COLSPAN="2">5.12.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.12.1</TD></TR></TABLE>>];
   SCHED [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   SCHED [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>SCHEDULE LOG</B> entry</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>SCHEDULE LOG</B>&nbsp;entry</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">block ID | prompt | ETA | COMMISSIONED / OWNED BY /<BR/>LANDED / EXPIRED</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">block ID | prompt | ETA<BR/>COMMISSIONED / OWNED BY /<BR/>LANDED / EXPIRED</TD></TR>
     <TR><TD COLSPAN="2">5.9.2, 5.9.4</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.9.2, 5.9.4</TD></TR></TABLE>>];
   WBL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   WBL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>WORK-BLOCK LOG</B> entry</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>WORK-BLOCK LOG</B>&nbsp;entry</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">process used | implications | general-audience summary</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">process used | implications | general-audience summary</TD></TR>
     <TR><TD COLSPAN="2">5.9.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.9.2</TD></TR></TABLE>>];
   IMPL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   IMPL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>IMPLEMENTATION</B> index entry</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>IMPLEMENTATION</B>&nbsp;index entry</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">name | version | digest | TPS version conformed to | STATUS;<BR/>outside D(IS)</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">name | version | digest<BR/>TPS version conformed to | STATUS<BR/>outside D(IS)</TD></TR>
     <TR><TD COLSPAN="2">5.11.4, 6.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.4, 6.1</TD></TR></TABLE>>];
   TPS [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   TPS [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>TPS</B> instruction artifact</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>TPS</B>&nbsp;instruction artifact</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">published version | D(IS) = its digest | human-only edit</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">published version | D(IS) = its digest<BR/>human-only edit</TD></TR>
     <TR><TD COLSPAN="2">0.1, 5.11.4, 5.14 CR9</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">0.1, 5.11.4, 5.14 CR9</TD></TR></TABLE>>];


   { rank=same; DECL; BUILD; }
  { rank=same; DRAFT; HUB; }
  { rank=same; CERT; LIB; }
   { rank=same; DECL; TPS; }
  { rank=same; BUILD; IMPL; }
  { rank=same; LOCK; COLLAB; }
  { rank=same; PANEL; PET; }
  LIB -> TPS [style=invis]; TPS -> IMPL [style=invis]; BUILD -> MANIFEST [style=invis]; MANIFEST -> LOCK [style=invis]; LOCK -> PANEL [style=invis];
   DRAFT -> CERT [label="FINAL PASS\nzone checks passed; TPX writes\n5.5.2, 5.5.3"];
   DRAFT -> CERT [label="FINAL PASS\nzone checks passed; TPX writes\n5.5.2, 5.5.3"];
   CERT -> DECL [label="LANDED BY H-DECL\nstate CERTIFIED\n5.5.4"];
   CERT -> DECL [label="LANDED BY H-DECL\nstate CERTIFIED\n5.5.4"];
   DECL -> BUILD [label="VERIFIED AGAINST\none build line per declaration line\n5.6.1"];
   DECL -> BUILD [label="VERIFIED AGAINST\none build line per\ndeclaration line\n5.6.1"];
   DECL -> MANIFEST [label="INSTANTIATES\nTPX writes TFK pages, register,\npanel, lock, collaboration, manifest\n5.5.4"];
   DECL -> MANIFEST [label="INSTANTIATES\nTPX writes TFK pages, register,\npanel, lock, collaboration, manifest\n5.5.4"];
   MANIFEST -> BADGE [label="BADGE\nwritten last at every landing\n5.10.1"];
   MANIFEST -> BADGE [label="BADGE\nwritten last at every landing\n5.10.1", constraint=false];
   HUB -> LIB [label="ENTRY POINTS\none per audience\n5.11.7"];
   HUB -> LIB [label="ENTRY POINTS\none per audience\n5.11.7"];
   LIB -> MANIFEST [label="LIBRARY-MANIFEST\none per container\n5.11.1"];
   LIB -> MANIFEST [label="LIBRARY-MANIFEST\none per container\n5.11.1"];
   MANIFEST -> LOCK [label="CONTAINER-LOCK\n5.7.1", style=dashed];
   MANIFEST -> LOCK [label="CONTAINER-LOCK\n5.7.1", style=dashed];
   MANIFEST -> COLLAB [label="CONTAINER-COLLABORATION\n5.8.1", style=dashed];
   MANIFEST -> COLLAB [label="CONTAINER-COLLABORATION\n5.8.1", style=dashed];
   MANIFEST -> PANEL [label="CONTAINER-PANEL\n5.12.1", style=dashed];
   MANIFEST -> PANEL [label="CONTAINER-PANEL\n5.12.1", style=dashed, constraint=false];
   COLLAB -> PET [label="QUEUE\nrevision order of the petition edits\n5.8.2"];
   COLLAB -> PET [label="QUEUE\nrevision order of the petition edits\n5.8.2"];
   COLLAB -> ASSIGN [label="ASSIGNMENTS\nwritten by the lead\n5.8.3"];
   COLLAB -> ASSIGN [label="ASSIGNMENTS\nwritten by the lead\n5.8.3"];
   PET -> ASSIGN [label="ASSIGNED TO\nSTATUS ASSIGNED\n5.8.2", style=dotted];
   PET -> ASSIGN [label="ASSIGNED TO\nSTATUS ASSIGNED\n5.8.2", style=dotted, constraint=false];
   ASSIGN -> RET [label="RETURN PAGE\nBLOCK ID must match, not EXPIRED\n5.8.4"];
   ASSIGN -> RET [label="RETURN PAGE\nBLOCK ID must match, not EXPIRED\n5.8.4"];
   ASSIGN -> SCHED [label="WORKLOAD\npointer, no copy\n5.8.3", style=dotted];
   ASSIGN -> SCHED [label="WORKLOAD\npointer, no copy\n5.8.3", style=dotted];
   PANEL -> SCHED [label="SCHEDULE LOG\nstates 5.9.2"];
   PANEL -> SCHED [label="SCHEDULE LOG\nstates 5.9.2"];
   PANEL -> WBL [label="WORK-BLOCK LOG\n5.9.2"];
   PANEL -> WBL [label="WORK-BLOCK LOG\n5.9.2"];
   LOCK -> ASSIGN [label="GRANT\nlead's grant number at assignment\n5.8.3", style=dotted];
   LOCK -> ASSIGN [label="GRANT\nlead's grant number\nat assignment\n5.8.3", style=dotted, constraint=false];
   TPS -> IMPL [label="CONFORMS TO\nconformance declaration\n6.1"];
   TPS -> IMPL [label="CONFORMS TO\nconformance declaration\n6.1"];
   TPS -> BADGE [label="D(IS)\npublished on hub and badge\n5.14 CR9", style=dotted];
   TPS -> BADGE [label="D(IS)\npublished on hub and badge\n5.14 CR9", style=dotted, constraint=false];
}
}
</graphviz>
</graphviz>
 
</div>
Source, verbatim, while the graphviz tag is being repaired (see TPS docket G-08):
<!-- Fallback image, if H-OP uploads the rendering: [[File:TPM diagram C2 Public Recorder pages.png|thumb|900px|Public Recorder pages, rendered from the source above]] -->
<div class="mw-collapsible mw-collapsed" style="border:1px solid #c8ccd1; padding:0.3em;">'''Source''' (the text equivalent; DOT)
<div class="mw-collapsible-content">
<pre>
<pre>
// C2 Public Recorder pages data structure. TPS 0.1.0 part 5. Bachman form:
// C2 Public Recorder pages data structure. TPS 0.1.0 part 5. Bachman form:
Line 130: Line 139:
// a set, owner to member, labeled with the set name and the rule TPS states.
// a set, owner to member, labeled with the set name and the rule TPS states.
digraph C2_public_recorder_pages {
digraph C2_public_recorder_pages {
   graph [rankdir=TB, nodesep=0.4, ranksep=0.65, fontname="Helvetica", fontsize=10,
   graph [rankdir=TB, nodesep=0.25, ranksep=0.5, newrank=true, fontname="Helvetica", fontsize=10,
         label="C2  PUBLIC RECORDER PAGES  (TPS 0.1.0: 5.5-5.13)", labelloc=t];
         label="C2  PUBLIC RECORDER PAGES  (TPS 0.1.0: 5.5-5.13)", labelloc=t];
   node  [shape=plaintext, fontname="Helvetica", fontsize=9, fontcolor="#202122"];
   node  [shape=plaintext, fontname="Helvetica", fontsize=9, fontcolor="#202122"];
Line 136: Line 145:


   DRAFT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   DRAFT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DRAFT CONTAINER</B> page</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DRAFT CONTAINER</B>&nbsp;page</TD></TR>
     <TR><TD>one per initiator</TD><TD>writer: its creator</TD></TR>
     <TR><TD>one per initiator</TD><TD>writer: its creator</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">TPK, TrM, TMS under construction; JSON content model;<BR/>outside the index until instantiation, then read-only</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">TPK, TrM, TMS under construction;<BR/>JSON content model; outside the index<BR/>until instantiation, then read-only</TD></TR>
     <TR><TD COLSPAN="2">5.3.4, 5.5.1, 5.5.5</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.3.4, 5.5.1, 5.5.5</TD></TR></TABLE>>];
   CERT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   CERT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CANDIDATE CERTIFICATE</B> staging</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CANDIDATE CERTIFICATE</B>&nbsp;staging</TD></TR>
     <TR><TD>writer: TPX</TD><TD>reader: H-DECL</TD></TR>
     <TR><TD>writer: TPX</TD><TD>reader: H-DECL</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">D(TPK) | D(TrM) | D(TMS) | D(TFK) | UUID | prefix</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">D(TPK) | D(TrM) | D(TMS) | D(TFK) | UUID | prefix</TD></TR>
     <TR><TD COLSPAN="2">5.5.3, 5.6.4</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.5.3, 5.6.4</TD></TR></TABLE>>];
   DECL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   DECL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DECLARATIONS</B> page, global</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DECLARATIONS</B>&nbsp;page, global</TD></TR>
     <TR><TD>append-only</TD><TD>writer: H-DECL only</TD></TR>
     <TR><TD>append-only</TD><TD>writer: H-DECL only</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">genesis line (TPS digest and version) | certificates |<BR/>container STATE | admissions | closeouts; content digests</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">genesis line (TPS digest and version)<BR/>certificates | container STATE<BR/>admissions | closeouts; content digests</TD></TR>
     <TR><TD COLSPAN="2">5.6.1, 5.11.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.6.1, 5.11.2</TD></TR></TABLE>>];
   BUILD [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   BUILD [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BUILD CHAIN</B> page, global</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BUILD CHAIN</B>&nbsp;page, global</TD></TR>
     <TR><TD>append-only</TD><TD>writer: TPX</TD></TR>
     <TR><TD>append-only</TD><TD>writer: TPX</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">one line per build, naming the declaration verified against;<BR/>link hash SHA-256</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">one line per build, naming the<BR/>declaration verified against;<BR/>link hash SHA-256</TD></TR>
     <TR><TD COLSPAN="2">5.6.1, 5.6.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.6.1, 5.6.2</TD></TR></TABLE>>];
   MANIFEST [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   MANIFEST [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>MANIFEST</B> page, per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>MANIFEST</B>&nbsp;page, per container</TD></TR>
     <TR><TD>writer: TPX at every landing</TD><TD>never its own digest</TD></TR>
     <TR><TD>writer: TPX at every landing</TD><TD>never its own digest</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry per page: title | content hash | local archive</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry per page:<BR/>title | content hash | local archive</TD></TR>
     <TR><TD COLSPAN="2">5.11.1, 5.11.3, 5.11.5</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.1, 5.11.3, 5.11.5</TD></TR></TABLE>>];
   BADGE [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   BADGE [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BADGE</B> on the manifest</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BADGE</B>&nbsp;on the manifest</TD></TR>
     <TR><TD>written LAST</TD><TD>commit marker</TD></TR>
     <TR><TD>written LAST</TD><TD>commit marker</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">HOLDER | GRANT | EXPIRY | LAST PUSH | LAST RELEASE |<BR/>CHAIN LINE | MANIFEST REVISION | D(IS)</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">HOLDER | GRANT | EXPIRY | LAST PUSH<BR/>LAST RELEASE | CHAIN LINE<BR/>MANIFEST REVISION | D(IS)</TD></TR>
     <TR><TD COLSPAN="2">5.10.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.10.1</TD></TR></TABLE>>];
   HUB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   HUB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CENTRAL HUB</B> index of record</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CENTRAL HUB</B>&nbsp;index of record</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry point per audience | current D(IS) | frame text by H-OP</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">entry point per audience<BR/>current D(IS) | frame text by H-OP</TD></TR>
     <TR><TD COLSPAN="2">5.11.7, 5.11.8</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.7, 5.11.8</TD></TR></TABLE>>];
   LIB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   LIB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LIBRARY PAGE</B> per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LIBRARY PAGE</B>&nbsp;per container</TD></TR>
     <TR><TD COLSPAN="2">5.11.7</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.7</TD></TR></TABLE>>];
   LOCK [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   LOCK [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LOCK</B> page, per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LOCK</B>&nbsp;page, per container</TD></TR>
     <TR><TD>base-revision edit</TD><TD>one, never nested</TD></TR>
     <TR><TD>base-revision edit</TD><TD>one, never nested</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">holder account | grant (previous + 1) | grant time | expiry (&lt;= 24 h)</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">holder account | grant (previous + 1)<BR/>grant time | expiry (&lt;= 24 h)</TD></TR>
     <TR><TD COLSPAN="2">5.7.1, 5.7.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.7.1, 5.7.2</TD></TR></TABLE>>];
   COLLAB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   COLLAB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>COLLABORATION</B> page, per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>COLLABORATION</B>&nbsp;page, per container</TD></TR>
     <TR><TD COLSPAN="2">5.8.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.1</TD></TR></TABLE>>];
   PET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   PET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>PETITION</B> row</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>PETITION</B>&nbsp;row</TD></TR>
     <TR><TD>writer: the petitioner, own row</TD><TD>queue = revision order</TD></TR>
     <TR><TD>writer: the petitioner, own row</TD><TD>queue = revision order</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">ACCOUNT | CAPABILITY (class, tools, CERTIFIED, D(IS),<BR/>conformance declaration) | STATUS</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">ACCOUNT | STATUS<BR/>CAPABILITY (class, tools, CERTIFIED,<BR/>D(IS), conformance declaration)</TD></TR>
     <TR><TD COLSPAN="2">5.8.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.2</TD></TR></TABLE>>];
   ASSIGN [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   ASSIGN [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>ASSIGNMENT</B> row</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>ASSIGNMENT</B>&nbsp;row</TD></TR>
     <TR><TD>writer: the lead</TD><TD>one per block</TD></TR>
     <TR><TD>writer: the lead</TD><TD>one per block</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ASSIGNEE | GRANT | WORKLOAD pointer |<BR/>LEASED RANGE | RETURN PAGE</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ASSIGNEE | GRANT<BR/>WORKLOAD pointer | LEASED RANGE<BR/>RETURN PAGE</TD></TR>
     <TR><TD COLSPAN="2">5.8.3</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.3</TD></TR></TABLE>>];
   RET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   RET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>RETURN</B> on the staging subpage</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>RETURN</B>&nbsp;on the staging subpage</TD></TR>
     <TR><TD>writer: the coworker, own page</TD><TD>untrusted input</TD></TR>
     <TR><TD>writer: the coworker, own page</TD><TD>untrusted input</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ACCOUNT | RECORDS | USED RANGE | DIFFERENCE</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ACCOUNT | RECORDS<BR/>USED RANGE | DIFFERENCE</TD></TR>
     <TR><TD COLSPAN="2">5.8.4, 6.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.8.4, 6.2</TD></TR></TABLE>>];
   PANEL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   PANEL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CONTROL PANEL</B> per container</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CONTROL PANEL</B>&nbsp;per container</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">copy-forward | schedule log | badge | STATE | canary pass rate</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">copy-forward | schedule log | badge<BR/>STATE | canary pass rate</TD></TR>
     <TR><TD COLSPAN="2">5.12.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.12.1</TD></TR></TABLE>>];
   SCHED [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   SCHED [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>SCHEDULE LOG</B> entry</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>SCHEDULE LOG</B>&nbsp;entry</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">block ID | prompt | ETA | COMMISSIONED / OWNED BY /<BR/>LANDED / EXPIRED</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">block ID | prompt | ETA<BR/>COMMISSIONED / OWNED BY /<BR/>LANDED / EXPIRED</TD></TR>
     <TR><TD COLSPAN="2">5.9.2, 5.9.4</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.9.2, 5.9.4</TD></TR></TABLE>>];
   WBL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   WBL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>WORK-BLOCK LOG</B> entry</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>WORK-BLOCK LOG</B>&nbsp;entry</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">process used | implications | general-audience summary</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">process used | implications | general-audience summary</TD></TR>
     <TR><TD COLSPAN="2">5.9.2</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.9.2</TD></TR></TABLE>>];
   IMPL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   IMPL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>IMPLEMENTATION</B> index entry</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>IMPLEMENTATION</B>&nbsp;index entry</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">name | version | digest | TPS version conformed to | STATUS;<BR/>outside D(IS)</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">name | version | digest<BR/>TPS version conformed to | STATUS<BR/>outside D(IS)</TD></TR>
     <TR><TD COLSPAN="2">5.11.4, 6.1</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">5.11.4, 6.1</TD></TR></TABLE>>];
   TPS [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
   TPS [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>TPS</B> instruction artifact</TD></TR>
     <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>TPS</B>&nbsp;instruction artifact</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">published version | D(IS) = its digest | human-only edit</TD></TR>
     <TR><TD COLSPAN="2" ALIGN="LEFT">published version | D(IS) = its digest<BR/>human-only edit</TD></TR>
     <TR><TD COLSPAN="2">0.1, 5.11.4, 5.14 CR9</TD></TR></TABLE>>];
     <TR><TD COLSPAN="2">0.1, 5.11.4, 5.14 CR9</TD></TR></TABLE>>];


   { rank=same; DECL; BUILD; }
  { rank=same; DRAFT; HUB; }
  { rank=same; CERT; LIB; }
   { rank=same; DECL; TPS; }
  { rank=same; BUILD; IMPL; }
  { rank=same; LOCK; COLLAB; }
  { rank=same; PANEL; PET; }
  LIB -> TPS [style=invis]; TPS -> IMPL [style=invis]; BUILD -> MANIFEST [style=invis]; MANIFEST -> LOCK [style=invis]; LOCK -> PANEL [style=invis];
   DRAFT -> CERT [label="FINAL PASS\nzone checks passed; TPX writes\n5.5.2, 5.5.3"];
   DRAFT -> CERT [label="FINAL PASS\nzone checks passed; TPX writes\n5.5.2, 5.5.3"];
   CERT -> DECL [label="LANDED BY H-DECL\nstate CERTIFIED\n5.5.4"];
   CERT -> DECL [label="LANDED BY H-DECL\nstate CERTIFIED\n5.5.4"];
   DECL -> BUILD [label="VERIFIED AGAINST\none build line per declaration line\n5.6.1"];
   DECL -> BUILD [label="VERIFIED AGAINST\none build line per\ndeclaration line\n5.6.1"];
   DECL -> MANIFEST [label="INSTANTIATES\nTPX writes TFK pages, register,\npanel, lock, collaboration, manifest\n5.5.4"];
   DECL -> MANIFEST [label="INSTANTIATES\nTPX writes TFK pages, register,\npanel, lock, collaboration, manifest\n5.5.4"];
   MANIFEST -> BADGE [label="BADGE\nwritten last at every landing\n5.10.1"];
   MANIFEST -> BADGE [label="BADGE\nwritten last at every landing\n5.10.1", constraint=false];
   HUB -> LIB [label="ENTRY POINTS\none per audience\n5.11.7"];
   HUB -> LIB [label="ENTRY POINTS\none per audience\n5.11.7"];
   LIB -> MANIFEST [label="LIBRARY-MANIFEST\none per container\n5.11.1"];
   LIB -> MANIFEST [label="LIBRARY-MANIFEST\none per container\n5.11.1"];
   MANIFEST -> LOCK [label="CONTAINER-LOCK\n5.7.1", style=dashed];
   MANIFEST -> LOCK [label="CONTAINER-LOCK\n5.7.1", style=dashed];
   MANIFEST -> COLLAB [label="CONTAINER-COLLABORATION\n5.8.1", style=dashed];
   MANIFEST -> COLLAB [label="CONTAINER-COLLABORATION\n5.8.1", style=dashed];
   MANIFEST -> PANEL [label="CONTAINER-PANEL\n5.12.1", style=dashed];
   MANIFEST -> PANEL [label="CONTAINER-PANEL\n5.12.1", style=dashed, constraint=false];
   COLLAB -> PET [label="QUEUE\nrevision order of the petition edits\n5.8.2"];
   COLLAB -> PET [label="QUEUE\nrevision order of the petition edits\n5.8.2"];
   COLLAB -> ASSIGN [label="ASSIGNMENTS\nwritten by the lead\n5.8.3"];
   COLLAB -> ASSIGN [label="ASSIGNMENTS\nwritten by the lead\n5.8.3"];
   PET -> ASSIGN [label="ASSIGNED TO\nSTATUS ASSIGNED\n5.8.2", style=dotted];
   PET -> ASSIGN [label="ASSIGNED TO\nSTATUS ASSIGNED\n5.8.2", style=dotted, constraint=false];
   ASSIGN -> RET [label="RETURN PAGE\nBLOCK ID must match, not EXPIRED\n5.8.4"];
   ASSIGN -> RET [label="RETURN PAGE\nBLOCK ID must match, not EXPIRED\n5.8.4"];
   ASSIGN -> SCHED [label="WORKLOAD\npointer, no copy\n5.8.3", style=dotted];
   ASSIGN -> SCHED [label="WORKLOAD\npointer, no copy\n5.8.3", style=dotted];
   PANEL -> SCHED [label="SCHEDULE LOG\nstates 5.9.2"];
   PANEL -> SCHED [label="SCHEDULE LOG\nstates 5.9.2"];
   PANEL -> WBL [label="WORK-BLOCK LOG\n5.9.2"];
   PANEL -> WBL [label="WORK-BLOCK LOG\n5.9.2"];
   LOCK -> ASSIGN [label="GRANT\nlead's grant number at assignment\n5.8.3", style=dotted];
   LOCK -> ASSIGN [label="GRANT\nlead's grant number\nat assignment\n5.8.3", style=dotted, constraint=false];
   TPS -> IMPL [label="CONFORMS TO\nconformance declaration\n6.1"];
   TPS -> IMPL [label="CONFORMS TO\nconformance declaration\n6.1"];
   TPS -> BADGE [label="D(IS)\npublished on hub and badge\n5.14 CR9", style=dotted];
   TPS -> BADGE [label="D(IS)\npublished on hub and badge\n5.14 CR9", style=dotted, constraint=false];
}
}
</pre>
</pre>
<!-- Fallback image, if H-OP uploads the rendering: [[File:TPM diagram C2 Public Recorder pages.png|thumb|900px|Public Recorder pages, rendered from the source above]] -->
</div></div>


== Text equivalent ==
== Text equivalent ==

Revision as of 20:38, 17 September 2026

Conceptual diagram 2 of 5. Part of the TPM hub.

  • KIND: structure
  • LANGUAGE: DOT
  • GENERATED FROM: declared by the human 2026-09-17; TPS 5.5-5.13
  • STATUS: hand-authored at TPS 0.1.0; conceptual, kept by the human; never generated
  • SOURCE SHA-256: 6ad340be56ca2855074c865235b611e762fbaf4f0f0bfaf1953c2c69b8149ccd
  • KEY: key for structure diagrams: what each shape and arrow means; definition of terms; contents of the specification

Rendered live from the source, which is the text equivalent and is shown under the drawing; a wide drawing scrolls sideways inside its frame.

Source (the text equivalent; DOT)
// C2 Public Recorder pages data structure. TPS 0.1.0 part 5. Bachman form:
// a box is a page or row class (name; identity; writer; fields); an arrow is
// a set, owner to member, labeled with the set name and the rule TPS states.
digraph C2_public_recorder_pages {
  graph [rankdir=TB, nodesep=0.25, ranksep=0.5, newrank=true, fontname="Helvetica", fontsize=10,
         label="C2  PUBLIC RECORDER PAGES  (TPS 0.1.0: 5.5-5.13)", labelloc=t];
  node  [shape=plaintext, fontname="Helvetica", fontsize=9, fontcolor="#202122"];
  edge  [fontname="Helvetica", fontsize=8, arrowhead=vee, color="#54595d", fontcolor="#202122"];

  DRAFT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DRAFT CONTAINER</B> page</TD></TR>
    <TR><TD>one per initiator</TD><TD>writer: its creator</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">TPK, TrM, TMS under construction;<BR/>JSON content model; outside the index<BR/>until instantiation, then read-only</TD></TR>
    <TR><TD COLSPAN="2">5.3.4, 5.5.1, 5.5.5</TD></TR></TABLE>>];
  CERT [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CANDIDATE CERTIFICATE</B> staging</TD></TR>
    <TR><TD>writer: TPX</TD><TD>reader: H-DECL</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">D(TPK) | D(TrM) | D(TMS) | D(TFK) | UUID | prefix</TD></TR>
    <TR><TD COLSPAN="2">5.5.3, 5.6.4</TD></TR></TABLE>>];
  DECL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>DECLARATIONS</B> page, global</TD></TR>
    <TR><TD>append-only</TD><TD>writer: H-DECL only</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">genesis line (TPS digest and version)<BR/>certificates | container STATE<BR/>admissions | closeouts; content digests</TD></TR>
    <TR><TD COLSPAN="2">5.6.1, 5.11.2</TD></TR></TABLE>>];
  BUILD [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BUILD CHAIN</B> page, global</TD></TR>
    <TR><TD>append-only</TD><TD>writer: TPX</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">one line per build, naming the<BR/>declaration verified against;<BR/>link hash SHA-256</TD></TR>
    <TR><TD COLSPAN="2">5.6.1, 5.6.2</TD></TR></TABLE>>];
  MANIFEST [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>MANIFEST</B> page, per container</TD></TR>
    <TR><TD>writer: TPX at every landing</TD><TD>never its own digest</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">entry per page:<BR/>title | content hash | local archive</TD></TR>
    <TR><TD COLSPAN="2">5.11.1, 5.11.3, 5.11.5</TD></TR></TABLE>>];
  BADGE [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>BADGE</B> on the manifest</TD></TR>
    <TR><TD>written LAST</TD><TD>commit marker</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">HOLDER | GRANT | EXPIRY | LAST PUSH<BR/>LAST RELEASE | CHAIN LINE<BR/>MANIFEST REVISION | D(IS)</TD></TR>
    <TR><TD COLSPAN="2">5.10.1</TD></TR></TABLE>>];
  HUB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CENTRAL HUB</B> index of record</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">entry point per audience<BR/>current D(IS) | frame text by H-OP</TD></TR>
    <TR><TD COLSPAN="2">5.11.7, 5.11.8</TD></TR></TABLE>>];
  LIB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LIBRARY PAGE</B> per container</TD></TR>
    <TR><TD COLSPAN="2">5.11.7</TD></TR></TABLE>>];
  LOCK [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>LOCK</B> page, per container</TD></TR>
    <TR><TD>base-revision edit</TD><TD>one, never nested</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">holder account | grant (previous + 1)<BR/>grant time | expiry (<= 24 h)</TD></TR>
    <TR><TD COLSPAN="2">5.7.1, 5.7.2</TD></TR></TABLE>>];
  COLLAB [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>COLLABORATION</B> page, per container</TD></TR>
    <TR><TD COLSPAN="2">5.8.1</TD></TR></TABLE>>];
  PET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>PETITION</B> row</TD></TR>
    <TR><TD>writer: the petitioner, own row</TD><TD>queue = revision order</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">ACCOUNT | STATUS<BR/>CAPABILITY (class, tools, CERTIFIED,<BR/>D(IS), conformance declaration)</TD></TR>
    <TR><TD COLSPAN="2">5.8.2</TD></TR></TABLE>>];
  ASSIGN [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>ASSIGNMENT</B> row</TD></TR>
    <TR><TD>writer: the lead</TD><TD>one per block</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ASSIGNEE | GRANT<BR/>WORKLOAD pointer | LEASED RANGE<BR/>RETURN PAGE</TD></TR>
    <TR><TD COLSPAN="2">5.8.3</TD></TR></TABLE>>];
  RET [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>RETURN</B> on the staging subpage</TD></TR>
    <TR><TD>writer: the coworker, own page</TD><TD>untrusted input</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">BLOCK ID | ACCOUNT | RECORDS<BR/>USED RANGE | DIFFERENCE</TD></TR>
    <TR><TD COLSPAN="2">5.8.4, 6.2</TD></TR></TABLE>>];
  PANEL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>CONTROL PANEL</B> per container</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">copy-forward | schedule log | badge<BR/>STATE | canary pass rate</TD></TR>
    <TR><TD COLSPAN="2">5.12.1</TD></TR></TABLE>>];
  SCHED [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>SCHEDULE LOG</B> entry</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">block ID | prompt | ETA<BR/>COMMISSIONED / OWNED BY /<BR/>LANDED / EXPIRED</TD></TR>
    <TR><TD COLSPAN="2">5.9.2, 5.9.4</TD></TR></TABLE>>];
  WBL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>WORK-BLOCK LOG</B> entry</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">process used | implications | general-audience summary</TD></TR>
    <TR><TD COLSPAN="2">5.9.2</TD></TR></TABLE>>];
  IMPL [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>IMPLEMENTATION</B> index entry</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">name | version | digest<BR/>TPS version conformed to | STATUS<BR/>outside D(IS)</TD></TR>
    <TR><TD COLSPAN="2">5.11.4, 6.1</TD></TR></TABLE>>];
  TPS [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#eaecf0"><B>TPS</B> instruction artifact</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">published version | D(IS) = its digest<BR/>human-only edit</TD></TR>
    <TR><TD COLSPAN="2">0.1, 5.11.4, 5.14 CR9</TD></TR></TABLE>>];

  { rank=same; DRAFT; HUB; }
  { rank=same; CERT; LIB; }
  { rank=same; DECL; TPS; }
  { rank=same; BUILD; IMPL; }
  { rank=same; LOCK; COLLAB; }
  { rank=same; PANEL; PET; }
  LIB -> TPS [style=invis]; TPS -> IMPL [style=invis]; BUILD -> MANIFEST [style=invis]; MANIFEST -> LOCK [style=invis]; LOCK -> PANEL [style=invis];
  DRAFT -> CERT [label="FINAL PASS\nzone checks passed; TPX writes\n5.5.2, 5.5.3"];
  CERT -> DECL [label="LANDED BY H-DECL\nstate CERTIFIED\n5.5.4"];
  DECL -> BUILD [label="VERIFIED AGAINST\none build line per\ndeclaration line\n5.6.1"];
  DECL -> MANIFEST [label="INSTANTIATES\nTPX writes TFK pages, register,\npanel, lock, collaboration, manifest\n5.5.4"];
  MANIFEST -> BADGE [label="BADGE\nwritten last at every landing\n5.10.1", constraint=false];
  HUB -> LIB [label="ENTRY POINTS\none per audience\n5.11.7"];
  LIB -> MANIFEST [label="LIBRARY-MANIFEST\none per container\n5.11.1"];
  MANIFEST -> LOCK [label="CONTAINER-LOCK\n5.7.1", style=dashed];
  MANIFEST -> COLLAB [label="CONTAINER-COLLABORATION\n5.8.1", style=dashed];
  MANIFEST -> PANEL [label="CONTAINER-PANEL\n5.12.1", style=dashed, constraint=false];
  COLLAB -> PET [label="QUEUE\nrevision order of the petition edits\n5.8.2"];
  COLLAB -> ASSIGN [label="ASSIGNMENTS\nwritten by the lead\n5.8.3"];
  PET -> ASSIGN [label="ASSIGNED TO\nSTATUS ASSIGNED\n5.8.2", style=dotted, constraint=false];
  ASSIGN -> RET [label="RETURN PAGE\nBLOCK ID must match, not EXPIRED\n5.8.4"];
  ASSIGN -> SCHED [label="WORKLOAD\npointer, no copy\n5.8.3", style=dotted];
  PANEL -> SCHED [label="SCHEDULE LOG\nstates 5.9.2"];
  PANEL -> WBL [label="WORK-BLOCK LOG\n5.9.2"];
  LOCK -> ASSIGN [label="GRANT\nlead's grant number\nat assignment\n5.8.3", style=dotted, constraint=false];
  TPS -> IMPL [label="CONFORMS TO\nconformance declaration\n6.1"];
  TPS -> BADGE [label="D(IS)\npublished on hub and badge\n5.14 CR9", style=dotted, constraint=false];
}

Text equivalent

A DRAFT CONTAINER page passes its zone checks into a CANDIDATE CERTIFICATE on staging (5.5.3), which H-DECL lands as a DECLARATIONS line (5.5.4); TPX verifies each build against it on the BUILD CHAIN page (5.6.1) and instantiates the container's MANIFEST, whose BADGE is written last (5.10.1). The CENTRAL HUB reaches LIBRARY PAGES and manifests (5.11.7). Each container has a LOCK page (5.7.2), a COLLABORATION page with PETITION rows in revision order, ASSIGNMENT rows written by the lead and RETURNS on staging subpages (5.8), and a CONTROL PANEL with its SCHEDULE LOG and WORK-BLOCK LOG (5.9.2, 5.12.1). TPS is the instruction artifact whose digest is D(IS); IMPLEMENTATION entries conform to it (5.11.4, 6.1).