blob: 296ab38bd729205aae53fcbe7a5c04aeaa037872 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="346.19766mm"
height="248.34555mm"
viewBox="0 0 346.19766 248.34555"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="blockchain-architecture.svg"
inkscape:export-filename="/home/niclas/dev/polygene/java/artwork/blockchain-architecture.png"
inkscape:export-xdpi="55.950001"
inkscape:export-ydpi="55.950001">
<defs
id="defs2">
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path1262"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(-0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker6623"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path6621"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path1244"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path1256"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="marker5297"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path5295"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4931"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mstart"
inkscape:collect="always">
<path
transform="scale(0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
id="path4929"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="marker4367"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4365"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker3689"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mstart">
<path
transform="scale(0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
id="path3687"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="marker2223"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path2221"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1581"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mstart"
inkscape:collect="always">
<path
transform="scale(0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
id="path1579"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Mstart"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path1259"
style="fill:#004d83;fill-opacity:0.96078431;fill-rule:evenodd;stroke:#004d83;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:0.96078431"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="scale(0.6)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="695.71015"
inkscape:cy="526.14851"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1015"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="11"
fit-margin-left="11"
fit-margin-right="11"
fit-margin-bottom="11" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(5.7555977,-83.734316)">
<g
id="g1074">
<rect
y="125.76801"
x="5.7673745"
height="14.565275"
width="323.29272"
id="rect916"
style="opacity:1;fill:#ffe4b7;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
transform="scale(1.0373426,0.96400168)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
x="100.03648"
y="140.47043"
id="text920"><tspan
sodipodi:role="line"
x="100.03648"
y="140.47043"
style="stroke-width:0.22213705"
id="tspan918">UnitOfWorkImpl</tspan></text>
</g>
<g
id="g1069">
<rect
style="opacity:1;fill:#ffe4b7;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect821"
width="214.17178"
height="14.633711"
x="5.7005534"
y="153.39786" />
<text
transform="scale(1.0373426,0.96400168)"
id="text847"
y="169.16753"
x="56.90591"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
xml:space="preserve"><tspan
id="tspan851"
style="stroke-width:0.22213705"
y="169.16753"
x="56.90591"
sodipodi:role="line">Blockchain Entity Store</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="55.388588"
y="92.850609"
id="text830"><tspan
sodipodi:role="line"
id="tspan828"
x="55.388588"
y="98.907089"
style="stroke-width:0.26458332" /></text>
<text
id="text948"
y="114.88031"
x="274.17941"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="120.93679"
x="274.17941"
id="tspan946"
sodipodi:role="line" /></text>
<g
id="g1079">
<rect
style="opacity:1;fill:#b7ffbf;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect900"
width="257.2919"
height="12.832847"
x="71.762779"
y="112.84753" />
<text
transform="scale(1.0373426,0.96400169)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
x="133.10106"
y="127.03011"
id="text904"><tspan
sodipodi:role="line"
id="tspan902"
x="133.10106"
y="127.03011"
style="stroke-width:0.22213705">UnitOfWork API</tspan></text>
</g>
<g
id="g7039"
transform="matrix(1.001376,0,0,0.99996365,-0.00768328,0.00534018)">
<rect
y="140.45123"
x="5.7540669"
height="12.893109"
width="213.83664"
id="rect815"
style="opacity:1;fill:#b7ffbf;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
transform="scale(1.0373426,0.96400168)"
id="text819"
y="154.83464"
x="75.660255"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
xml:space="preserve"><tspan
style="stroke-width:0.22213705"
y="154.83464"
x="75.660255"
id="tspan817"
sodipodi:role="line">EntityStore SPI</tspan></text>
</g>
<g
id="g1064">
<g
id="g1049">
<rect
style="opacity:1;fill:#a16700;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect869"
width="73.786118"
height="14.029976"
x="5.7013316"
y="181.38321" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.86538506px;line-height:5.5408659px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22163463"
x="14.357351"
y="198.28429"
id="text873"
transform="scale(1.0349316,0.96624743)"><tspan
sodipodi:role="line"
id="tspan871"
x="14.357351"
y="198.28429"
style="stroke-width:0.22163463">EOS Impl***</tspan></text>
</g>
<g
id="g1054">
<rect
y="168.03156"
x="5.7014647"
height="13.361889"
width="73.786598"
id="rect859"
style="opacity:1;fill:#00a110;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
x="8.7734537"
y="184.54926"
id="text863"
transform="scale(1.0373426,0.96400169)"><tspan
sodipodi:role="line"
id="tspan861"
x="8.7734537"
y="184.54926"
style="stroke-width:0.22213705">Blockchain SPI</tspan></text>
</g>
</g>
<g
id="g7054">
<rect
style="opacity:1;fill:#b7ffbf;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect1005"
width="66.006752"
height="12.985217"
x="5.669301"
y="112.77879" />
<text
transform="scale(1.0383277,0.96308704)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88371468px;line-height:5.55232191px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22209287"
x="15.378551"
y="127.15469"
id="text1009"><tspan
sodipodi:role="line"
id="tspan1007"
x="15.378551"
y="127.15469"
style="stroke-width:0.22209287">Usecase</tspan></text>
</g>
<g
id="g1034">
<g
id="g1009">
<rect
y="181.38333"
x="141.89977"
height="14.029976"
width="77.979988"
id="rect1021"
style="opacity:1;fill:#a16400;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
transform="scale(1.0349316,0.96624743)"
id="text1025"
y="198.28441"
x="148.05325"
style="font-style:normal;font-weight:normal;font-size:8.86538506px;line-height:5.5408659px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22163463"
xml:space="preserve"><tspan
style="stroke-width:0.22163463"
y="198.28441"
x="148.05325"
id="tspan1023"
sodipodi:role="line">User Impl**</tspan></text>
</g>
<g
id="g1014">
<rect
style="opacity:1;fill:#00a112;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect832"
width="77.979988"
height="13.351756"
x="141.89977"
y="168.03157" />
<text
id="text836"
y="184.58159"
x="137.22231"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.08395731;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"
transform="scale(1.0373426,0.96400168)"><tspan
style="stroke-width:0.08395731;stroke-miterlimit:4;stroke-dasharray:none"
y="184.58159"
x="137.22231"
id="tspan834"
sodipodi:role="line">MessageSink SPI</tspan></text>
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:12.69999981px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="35.514648"
y="104.38334"
id="text1195"><tspan
sodipodi:role="line"
x="35.514648"
y="104.38334"
style="stroke-width:0.26458332"
id="tspan1197">Blockchain EntityStore Architecture</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="12.964583"
y="210.48125"
id="text1206"><tspan
sodipodi:role="line"
id="tspan1204"
x="12.964583"
y="215.25478"
style="font-size:5.64444447px;stroke-width:0.26458332" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:12.69999981px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="17.4625"
y="287.21045"
id="text1210"><tspan
sodipodi:role="line"
id="tspan1208"
x="17.4625"
y="287.21045"
style="font-size:5.64444447px;stroke-width:0.26458332">* Standard entity caching in Polygene</tspan><tspan
sodipodi:role="line"
x="17.4625"
y="295.65784"
style="font-size:5.64444447px;stroke-width:0.26458332"
id="tspan1214">** Business app developer must provide a mechanism to send messages</tspan><tspan
sodipodi:role="line"
x="17.4625"
y="304.10519"
style="font-size:5.64444447px;stroke-width:0.26458332"
id="tspan1216"> to user, to sign and push transaction to the blockchain.</tspan><tspan
sodipodi:role="line"
x="17.4625"
y="312.55258"
style="font-size:5.64444447px;stroke-width:0.26458332"
id="tspan1220">*** EOS is one blockchain suited for storage of information. Suitability vary </tspan><tspan
sodipodi:role="line"
x="17.4625"
y="320.99994"
style="font-size:5.64444447px;stroke-width:0.26458332"
id="tspan7221"> from chain to chain.</tspan></text>
<rect
style="opacity:1;fill:#b7e1ff;fill-opacity:0.96078431;stroke:#004d83;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect1222"
width="97.405632"
height="15.913962"
x="5.5944023"
y="235.46481" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:12.69999981px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="13.161743"
y="248.15639"
id="text1226"><tspan
sodipodi:role="line"
id="tspan1224"
x="13.161743"
y="248.15639"
style="stroke-width:0.26458332">EOS Mainnet</tspan></text>
<path
style="fill:none;stroke:#004d83;stroke-width:1.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431;marker-start:url(#Arrow2Mstart)"
d="M 17.702774,213.06672 V 199.57297"
id="path1233"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path1577"
d="M 52.652083,201.48545 V 214.9792"
style="fill:none;stroke:#004d83;stroke-width:1.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431;marker-start:url(#marker1581)" />
<g
id="g7119">
<rect
style="opacity:1;fill:#b7e1ff;fill-opacity:0.96078431;stroke:#004d83;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect2128"
width="57.528679"
height="15.989104"
x="5.5944023"
y="219.47571" />
<text
id="text2135"
y="239.44029"
x="13.436713"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
xml:space="preserve"
transform="scale(1.0373426,0.96400168)"><tspan
style="stroke-width:0.22213705"
y="239.44029"
x="13.436713"
id="tspan2133"
sodipodi:role="line">API Node</tspan></text>
</g>
<g
id="g7141">
<rect
y="220.00589"
x="137.18608"
height="45.773663"
width="88.636154"
id="rect2187"
style="opacity:1;fill:#b7e1ff;fill-opacity:0.96078431;stroke:#004d83;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
transform="scale(1.0373426,0.96400168)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
x="135.14246"
y="238.09317"
id="text2201"><tspan
sodipodi:role="line"
id="tspan2189"
x="135.14246"
y="238.09317"
style="stroke-width:0.22213705">For sign+push via</tspan><tspan
id="tspan2859"
sodipodi:role="line"
x="135.14246"
y="243.64659"
style="stroke-width:0.22213705" /><tspan
id="tspan2857"
sodipodi:role="line"
x="135.14246"
y="249.20003"
style="stroke-width:0.22213705"> - HTTP</tspan><tspan
sodipodi:role="line"
x="135.14246"
y="254.75345"
style="stroke-width:0.22213705"
id="tspan2191" /><tspan
sodipodi:role="line"
x="135.14246"
y="260.30688"
style="stroke-width:0.22213705"
id="tspan2193"> - Queue</tspan><tspan
sodipodi:role="line"
x="135.14246"
y="265.86029"
style="stroke-width:0.22213705"
id="tspan2195" /><tspan
sodipodi:role="line"
x="135.14246"
y="271.41373"
style="stroke-width:0.22213705"
id="tspan2197"> - Smoke Signals</tspan><tspan
sodipodi:role="line"
x="135.14246"
y="276.96716"
style="stroke-width:0.22213705"
id="tspan2199" /></text>
</g>
<flowRoot
xml:space="preserve"
id="flowRoot2893"
style="font-style:normal;font-weight:normal;font-size:48px;line-height:25px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
transform="matrix(0.26458333,0,0,0.26458333,0,87)"><flowRegion
id="flowRegion2895"><rect
id="rect2897"
width="36"
height="106"
x="317"
y="689.70081" /></flowRegion><flowPara
id="flowPara2899" /></flowRoot> <g
id="g7129">
<rect
y="212.42325"
x="93.259789"
height="16.121218"
width="37.55246"
id="rect3597"
style="opacity:1;fill:#b7e1ff;fill-opacity:0.96078431;stroke:#004d83;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
transform="scale(1.0373426,0.96400168)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none"
x="98.520859"
y="231.95174"
id="text3601"><tspan
sodipodi:role="line"
id="tspan3599"
x="98.520859"
y="231.95174"
style="stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none">IPFS</tspan></text>
</g>
<g
id="g1044">
<g
id="g1024">
<rect
style="opacity:1;fill:#a16400;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect3673"
width="62.441643"
height="14.029976"
x="79.458122"
y="181.38333" />
<text
transform="scale(1.0373426,0.96400168)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.08395731;stroke-miterlimit:4;stroke-dasharray:none"
x="90.166733"
y="198.66805"
id="text3677"><tspan
sodipodi:role="line"
id="tspan3675"
x="90.166733"
y="198.66805"
style="stroke-width:0.08395731;stroke-miterlimit:4;stroke-dasharray:none">IPFS ES</tspan></text>
</g>
<g
id="g1019">
<rect
y="168.03157"
x="79.458122"
height="13.351756"
width="62.441643"
id="rect3667"
style="opacity:1;fill:#b7ffbf;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
transform="scale(1.0373426,0.96400168)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.08395731;stroke-miterlimit:4;stroke-dasharray:none"
x="84.15992"
y="184.02121"
id="text3671"><tspan
sodipodi:role="line"
id="tspan3669"
x="84.15992"
y="184.02121"
style="stroke-width:0.08395731;stroke-miterlimit:4;stroke-dasharray:none">ES(kv) SPI</tspan></text>
</g>
</g>
<path
inkscape:connector-curvature="0"
id="path3685"
d="M 103.69235,209.62711 V 196.13336"
style="fill:none;stroke:#004d83;stroke-width:1.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431;marker-start:url(#marker3689)" />
<path
style="fill:none;stroke:#004d83;stroke-width:1.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431;marker-start:url(#marker4367)"
d="m 116.15208,198.04584 v 13.49375"
id="path4363"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4927"
d="M 178.83402,213.86047 V 200.36672"
style="fill:none;stroke:#004d83;stroke-width:1.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431;marker-start:url(#marker4931)" />
<path
style="fill:none;stroke:#004d83;stroke-width:1.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431;marker-end:url(#Arrow2Mend)"
d="M 133.35,244.34792 H 107.42083"
id="path6411"
inkscape:connector-curvature="0" />
<g
id="g7211"
transform="translate(34.395833,100.80625)">
<rect
y="179.47041"
x="242.45316"
height="5.8208332"
width="5.5562501"
id="rect7166"
style="opacity:1;fill:#b6ffbe;fill-opacity:0.96078431;stroke:#004d83;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<rect
style="opacity:1;fill:#00a112;fill-opacity:0.96078431;stroke:#004d83;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect7168"
width="5.5562501"
height="5.8208332"
x="242.45316"
y="190.05376" />
<rect
y="200.6371"
x="242.45316"
height="5.8208332"
width="5.5562501"
id="rect7170"
style="opacity:1;fill:#ffe4b7;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<rect
style="opacity:1;fill:#a16400;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect7172"
width="5.5562501"
height="5.8208332"
x="242.45316"
y="211.22044" />
<text
id="text7182"
y="184.23293"
x="249.86154"
style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="184.23293"
x="249.86154"
id="tspan7180"
sodipodi:role="line">Existing API/SPI</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="249.86154"
y="194.81627"
id="text7186"><tspan
sodipodi:role="line"
id="tspan7184"
x="249.86154"
y="194.81627"
style="stroke-width:0.26458332">New API/SPI</tspan></text>
<text
id="text7190"
y="205.39961"
x="249.86154"
style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="205.39961"
x="249.86154"
id="tspan7188"
sodipodi:role="line">Existing Impl</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.64444447px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="249.86154"
y="215.98296"
id="text7194"><tspan
sodipodi:role="line"
id="tspan7192"
x="249.86154"
y="215.98296"
style="stroke-width:0.26458332">New Impl</tspan></text>
<rect
y="173.64958"
x="237.16148"
height="50.799999"
width="62.177082"
id="rect7196"
style="opacity:1;fill:none;fill-opacity:0.96078431;stroke:#000000;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g1004">
<g
id="g989">
<rect
style="opacity:1;fill:#a16400;fill-opacity:0.96078432;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect954"
width="54.610504"
height="14.724322"
x="274.48157"
y="153.30725" />
<text
transform="scale(1.0373426,0.96400168)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
x="268.91104"
y="169.04245"
id="text958"><tspan
sodipodi:role="line"
id="tspan956"
x="268.91104"
y="169.04245"
style="stroke-width:0.22213705">Crypt Imp</tspan></text>
</g>
<g
id="g994">
<rect
y="140.36748"
x="274.48285"
height="12.939759"
width="54.609222"
id="rect962"
style="opacity:1;fill:#00a112;fill-opacity:0.96078432;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
transform="scale(1.0373426,0.96400168)"
id="text966"
y="154.69386"
x="268.03741"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
xml:space="preserve"><tspan
style="stroke-width:0.22213705"
y="154.69386"
x="268.03741"
id="tspan964"
sodipodi:role="line">Crypto SPI</tspan></text>
</g>
</g>
<g
id="g7094">
<g
id="g7024">
<rect
y="153.30725"
x="219.87233"
height="14.724322"
width="54.610504"
id="rect938"
style="opacity:1;fill:#ffe4b7;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431" />
<text
id="text942"
y="169.12054"
x="214.56691"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
xml:space="preserve"
transform="scale(1.0373426,0.96400168)"><tspan
style="stroke-width:0.22213705"
y="169.12054"
x="214.56691"
id="tspan940"
sodipodi:role="line">Cache Imp</tspan></text>
</g>
<g
id="g7029">
<rect
style="opacity:1;fill:#b7ffbf;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.69999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
id="rect927"
width="54.609222"
height="12.939759"
x="219.87361"
y="140.36748" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:8.88548279px;line-height:5.55342627px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.22213705"
x="216.40927"
y="155.63318"
id="text931"
transform="scale(1.0373426,0.96400168)"><tspan
sodipodi:role="line"
id="tspan929"
x="216.40927"
y="155.63318"
style="stroke-width:0.22213705">Cache SPI</tspan></text>
</g>
</g>
</g>
</svg>