Skip to content

Instantly share code, notes, and snippets.

@paul-hammant
Created September 17, 2017 19:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paul-hammant/aea1da39d4b62d635fa5f460972ab096 to your computer and use it in GitHub Desktop.
Save paul-hammant/aea1da39d4b62d635fa5f460972ab096 to your computer and use it in GitHub Desktop.
diff --git a/_posts/2017-09-17-merkle-trees-in-pictures.md b/_posts/2017-09-17-merkle-trees-in-pictures.md
index e2bfd942..a7334f7f 100644
--- a/_posts/2017-09-17-merkle-trees-in-pictures.md
+++ b/_posts/2017-09-17-merkle-trees-in-pictures.md
@@ -107,9 +107,7 @@ I'll try for that (SVG inline):
<line x1="784" y1="-111.77759" x2="784" y2="-139.32304" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<line x1="600.0604" y1="-184.41212" x2="600.0604" y2="-139.93516" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(222 20.87373)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="74.384">A Merke tr</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="74.096" y="15" textLength="45.04">ee at r</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="118.848" y="15" textLength="21.632">est</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="140.384">A Merke tree at rest</tspan>
</text>
<rect x="217" y="284.7703" width="25" height="19.587879" fill="#c0ffff"/>
<rect x="217" y="284.7703" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -179,8 +177,7 @@ I'll try for that (SVG inline):
<line x1="784" y1="194.5806" x2="784" y2="167.03514" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<line x1="600.0604" y1="121.94606" x2="600.0604" y2="166.42302" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(222 327.2319)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="161.232">A node changed, so it’</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="160.048" y="15" textLength="163.296">s SHA1 should change</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="332.232">A node changed, so it’s SHA1 should change</tspan>
</text>
<rect x="217" y="591.1285" width="25" height="19.587879" fill="#c0ffff"/>
<rect x="217" y="591.1285" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -250,9 +247,7 @@ I'll try for that (SVG inline):
<line x1="784" y1="500.9388" x2="784" y2="473.39333" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<line x1="600.0604" y1="428.30425" x2="600.0604" y2="472.7812" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(222 633.5901)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="114.976">After that its par</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="114.688" y="15" textLength="26.976">ent’</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="140.48" y="15" textLength="191.152">s SHA1 should change too</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="331.976">After that its parent’s SHA1 should change too</tspan>
</text>
<rect x="217" y="897.4867" width="25" height="19.587879" fill="#c0ffff"/>
<rect x="217" y="897.4867" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -322,9 +317,7 @@ I'll try for that (SVG inline):
<line x1="784" y1="807.297" x2="784" y2="779.7515" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<line x1="600.0604" y1="734.6624" x2="600.0604" y2="779.1394" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(222 939.9483)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="41.488">And fi</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="41.488" y="15" textLength="105.216">nally then the r</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="146.416" y="15" textLength="178.704">oot SHA1 should change</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="324.488">And finally then the root SHA1 should change</tspan>
</text>
<rect x="217" y="1203.8449" width="25" height="19.587879" fill="#c0ffff"/>
<rect x="217" y="1203.8449" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -397,8 +390,7 @@ I'll try for that (SVG inline):
<line x1="600.0604" y1="1041.0206" x2="600.0604" y2="1085.4976" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(222 1245.5825)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="360.976">A node is deleted: its SHA1 should be deleted too </tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="33.448" textLength="335.184">And another added, meaning a new SHA1 is cr</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="334.896" y="33.448" textLength="77.04">eated for it</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="33.448" textLength="412.184">And another added, meaning a new SHA1 is created for it</tspan>
</text>
<rect x="660.6604" y="1203.8449" width="25" height="19.587879" fill="#40ff40"/>
<rect x="660.6604" y="1203.8449" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -469,9 +461,7 @@ I'll try for that (SVG inline):
<line x1="784" y1="1437.0133" x2="784" y2="1409.4679" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<line x1="600.0604" y1="1364.3788" x2="600.0604" y2="1408.8558" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(222 1569.6647)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="63.408">Their par</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="63.12" y="15" textLength="26.976">ent’</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="88.912" y="15" textLength="191.152">s SHA1 should change too</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="280.408">Their parent’s SHA1 should change too</tspan>
</text>
<rect x="660.6604" y="1527.203" width="25" height="19.587879" fill="#40ff40"/>
<rect x="660.6604" y="1527.203" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -541,9 +531,7 @@ I'll try for that (SVG inline):
<line x1="784" y1="1743.3715" x2="784" y2="1715.826" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<line x1="600.0604" y1="1670.737" x2="600.0604" y2="1715.214" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(222 1876.0228)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="41.488">And fi</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="41.488" y="15" textLength="105.216">nally then the r</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="146.416" y="15" textLength="178.704">oot SHA1 should change</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="324.488">And finally then the root SHA1 should change</tspan>
</text>
<rect x="660.6604" y="1833.5612" width="25" height="19.587879" fill="#40ff40"/>
<rect x="660.6604" y="1833.5612" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -673,15 +661,13 @@ I'll recycle the picture from the other blog entry today:
<rect x="486" y="311" width="66.5" height="44" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(487 315.5939)" fill="black">
<tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="17.34" y="14" textLength="29.82">abc/</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="31.406097" textLength="17.612">dir</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="19.797" y="31.406097" textLength="42.266">ectory</tspan>
+ <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="31.406097" textLength="59.612">directory</tspan>
</text>
<rect x="637" y="311" width="66.5" height="44" fill="#00fa00"/>
<rect x="637" y="311" width="66.5" height="44" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(638 315.5939)" fill="black">
<tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="19.027" y="14" textLength="26.446">def/</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="31.406097" textLength="17.612">dir</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="19.797" y="31.406097" textLength="42.266">ectory</tspan>
+ <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="31.406097" textLength="59.612">directory</tspan>
</text>
<line x1="584.4205" y1="355" x2="578.5673" y2="475.0928" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/>
<rect x="557.5" y="311" width="52" height="44" fill="#ffff80"/>
@@ -707,24 +693,20 @@ I'll recycle the picture from the other blog entry today:
<text transform="translate(519.5 187.28791)" fill="black">
<tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="7.897" y="14" textLength="48.706">interm-</tspan>
<tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="11.649" y="31.406097" textLength="45.094">ediate </tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="48.812195" textLength="17.612">dir</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="19.797" y="48.812195" textLength="42.266">ectory</tspan>
+ <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="48.812195" textLength="59.612">directory</tspan>
</text>
<line x1="570.5" y1="355" x2="243.07388" y2="476.0928" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/>
<rect x="592" y="78.4547" width="66.5" height="44" fill="yellow"/>
<rect x="592" y="78.4547" width="66.5" height="44" stroke="#ff7e79" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
<text transform="translate(593 84.0627)" fill="black">
<tspan font-family="Helvetica Neue" font-size="14" font-weight="500" x="3.865" y="13" textLength="60.662">SHA1 for </tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="500" x="8.002" y="29.392" textLength="28.266">the r</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="500" x="36.016" y="29.392" textLength="20.482">oot</tspan>
+ <tspan font-family="Helvetica Neue" font-size="14" font-weight="500" x="8.002" y="29.392" textLength="48.266">the root</tspan>
</text>
<rect x="518.5" y="78.4547" width="66.5" height="44" fill="#ff7e79"/>
<rect x="518.5" y="78.4547" width="66.5" height="44" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(519.5 83.0486)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="14.743" y="14" textLength="9.338">‘r</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="23.829" y="14" textLength="25.928">oot’</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="31.406097" textLength="17.612">dir</tspan>
- <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="19.797" y="31.406097" textLength="42.266">ectory</tspan>
+ <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="14.743" y="14" textLength="34.338">‘root’</tspan>
+ <tspan font-family="Helvetica Neue" font-size="14" font-weight="bold" x="2.437" y="31.406097" textLength="59.612">directory</tspan>
</text>
<line x1="625.25" y1="123.77963" x2="625.25" y2="185.14706" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="4,4"/>
</g>
@@ -828,9 +810,7 @@ I'll recycle the picture from the other blog entry today:
<line x1="707" y1="-59.77759" x2="707" y2="-87.32304" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<line x1="523.0604" y1="-132.41212" x2="523.0604" y2="-87.93516" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(145.80427 282.0956)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="9.184">T</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="7.408" y="15" textLength="307.568">ypical operations on a centralized Merkle tr</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="314.688" y="15" textLength="17.184">ee</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="307.568">Typical operations on a centralized Merkle tree</tspan>
</text>
<rect x="343.5" y="123.61818" width="25" height="19.587879" fill="#40ff40"/>
<rect x="343.5" y="123.61818" width="25" height="19.587879" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
@@ -898,7 +878,7 @@ I'll recycle the picture from the other blog entry today:
</text>
<text transform="translate(427.04545 203.328)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="15" textLength="71.44">added, in </tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="33.448" textLength="62.24">addition </tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="33.448" textLength="62.24"></tspan>
<tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="0" y="51.895996" textLength="85.072">to the move</tspan>
</text>
<text transform="translate(814.0309 108.07563)" fill="black">
@@ -911,9 +891,7 @@ I'll recycle the picture from the other blog entry today:
<tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".232" y="15" textLength="155.536">(will look like a delete)</tspan>
</text>
<text transform="translate(577 -164.27003)" fill="black">
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".388" y="15" textLength="32.896">addr</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="32.996" y="15" textLength="34.368">ess r</tspan>
- <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="67.076" y="15" textLength="121.536">emains the same</tspan>
+ <tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x=".388" y="15" textLength="177.896">address remains the same</tspan>
<tspan font-family="Helvetica Neue" font-size="16" font-weight="500" x="5.588" y="33.448" textLength="177.824">even if the hash changes</tspan>
</text>
<line x1="572" y1="-142.72684" x2="556.8952" y2="-142.25697" marker-end="url(#FilledArrow_Marker_2)" stroke="#aaa" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment