You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2018/09/01 07:45:59 UTC

polygene-java git commit: Proposal for a new blockchain centric entity-store subsystem.

Repository: polygene-java
Updated Branches:
  refs/heads/develop e9cf109c6 -> 5c9cf9aad


Proposal for a new blockchain centric entity-store subsystem.


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/5c9cf9aa
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/5c9cf9aa
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/5c9cf9aa

Branch: refs/heads/develop
Commit: 5c9cf9aad660eb45eb14f180f79b07cd2bb246c6
Parents: e9cf109
Author: niclas <ni...@hedhman.org>
Authored: Sat Sep 1 15:44:45 2018 +0800
Committer: niclas <ni...@hedhman.org>
Committed: Sat Sep 1 15:44:45 2018 +0800

----------------------------------------------------------------------
 artwork/blockchain-architecture.png | Bin 0 -> 90311 bytes
 artwork/blockchain-architecture.svg | 819 +++++++++++++++++++++++++++++++
 2 files changed, 819 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/5c9cf9aa/artwork/blockchain-architecture.png
----------------------------------------------------------------------
diff --git a/artwork/blockchain-architecture.png b/artwork/blockchain-architecture.png
new file mode 100644
index 0000000..bf330fd
Binary files /dev/null and b/artwork/blockchain-architecture.png differ

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/5c9cf9aa/artwork/blockchain-architecture.svg
----------------------------------------------------------------------
diff --git a/artwork/blockchain-architecture.svg b/artwork/blockchain-architecture.svg
new file mode 100644
index 0000000..f12b79e
--- /dev/null
+++ b/artwork/blockchain-architecture.svg
@@ -0,0 +1,819 @@
+<?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="312.5412mm"
+   height="240.99234mm"
+   viewBox="0 0 312.5412 240.99234"
+   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="691.7754"
+     inkscape:cy="404.2937"
+     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.7260078,-83.734316)">
+    <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.7;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
+       id="g7044">
+      <rect
+         y="125.735"
+         x="5.7343631"
+         height="14.631298"
+         width="268.74716"
+         id="rect916"
+         style="opacity:1;fill:#ffe4b7;fill-opacity:0.96078431;stroke:#774b00;stroke-width:0.7;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>
+    <rect
+       y="153.39786"
+       x="5.7005534"
+       height="14.633711"
+       width="214.17178"
+       id="rect821"
+       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
+       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="56.90591"
+       y="169.16753"
+       id="text847"
+       transform="scale(1.0373426,0.96400168)"><tspan
+         sodipodi:role="line"
+         x="56.90591"
+         y="169.16753"
+         style="stroke-width:0.22213705"
+         id="tspan851">Blockchain Entity Store</tspan></text>
+    <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="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>
+    <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="g7049">
+      <rect
+         style="opacity:1;fill:#b7ffbf;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96078431"
+         id="rect900"
+         width="202.73747"
+         height="12.918797"
+         x="71.719803"
+         y="112.80455" />
+      <text
+         transform="scale(1.0373426,0.9640017)"
+         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">
+      <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.7;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>
+    <rect
+       y="181.38333"
+       x="141.89977"
+       height="14.029976"
+       width="77.979988"
+       id="rect1021"
+       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" />
+    <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>
+    <rect
+       style="opacity:1;fill:#a16700;fill-opacity:0.96078432;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>
+    <rect
+       y="168.03156"
+       x="5.7014647"
+       height="13.361889"
+       width="73.786598"
+       id="rect859"
+       style="opacity:1;fill:#00a110;fill-opacity:0.96078432;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
+       id="g7054">
+      <rect
+         style="opacity:1;fill:#b7ffbf;fill-opacity:0.96078431;stroke:#00770e;stroke-width:0.7;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>
+    <rect
+       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"
+       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>
+    <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"></tspan></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.7;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.7;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.7;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.86032"
+           style="stroke-width:0.22213705"
+           id="tspan2195" /><tspan
+           sodipodi:role="line"
+           x="135.14246"
+           y="271.41376"
+           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"></flowPara></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.7;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>
+    <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>
+    <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(2.6458333,93.927084)">
+      <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>
+</svg>