<map version="0.8.1">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
-<node CREATED="1236122299751" ID="Freemind_Link_1069566441" MODIFIED="1236122354932" TEXT="Generic Object Sharing Protocol">
-<font BOLD="true" NAME="Dialog" SIZE="18"/>
-<node CREATED="1236123417491" FOLDED="true" ID="Freemind_Link_1660540085" MODIFIED="1236819299996" POSITION="right" TEXT="Hub Identification">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236122299751" ID="Freemind_Link_1069566441" MODIFIED="1236899601270" TEXT="Generic Object Sharing Protocol">
+<font BOLD="true" NAME="Dialog" SIZE="20"/>
+<node CREATED="1236123417491" FOLDED="true" ID="Freemind_Link_1660540085" MODIFIED="1236899597347" POSITION="right" TEXT="Hub Identification">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
<node CREATED="1236124236611" ID="Freemind_Link_780558731" MODIFIED="1236124257084" TEXT="Every hub generates an id string by random">
<node CREATED="1236124483890" ID="Freemind_Link_1498010716" MODIFIED="1236124589043" TEXT="This is the Hub-Id (Hub Identifier)"/>
<node CREATED="1236124257580" ID="Freemind_Link_458280781" MODIFIED="1236124263937" TEXT="Only on first use"/>
<node CREATED="1236125114584" ID="Freemind_Link_1617168424" MODIFIED="1236125131976" TEXT="Unregistered hubs does not receive negative votings"/>
</node>
</node>
-<node CREATED="1236126779348" FOLDED="true" ID="Freemind_Link_1339348415" MODIFIED="1236819299995" POSITION="right" TEXT="Bootstrapping">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236126779348" FOLDED="true" ID="Freemind_Link_1339348415" MODIFIED="1236899597346" POSITION="right" TEXT="Bootstrapping">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
<node CREATED="1236126838827" ID="Freemind_Link_453620216" MODIFIED="1236126858610" TEXT="At least one, better 3 to 4, master-nodes are required">
<node CREATED="1236126861889" ID="Freemind_Link_265648584" MODIFIED="1236126877833" TEXT="Aka. "Bootstrap-Nodes""/>
</node>
</node>
</node>
</node>
-<node CREATED="1236122378771" FOLDED="true" ID="_" MODIFIED="1236819299994" POSITION="right" TEXT="Karma">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236122378771" FOLDED="true" ID="_" MODIFIED="1236899597333" POSITION="right" TEXT="Karma">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
<node CREATED="1236122492566" ID="Freemind_Link_1190748575" MODIFIED="1236122514559" TEXT="Karma is given for validating entries in the DHT">
<node CREATED="1236122431646" ID="Freemind_Link_29494292" MODIFIED="1236122473199" TEXT="Last activity in near past">
<node CREATED="1236122473708" ID="Freemind_Link_254202732" MODIFIED="1236122479111" TEXT="Does not affect karma"/>
</node>
</node>
</node>
-<node CREATED="1236818932032" FOLDED="true" ID="Freemind_Link_1204819150" MODIFIED="1236819299997" POSITION="left" TEXT="Object Types">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
-<node CREATED="1236818952579" ID="Freemind_Link_1961919735" MODIFIED="1236818969501" TEXT="New object types are only addable by updating the software"/>
-<node CREATED="1236818987796" ID="Freemind_Link_188591190" MODIFIED="1236818998981" TEXT="It also possible by 3rd-party">
-<node CREATED="1236819000063" ID="Freemind_Link_385578906" MODIFIED="1236819012704" TEXT="Must be known by master/bootstrap-nodes"/>
-</node>
-<node CREATED="1236819026050" ID="Freemind_Link_1667260565" MODIFIED="1236819039189" TEXT="Outdated object types are marked "deprecated" for a longer time">
-<node CREATED="1236819040263" ID="Freemind_Link_1936301650" MODIFIED="1236819053202" TEXT="Master-nodes may accept or reject them"/>
-<node CREATED="1236819057430" ID="Freemind_Link_505959038" MODIFIED="1236819072713" TEXT="A "deprecation message" is always being sent"/>
-<node CREATED="1236819073435" ID="Freemind_Link_1001362763" MODIFIED="1236819086883" TEXT="A note of a required update can optionally be added"/>
-</node>
-<node CREATED="1236819096719" ID="Freemind_Link_259217829" MODIFIED="1236819111770" TEXT="After deprecation time they are treated as "unknown""/>
-<node CREATED="1236819117510" ID="Freemind_Link_1228871005" MODIFIED="1236819187199" TEXT="Other hubs should ask bootstrap-nodes">
-<node CREATED="1236819188392" ID="Freemind_Link_887331476" MODIFIED="1236819200697" TEXT="This compensate errors made by master-nodes"/>
-<node CREATED="1236819213718" ID="Freemind_Link_1450229897" MODIFIED="1236819243856" TEXT="Wrongly deprecated object types by the master-node result in bad karma by the bootstrap-node"/>
-</node>
-</node>
-<node CREATED="1236819279117" FOLDED="true" ID="Freemind_Link_831929021" MODIFIED="1236819299998" POSITION="left" TEXT="Update Messages">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236819279117" FOLDED="true" ID="Freemind_Link_831929021" MODIFIED="1236899597332" POSITION="left" TEXT="Update Messages">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
<node CREATED="1236819311945" ID="Freemind_Link_71881649" MODIFIED="1236819334898" TEXT="Will only be broadcasted from bootstrap- to master- and list-nodes"/>
<node CREATED="1236819339152" ID="Freemind_Link_774046685" MODIFIED="1236819364243" TEXT="No hub will receive update messages due to heavy network load">
<node CREATED="1236819365454" ID="Freemind_Link_1204404067" MODIFIED="1236819386873" TEXT="Maybe only "good" hubs should receive this?">
</node>
<node CREATED="1236819395918" ID="Freemind_Link_1584525818" MODIFIED="1236819442284" TEXT="Contains update notes and importance level"/>
</node>
-<node CREATED="1236819472321" FOLDED="true" ID="Freemind_Link_168475853" MODIFIED="1236819487121" POSITION="left" TEXT=""Client" Connections">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236819472321" FOLDED="true" ID="Freemind_Link_168475853" MODIFIED="1236899597331" POSITION="left" TEXT=""Client" Connections">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
<node CREATED="1236819488308" ID="Freemind_Link_1154203316" MODIFIED="1236819533272" TEXT="Should be interpreted as "application software"">
<icon BUILTIN="bell"/>
</node>
<node CREATED="1236819612157" ID="Freemind_Link_480673349" MODIFIED="1236819634577" TEXT="Do also receive karma from hubs"/>
<node CREATED="1236819638653" ID="Freemind_Link_692612491" MODIFIED="1236819657034" TEXT="Dynamic IPs are also accepted and therefore must be registered"/>
</node>
-<node CREATED="1236819677106" FOLDED="true" ID="Freemind_Link_1445979240" MODIFIED="1236819691062" POSITION="left" TEXT="Client<->Hub Communication">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236819677106" FOLDED="true" ID="Freemind_Link_1445979240" MODIFIED="1236899597329" POSITION="left" TEXT="Client<->Hub Communication">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
<node CREATED="1236898541254" ID="Freemind_Link_374257888" MODIFIED="1236898566531" TEXT="After a client has bootstrapped it announces all it's object types to the hubs">
<node CREATED="1236898577202" ID="Freemind_Link_1014689893" MODIFIED="1236898596094" TEXT="Including acceptance of broadcasts, poll-mode and Ping-POST"/>
</node>
</node>
</node>
</node>
-<node CREATED="1236899269918" ID="Freemind_Link_144167856" MODIFIED="1236899276838" TEXT="Client-Client Communication">
-<font BOLD="true" NAME="Dialog" SIZE="12"/>
+<node CREATED="1236899269918" ID="Freemind_Link_144167856" MODIFIED="1236899586006" TEXT="Client-Client Communication">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
<node CREATED="1236899286016" ID="Freemind_Link_1642758810" MODIFIED="1236899322515" TEXT="May be done "anonymously" over the hub or directly with an other client">
<node CREATED="1236899328390" ID="Freemind_Link_1507061819" MODIFIED="1236899349464" TEXT="Communication of the hub is done in poll-mode or by Ping-POST"/>
<node CREATED="1236899361363" ID="Freemind_Link_1390010744" MODIFIED="1236899393223" TEXT="Direct client-client communication client "A" sends a Ping-POST directly to client "B""/>
</node>
</node>
</node>
-<node CREATED="1236804847687" FOLDED="true" ID="Freemind_Link_1372827895" MODIFIED="1236819299996" POSITION="right" TEXT="Fault Tolerance / Reliability">
-<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236899558200" FOLDED="true" ID="Freemind_Link_329480665" MODIFIED="1236899597327" POSITION="left" TEXT="Usage of low-level protocols">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node CREATED="1236901514992" ID="Freemind_Link_679379315" MODIFIED="1236901534483" TEXT="Already existing low-level protocols like TCP/IP and UDP should be used">
+<node CREATED="1236901538901" ID="Freemind_Link_1616250831" MODIFIED="1236901554266" TEXT="TCP should be used for "inter-communication""/>
+<node CREATED="1236901556582" ID="Freemind_Link_898295556" MODIFIED="1236901583267" TEXT="UDP should be used for "streaming" the objects to other hubs">
+<node CREATED="1236901610332" ID="Freemind_Link_401089184" MODIFIED="1236901640384" TEXT="Parties are generating hashes of chunks for validation"/>
+<node CREATED="1236901642356" ID="Freemind_Link_947570234" MODIFIED="1236901665725" TEXT="Chunks should only be created for very big objects">
+<node CREATED="1236901666398" ID="Freemind_Link_912553641" MODIFIED="1236901689135" TEXT="Total object size is larger than X KByte">
+<icon BUILTIN="xmag"/>
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+<node CREATED="1236901692592" ID="Freemind_Link_1011335691" MODIFIED="1236901715605" TEXT="The sender creates hashes and adds them to the chunk">
+<node CREATED="1236901719921" ID="Freemind_Link_64829706" MODIFIED="1236901727014" TEXT="The receivers validates them"/>
+<node CREATED="1236901734931" ID="Freemind_Link_1875786790" MODIFIED="1236901754322" TEXT="No serial numbers a-la TCP are generated"/>
+</node>
+<node CREATED="1236901817636" ID="Freemind_Link_99186455" MODIFIED="1236901826666" TEXT="The last chunk package contains both hashes">
+<node CREATED="1236901827048" ID="Freemind_Link_398290140" MODIFIED="1236901839943" TEXT="Hash of itself and the final hash"/>
+</node>
+<node CREATED="1236901850065" ID="Freemind_Link_1741640397" MODIFIED="1236901891617" TEXT="If a hash fails to validate it is being collected">
+<node CREATED="1236901891984" ID="Freemind_Link_1930312770" MODIFIED="1236901909386" TEXT="After the final chunk was sent, failed chunks a re-requested"/>
+</node>
+<node CREATED="1236901915277" ID="Freemind_Link_681298548" MODIFIED="1236901923528" TEXT="This is retried X times per hash">
+<node CREATED="1236901937242" ID="Freemind_Link_1530992232" MODIFIED="1236901953148" TEXT="But always at the end of the whole transaction and all together"/>
+<node CREATED="1236901958504" ID="Freemind_Link_766714583" MODIFIED="1236901976592" TEXT="If still some hashes failed to transfer">
+<node CREATED="1236901976933" ID="Freemind_Link_1262238289" MODIFIED="1236901990294" TEXT="The object got dropped or fully requested"/>
+<node CREATED="1236901994695" ID="Freemind_Link_1316903827" MODIFIED="1236902002656" TEXT="This should be configurable by the admin"/>
+<node CREATED="1236902012089" ID="Freemind_Link_525157850" MODIFIED="1236902030267" TEXT="To do so, the final hash and object type is submitted to the sender">
+<node CREATED="1236902095145" ID="Freemind_Link_1316680608" MODIFIED="1236902127410" TEXT=""Restransmit-Message"">
+<icon BUILTIN="attach"/>
+</node>
+</node>
+<node CREATED="1236902035497" ID="Freemind_Link_9873596" MODIFIED="1236902042954" TEXT="The sender is now trying smaller chunks"/>
+</node>
+</node>
+<node CREATED="1236902048687" ID="Freemind_Link_507679569" MODIFIED="1236902057647" TEXT="If all was successfully received">
+<node CREATED="1236902061691" ID="Freemind_Link_566458700" MODIFIED="1236902086124" TEXT="The receivers sends a "done-message" to the sender with final hash and object type"/>
+</node>
+</node>
+<node CREATED="1236902139108" ID="Freemind_Link_602435860" MODIFIED="1236902146920" TEXT="There is also a "real" streaming mode">
+<node CREATED="1236902147315" ID="Freemind_Link_1387836906" MODIFIED="1236902152513" TEXT="This is e.g. used for chat"/>
+<node CREATED="1236902157513" ID="Freemind_Link_1268993772" MODIFIED="1236902221941" TEXT="For this TCP/IP is used and no hashes are generated"/>
+<node CREATED="1236902172714" ID="Freemind_Link_602177505" MODIFIED="1236902181106" TEXT="Also no chunks are generated"/>
+<node CREATED="1236902181913" ID="Freemind_Link_191938147" MODIFIED="1236902199404" TEXT="Only in this mode "multi-casting" is possible"/>
+</node>
+</node>
+</node>
+<node CREATED="1236804847687" FOLDED="true" ID="Freemind_Link_1372827895" MODIFIED="1236899597302" POSITION="right" TEXT="Fault Tolerance / Reliability">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
<node CREATED="1236805031745" ID="Freemind_Link_28699698" MODIFIED="1236805057203" TEXT="After X failed connection attempts a hub got removed">
<node CREATED="1236805060886" ID="Freemind_Link_1795377892" MODIFIED="1236805073614" TEXT="Other hubs report this to the master-node"/>
<node CREATED="1236805074337" ID="Freemind_Link_1595372369" MODIFIED="1236805094304" TEXT="The master-node probes the failed hub and removes it"/>
</node>
</node>
</node>
+<node CREATED="1236818932032" FOLDED="true" ID="Freemind_Link_1204819150" MODIFIED="1236899597325" POSITION="right" TEXT="Object Types">
+<font BOLD="true" NAME="Dialog" SIZE="16"/>
+<node CREATED="1236818952579" ID="Freemind_Link_1961919735" MODIFIED="1236818969501" TEXT="New object types are only addable by updating the software"/>
+<node CREATED="1236818987796" ID="Freemind_Link_188591190" MODIFIED="1236818998981" TEXT="It also possible by 3rd-party">
+<node CREATED="1236819000063" ID="Freemind_Link_385578906" MODIFIED="1236819012704" TEXT="Must be known by master/bootstrap-nodes"/>
+</node>
+<node CREATED="1236819026050" ID="Freemind_Link_1667260565" MODIFIED="1236819039189" TEXT="Outdated object types are marked "deprecated" for a longer time">
+<node CREATED="1236819040263" ID="Freemind_Link_1936301650" MODIFIED="1236819053202" TEXT="Master-nodes may accept or reject them"/>
+<node CREATED="1236819057430" ID="Freemind_Link_505959038" MODIFIED="1236819072713" TEXT="A "deprecation message" is always being sent"/>
+<node CREATED="1236819073435" ID="Freemind_Link_1001362763" MODIFIED="1236819086883" TEXT="A note of a required update can optionally be added"/>
+</node>
+<node CREATED="1236819096719" ID="Freemind_Link_259217829" MODIFIED="1236819111770" TEXT="After deprecation time they are treated as "unknown""/>
+<node CREATED="1236819117510" ID="Freemind_Link_1228871005" MODIFIED="1236819187199" TEXT="Other hubs should ask bootstrap-nodes">
+<node CREATED="1236819188392" ID="Freemind_Link_887331476" MODIFIED="1236819200697" TEXT="This compensate errors made by master-nodes"/>
+<node CREATED="1236819213718" ID="Freemind_Link_1450229897" MODIFIED="1236819243856" TEXT="Wrongly deprecated object types by the master-node result in bad karma by the bootstrap-node"/>
+</node>
+</node>
</node>
</map>