Files
simplex-chat/diagrams/simplex-messaging/simplex.svg
Efim Poberezkin 539e09f8cd docs, smp: align with implementation (#43)
* adjust out-of-band message abnf

* define hostname and encoded using prose-val

* elaborate on base64

* corrections up to SMP procedure

* fix CONN -> NEW

* update SMP protocol to align with the implementation

* remove Possible extensions from TOC

* lists

* corrections

Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
2021-05-02 19:15:40 +01:00

1 line
12 KiB
XML

<svg id="mermaid-1619098539359" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="157.2029266357422" style="max-width: 917.600830078125px;" viewBox="0 0 917.600830078125 157.2029266357422"><style>#mermaid-1619098539359{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-1619098539359 .error-icon{fill:#552222;}#mermaid-1619098539359 .error-text{fill:#552222;stroke:#552222;}#mermaid-1619098539359 .edge-thickness-normal{stroke-width:2px;}#mermaid-1619098539359 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1619098539359 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1619098539359 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1619098539359 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1619098539359 .marker{fill:#333333;stroke:#333333;}#mermaid-1619098539359 .marker.cross{stroke:#333333;}#mermaid-1619098539359 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1619098539359 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-1619098539359 .cluster-label text{fill:#333;}#mermaid-1619098539359 .cluster-label span{color:#333;}#mermaid-1619098539359 .label text,#mermaid-1619098539359 span{fill:#333;color:#333;}#mermaid-1619098539359 .node rect,#mermaid-1619098539359 .node circle,#mermaid-1619098539359 .node ellipse,#mermaid-1619098539359 .node polygon,#mermaid-1619098539359 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1619098539359 .node .label{text-align:center;}#mermaid-1619098539359 .node.clickable{cursor:pointer;}#mermaid-1619098539359 .arrowheadPath{fill:#333333;}#mermaid-1619098539359 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1619098539359 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1619098539359 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1619098539359 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1619098539359 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1619098539359 .cluster text{fill:#333;}#mermaid-1619098539359 .cluster span{color:#333;}#mermaid-1619098539359 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1619098539359:root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-1619098539359 flowchart{fill:apa;}</style><g><g class="output"><g class="clusters"><g class="cluster" id="flowchart-subGraph0-403" style="opacity: 1;" transform="translate(440.8004150390625,78.6014633178711)"><rect width="574.3341369628906" height="141.2029266357422" x="-287.1670684814453" y="-70.6014633178711"></rect><g class="label" transform="translate(0, -56.601463317871094)" id="mermaid-1619098539359Text"><g transform="translate(-82.875,-9.199996948242188)"><foreignObject width="165.75" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">server (queue RID, SID)</div></foreignObject></g></g></g></g><g class="edgePaths"><g class="edgePath LS-S LE-VS" style="opacity: 1;" id="L-S-VS"><path class="path" d="M75.83334350585938,81.20097351074219L114.73334503173828,81.20097351074219L153.6333465576172,81.20097351074219L179.13334655761716,81.70097351074219" marker-end="url(#arrowhead482)" style="fill:none"></path><defs><marker id="arrowhead482" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></path></marker></defs></g><g class="edgePath LS-VS LE-DB" style="opacity: 1;" id="L-VS-DB"><path class="path" d="M345.6333465576172,81.70097351074219L370.1333465576172,81.20097351074219L395.1333465576172,81.20097351074219" marker-end="url(#arrowhead483)" style="fill:none"></path><defs><marker id="arrowhead483" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></path></marker></defs></g><g class="edgePath LS-DB LE-VR" style="opacity: 1;" id="L-DB-VR"><path class="path" d="M467.9341278076172,81.20097351074219L492.9341278076172,81.20097351074219L518.4341278076172,81.70097351074219" marker-end="url(#arrowhead484)" style="fill:none"></path><defs><marker id="arrowhead484" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></path></marker></defs></g><g class="edgePath LS-R LE-VR" style="opacity: 1;" id="L-R-VR"><path class="path" d="M824.8508148193359,92.39981432441061L776.4091491699219,105.20195007324219L727.9674835205078,105.20195007324219L694.8952831342032,98.84534376577363" marker-end="url(#arrowhead485)" style="fill:none"></path><defs><marker id="arrowhead485" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></path></marker></defs></g><g class="edgePath LS-VR LE-R" style="opacity: 1;" id="L-VR-R"><path class="path" d="M696.4805028579143,67.72704270313326L727.9674835205078,62.0009765625L776.4091491699219,62.0009765625L824.8508148193359,72.24226681452237" marker-end="url(#arrowhead486)" style="fill:none"></path><defs><marker id="arrowhead486" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></path></marker></defs></g></g><g class="edgeLabels"><g class="edgeLabel" style="opacity: 1;" transform="translate(114.73334503173828,81.20097351074219)"><g transform="translate(-13.900001525878906,-9.199996948242188)" class="label"><rect rx="0" ry="0" width="27.800003051757812" height="18.399993896484375"></rect><foreignObject width="27.800003051757812" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-S-VS" class="edgeLabel L-LS-S' L-LE-VS">msg</span></div></foreignObject></g></g><g class="edgeLabel" style="opacity: 1;" transform=""><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-VS-DB" class="edgeLabel L-LS-VS' L-LE-DB"></span></div></foreignObject></g></g><g class="edgeLabel" style="opacity: 1;" transform=""><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-DB-VR" class="edgeLabel L-LS-DB' L-LE-VR"></span></div></foreignObject></g></g><g class="edgeLabel" style="opacity: 1;" transform="translate(776.4091491699219,105.20195007324219)"><g transform="translate(-21.616661071777344,-9.199996948242188)" class="label"><rect rx="0" ry="0" width="43.23332214355469" height="18.399993896484375"></rect><foreignObject width="43.23332214355469" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-R-VR" class="edgeLabel L-LS-R' L-LE-VR">1) sub</span></div></foreignObject></g></g><g class="edgeLabel" style="opacity: 1;" transform="translate(776.4091491699219,62.0009765625)"><g transform="translate(-23.441665649414062,-9.199996948242188)" class="label"><rect rx="0" ry="0" width="46.883331298828125" height="18.399993896484375"></rect><foreignObject width="46.883331298828125" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-VR-R" class="edgeLabel L-LS-VR' L-LE-R">2) msg</span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" style="opacity: 1;" id="flowchart-DB-396" label-offset-y="9.201213590566582" transform="translate(431.5337371826172,81.20097351074219)"><path d="M 0,9.201213590566582 a 36.400001525878906,9.201213590566582 0,0,0 72.80000305175781 0 a 36.400001525878906,9.201213590566582 0,0,0 -72.80000305175781 0 l 0,47.60120748705096 a 36.400001525878906,9.201213590566582 0,0,0 72.80000305175781 0 l 0,-47.60120748705096" transform="translate(-36.400001525878906,-33.00181733409206)" class="label-container"></path><g class="label" transform="translate(0,0)"><g transform="translate(-26.400001525878906,-9.199996948242188)"><foreignObject width="52.80000305175781" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">storage</div></foreignObject></g></g></g><g class="node default" style="opacity: 1;" id="flowchart-VS-391" transform="translate(261.8833465576172,81.20097351074219)"><polygon points="9.599998474121094,0 156.9000015258789,0 166.5,-19.199996948242188 156.9000015258789,-38.399993896484375 9.599998474121094,-38.399993896484375 0,-19.199996948242188" transform="translate(-83.25,19.199996948242188)" class="label-container"></polygon><g class="label" transform="translate(0,0)"><g transform="translate(-63.650001525878906,-9.199996948242188)"><foreignObject width="127.30000305175781" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">verify sender (SK)</div></foreignObject></g></g></g><g class="node default" style="opacity: 1;" id="flowchart-VR-392" transform="translate(610.4508056640625,81.20097351074219)"><polygon points="9.599998474121094,0 175.43334197998047,0 185.03334045410156,-19.199996948242188 175.43334197998047,-38.399993896484375 9.599998474121094,-38.399993896484375 0,-19.199996948242188" transform="translate(-92.51667022705078,19.199996948242188)" class="label-container"></polygon><g class="label" transform="translate(0,0)"><g transform="translate(-72.91667175292969,-9.199996948242188)"><foreignObject width="145.83334350585938" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">verify recipient (RK)</div></foreignObject></g></g></g><g class="node default" style="opacity: 1;" id="flowchart-S-393" transform="translate(41.91667175292969,81.20097351074219)"><rect rx="5" ry="5" x="-33.91667175292969" y="-19.199996948242188" width="67.83334350585938" height="38.399993896484375" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-23.916671752929688,-9.199996948242188)"><foreignObject width="47.833343505859375" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">sender</div></foreignObject></g></g></g><g class="node default" style="opacity: 1;" id="flowchart-R-399" transform="translate(867.2258148193359,81.20097351074219)"><rect rx="5" ry="5" x="-42.375" y="-19.199996948242188" width="84.75" height="38.399993896484375" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-32.375,-9.199996948242188)"><foreignObject width="64.75" height="18.399993896484375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">recipient</div></foreignObject></g></g></g></g></g></g></svg>