-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
532b46a
commit 10dc19c
Showing
2 changed files
with
222 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
<mxfile host="Electron" modified="2024-05-11T18:25:39.956Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.2.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="Sn4l_TjOrPxpFmeekhqn" version="24.2.5" type="device"> | ||
<diagram name="Page-1" id="4J5jO7RefVaEEBJmN482"> | ||
<mxGraphModel dx="2993" dy="1901" grid="0" gridSize="5" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> | ||
<root> | ||
<mxCell id="0" /> | ||
<mxCell id="1" parent="0" /> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-7" value="<div style="font-size: 19px;"><br></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;align=right;" vertex="1" parent="1"> | ||
<mxGeometry x="-165.5" y="-118" width="821.5" height="1364" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-20" value="" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeColor=default;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" vertex="1" parent="1"> | ||
<mxGeometry x="-612" y="312" width="405" height="602" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-6" value="<b>Verifier:main</b><br><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;perimeterSpacing=1;align=left;" vertex="1" parent="1"> | ||
<mxGeometry x="-120" y="-100" width="120" height="180" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-2" value="<span style="font-size: 14px;">t</span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeColor=default;" vertex="1" parent="1"> | ||
<mxGeometry x="-867" y="-463" width="280" height="215" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-4" value="<div style=""><b style="background-color: initial; font-size: 17px;"><i>Context - 11/05/2024</i></b></div><div style="text-align: left;"><ul><li><span style="font-size: 14px;">last version release by nyzo team: v642</span></li><li><span style="font-size: 14px;">last version release by construct0: v644.9</span></li><li><span style="font-size: 14px;">&gt;70% of incycle verifiers have no running instance</span></li><li><span style="font-size: 14px;">&gt;99% of incycle verifiers did not adopt v644</span></li><li><span style="font-size: 14px;">last block produced by &lt; v644 nodes on 14/12/2023 (23530693)</span></li><li><span style="font-size: 14px;">extra blocks produced by v644 nodes</span></li><ul><li><span style="font-size: 14px;">25/01/2024 (</span>23530694)</li><li><span style="font-size: 14px;">16/02/2024 (</span>23530695)</li><li><span style="font-size: 14px;">16/02/2024 (</span>23530696)</li><li><span style="font-size: 14px;">16/02/2024 (</span>23530697)</li></ul><li><span style="font-size: 14px;">Communication is scarce and unverifiable, only a small group of chat participants</span></li><li><span style="font-size: 14px;">Creating new nyzo verifier instances today, without manually providing them with files from an active node, fails in multiple ways</span></li><li><span style="font-size: 14px;">nyzo.co infra offline since 15/02/24</span></li></ul></div><div style="font-size: 14px;"><font style="font-size: 14px;"><i>This workspace contains operations performed / logic flow of a verifier which is starting up, unimportant things are omitted</i></font></div><div style="font-size: 14px;"><font style="font-size: 14px;"><br></font></div><div style="font-size: 14px;"><font style="font-size: 14px;"><br></font></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeColor=default;" vertex="1" parent="1"> | ||
<mxGeometry x="-612" y="-118" width="405" height="410" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-5" value="<b>ttt</b><div>t</div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1"> | ||
<mxGeometry x="-617" y="-339" width="120" height="60" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-8" value="<b>BlockManager:initialize</b><br><div>creates block directories, attempts to&nbsp;<span style="background-color: initial;">load genesis block but fails</span></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1"> | ||
<mxGeometry x="-60" y="-60" width="573" height="41" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-13" value="<b>Verifier:start</b><br><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;align=left;" vertex="1" parent="1"> | ||
<mxGeometry x="-60" y="-9" width="125" height="984" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-14" value="<b>Verifier:loadGenesisBlock</b><br><div>gets URL from<br><i>SeedTransactionManager</i></div><div><i><br></i></div><div>fails to fetch, keeps retrying&nbsp;</div><div>ad infinitum</div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1"> | ||
<mxGeometry x="-20" y="31" width="200" height="100" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-16" value="<b><font style="font-size: 16px;">1</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC0000;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="165" y="66" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-17" value="<b>SeedTransactionManager:start</b><div>tries to fetch seed txs</div><div><br></div><div>fails, keeps retrying&nbsp;</div><div>ad infinitum</div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1"> | ||
<mxGeometry x="-20" y="151" width="200" height="100" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-18" value="<b><font style="font-size: 16px;">2</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC0000;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="165" y="186" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-19" value="<b><font style="font-size: 16px;">1</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC0000;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="-582" y="357" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-21" value="Add the individual nyzoblock from one of your instances in the blocks/individual folder<div>Applying the preference override <br>from problem #2's solution is not sufficient (cf. trello)</div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="-527" y="362" width="310" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-22" value="<div><span style="font-size: 17px;"><b><i>problem #<span style="white-space: pre;">	</span><span style="white-space: pre;">	</span><span style="white-space: pre;">	</span><span style="white-space: pre;">	</span><span style="white-space: pre;">	</span>manual solution</i></b></span></div><div style="text-align: left;"><ul></ul></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="-612" y="322" width="405" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-23" value="<b><font style="font-size: 16px;">2</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC0000;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="-582" y="422" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-24" value="Add line to preferences, overriding the nyzo.co default<div><i>seed_transaction_base_url=https://seed.nyzo.org</i><br></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="-527" y="422" width="305" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-26" value="Text" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="-806" y="-342" width="60" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-27" value="<b>Verifier:fetchMesh</b><div><b>Verifier:sendNodeJoinMessage<br></b><div>contacts trusted entry points, receives list of nodes</div></div><div><br></div><div>sends NodeJoin message to trusted entry points</div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1"> | ||
<mxGeometry x="-20" y="271" width="200" height="120" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-28" value="<div><b>NodeManager:sendNodeJoinRequests</b></div><div>sends NodeJoin message to nodes</div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1"> | ||
<mxGeometry x="-20" y="411" width="250" height="60" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-29" value="<b>ChainInitializationManager:initializeFrozenEdge</b><div>contacts trusted entry points, receives bootstrap responses</div><div><br></div><div>waits 5s and determines which bootstrap response's content is <u>the most common</u></div><div><br></div><div><hr><br></div><div><i>If the instance is running v644 and the trusted entry points in your list respond with bootstrap responses for which the frozenEdgeHeight is smaller than those of v644 nodes (as is the case, see context)<br><br>Then the instance does not consider the higher frozen edge as valid, yet</i><br></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1"> | ||
<mxGeometry x="-20" y="491" width="300" height="260" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-30" value="<b><font style="font-size: 16px;">3</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC6D00;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="-582" y="487" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-31" value="Limit the entries in the trusted entry points list (temporarily) to nodes running v644, if you wish to accept and adopt the difference in frozen edge block height and cycle length" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="-527" y="472" width="305" height="70" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="uOYiliv3CCgEoweYgntA-32" target="uOYiliv3CCgEoweYgntA-38"> | ||
<mxGeometry relative="1" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-32" value="<b><font style="font-size: 16px;">3</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC6D00;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="265" y="666" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-34" value="contacts trusted entry points until atleast &gt;50% of the incycle identifiers have an active instance" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="-50" y="791" width="105" height="100" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-35" value="<b><font style="font-size: 16px;">4</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC0000;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="50" y="826" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="uOYiliv3CCgEoweYgntA-38" target="uOYiliv3CCgEoweYgntA-35"> | ||
<mxGeometry relative="1" as="geometry"> | ||
<mxPoint x="165" y="812.2499999999995" as="sourcePoint" /> | ||
</mxGeometry> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-38" value="<div><span style="background-color: initial;">v644 agressively enforces performance score removals,</span><br></div><div>due to having advanced by 4 blocks, not only the frozen edge height differs, but also the amount of incycle verifiers</div><div><br></div><div><i><b>problem 4 is exacerbated by accepting a &lt;v644 bootstrap response while intentionally deciding to adopt and run a v644 instance (problem 3),</b></i></div><div><br></div><div>the odds of meeting the &gt;50% barrier are higher when accepting the v644 bootstrap, due to the smaller amount of incycle verifiers</div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;opacity=60;strokeColor=none;fillColor=#dae8fc;verticalAlign=top;align=right;" vertex="1" parent="1"> | ||
<mxGeometry x="165" y="761" width="441" height="158" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-42" value="<b><font style="font-size: 16px;">4</font></b>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#FC0000;strokeColor=none;fontColor=#FFFAFA;" vertex="1" parent="1"> | ||
<mxGeometry x="-582" y="552" width="30" height="30" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-43" value="(&lt; v644) Stay stuck until incycle verifiers become active again and slowly drop inactive nodes, which'd be a large demand (many cycles) for a network in poor health <br><br>(75% of incycle verifiers' block votes required for 1 block to be produced)<br>(1 inactive incycle verifier can be dropped per cycle iteration if said verifier produces no block)<div>~= e.g. removing 100 nodes would require &gt;100,000 blocks to be produced<br><div><hr></div><div>(v644)&nbsp;<br>(75% down to &gt;50% if production fails for some time, of incycle verifiers' block votes required for 1 block to be produced)</div></div><div>(unlimited amount of inactive incycle verifiers can be dropped for each block being produced -- if the open edge height indicates a gap of at least 12342 blocks when compared against the frozen edge height -- if previously a 0 block gap; then this would occur after 24h of stalling)</div><div>~= e.g. removing 100 nodes would require, at most, one cycle iteration of blocks to be produced (removed when no block is produced)</div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="-527" y="542" width="305" height="345" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-44" value="<b>Verifier:verifierMain</b><br><div><br></div><div><br></div><div style="text-align: center;">....</div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;align=left;" vertex="1" parent="1"> | ||
<mxGeometry x="-20" y="919" width="125" height="165" as="geometry" /> | ||
</mxCell> | ||
<mxCell id="uOYiliv3CCgEoweYgntA-45" value="<div style="text-align: right; font-size: 19px;"><b style="background-color: initial;">New nyzoVerifier instance, first run</b><br></div><div style="text-align: right; font-size: 19px;"><b>Coupled to an incycle identifier</b></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> | ||
<mxGeometry x="265" y="24" width="354" height="80" as="geometry" /> | ||
</mxCell> | ||
</root> | ||
</mxGraphModel> | ||
</diagram> | ||
</mxfile> |
Oops, something went wrong.