]> git.mxchange.org Git - hub-docs.git/blob - mindmaps/Generic Object Sharing Protocol.mm
Updated mindmap for 'hub' project
[hub-docs.git] / mindmaps / Generic Object Sharing Protocol.mm
1 <map version="1.0.0">
2 <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
3 <node CREATED="1236122299751" ID="Freemind_Link_1069566441" MODIFIED="1341963437640" TEXT="Generic Object-Sharing Protocol">
4 <font BOLD="true" NAME="Dialog" SIZE="20"/>
5 <node CREATED="1236123417491" FOLDED="true" ID="Freemind_Link_1660540085" MODIFIED="1341963416827" POSITION="left" TEXT="Node Identification">
6 <font BOLD="true" NAME="Dialog" SIZE="16"/>
7 <node CREATED="1236124236611" ID="ID_1477365404" MODIFIED="1236124257084" TEXT="Every node generates an id string by random">
8 <node CREATED="1236124483890" ID="ID_1127544543" MODIFIED="1236124589043" TEXT="This is the node id (node identifier)"/>
9 <node CREATED="1236124257580" ID="ID_697104790" MODIFIED="1236124263937" TEXT="Only on first use"/>
10 <node CREATED="1236124265079" ID="ID_128861556" MODIFIED="1236124280179" TEXT="This should be globally unique"/>
11 <node CREATED="1236124280846" ID="ID_1439756693" MODIFIED="1236124294759" TEXT="It will be stored in node&apos;s database for later reuse"/>
12 <node CREATED="1236124347351" ID="ID_1503568440" MODIFIED="1236124368097" TEXT="A hash is being generated of it">
13 <node CREATED="1236124368566" ID="ID_1815442429" MODIFIED="1236124377872" TEXT="Hashed data:">
14 <node CREATED="1236124379303" ID="ID_1724036552" MODIFIED="1236124418199" TEXT="Node&apos;s IP number and hostname"/>
15 <node CREATED="1236124387791" ID="ID_1636874238" MODIFIED="1236124397985" TEXT="Some random characters"/>
16 </node>
17 </node>
18 <node CREATED="1236124430078" ID="ID_1520648841" MODIFIED="1236124456692" TEXT="This id does not change as long as the database is not purged"/>
19 </node>
20 <node CREATED="1236124463032" ID="ID_898313647" MODIFIED="1236124472608" TEXT="Per session another id is generated">
21 <node CREATED="1236124474040" ID="ID_655958172" MODIFIED="1236124511110" TEXT="This is the SID (Session IDentifier)"/>
22 <node CREATED="1236124545181" ID="ID_554796464" MODIFIED="1236124553563" TEXT="It is being distributed to the nodes"/>
23 <node CREATED="1236124613215" ID="ID_1894972611" MODIFIED="1236124623514" TEXT="It stored together with the Node-Id">
24 <node CREATED="1236124625776" ID="ID_996671794" MODIFIED="1236124638851" TEXT="So other can validate bother together"/>
25 </node>
26 <node CREATED="1236124646273" ID="ID_1579813135" MODIFIED="1341962742169" TEXT="Logging should be enabled for debugging purposes only">
27 <icon BUILTIN="messagebox_warning"/>
28 </node>
29 </node>
30 <node CREATED="1341962717511" ID="ID_598230637" MODIFIED="1341962729070" TEXT="Private key and its corresponding hash">
31 <node CREATED="1341962748408" ID="ID_1802867259" MODIFIED="1341962769259" TEXT="For signed and later encrypted traffic?">
32 <icon BUILTIN="help"/>
33 <icon BUILTIN="idea"/>
34 </node>
35 </node>
36 <node CREATED="1236124693242" ID="ID_1999616583" MODIFIED="1236124765100" TEXT="Locking IPs or Node-Ids on master-nodes is not planed">
37 <node CREATED="1236124770510" ID="ID_515276316" MODIFIED="1236124780694" TEXT="Censorship would be to very easy">
38 <node CREATED="1236124781013" ID="ID_1582468782" MODIFIED="1236124872658" TEXT="Government agencies or enterprise parties"/>
39 </node>
40 <node CREATED="1236124882253" ID="ID_206577967" MODIFIED="1236124903288" TEXT="Censhorship makes no sence here">
41 <node CREATED="1236124904844" ID="ID_142027532" MODIFIED="1236124918893" TEXT="It can very easy be bypassed:"/>
42 <node CREATED="1236124919421" ID="ID_482299521" MODIFIED="1236124938847" TEXT="Delete Node-Id in database">
43 <node CREATED="1236124939605" ID="ID_1867340714" MODIFIED="1236124945027" TEXT="A new one got generated"/>
44 </node>
45 <node CREATED="1236124945999" ID="ID_391061380" MODIFIED="1236124992323" TEXT="Locked IP or port number can be bypassed by proxies"/>
46 <node CREATED="1236125001603" ID="ID_1806532479" MODIFIED="1236125026247" TEXT="One or two master-nodes should listen on ports commonly unblocked by firewalls">
47 <node CREATED="1236125029121" ID="ID_168189651" MODIFIED="1236125034518" TEXT="Like 80/443/110/25"/>
48 </node>
49 </node>
50 </node>
51 <node CREATED="1236125070021" ID="ID_523493738" MODIFIED="1236125081500" TEXT="Hubs can be optionally registered by master-nodes">
52 <node CREATED="1236125088538" ID="ID_1831087894" MODIFIED="1236125107221" TEXT="Increases karma because the node admin is verified"/>
53 <node CREATED="1236125114584" ID="ID_1334181154" MODIFIED="1236125131976" TEXT="Unregistered nodes does not receive negative votings"/>
54 </node>
55 </node>
56 <node CREATED="1236126779348" ID="Freemind_Link_1339348415" MODIFIED="1341963418341" POSITION="left" TEXT="Bootstrapping">
57 <font BOLD="true" NAME="Dialog" SIZE="16"/>
58 <node CREATED="1236126838827" FOLDED="true" ID="ID_910314668" MODIFIED="1236126858610" TEXT="At least one, better 3 to 4, master-nodes are required">
59 <node CREATED="1236126861889" ID="ID_1435365989" MODIFIED="1236126877833" TEXT="Aka. &quot;Bootstrap-Nodes&quot;"/>
60 <node CREATED="1253894510297" ID="ID_1487578920" MODIFIED="1253894527932" TEXT="They should be listed in the configuration for all applications"/>
61 <node CREATED="1253894528917" ID="ID_213582832" MODIFIED="1253894547575" TEXT="A comma-seperated list of node IPs with port numbers seperated by double-dot (:)"/>
62 </node>
63 <node CREATED="1236126921639" FOLDED="true" ID="ID_27169311" MODIFIED="1236126946151" TEXT="Bootstrap-Nodes are working stand-alone">
64 <node CREATED="1236126947723" ID="ID_1879966796" MODIFIED="1236126962499" TEXT="No central &quot;Super-Node&quot; is required"/>
65 <node CREATED="1236126965866" ID="ID_741244364" MODIFIED="1236126982695" TEXT="Too much traffic would have to flow through it"/>
66 <node CREATED="1236127003403" ID="ID_1096022992" MODIFIED="1236127025469" TEXT="Attacks on the network by censorship are reduced"/>
67 <node CREATED="1236127332394" ID="ID_1182056532" MODIFIED="1236127411770" TEXT="Traffic does not increase network-overall load"/>
68 <node CREATED="1236127431176" ID="ID_1052031194" MODIFIED="1236127439863" TEXT="Small disadvantage:">
69 <node CREATED="1236127454917" ID="ID_1150854056" MODIFIED="1236127479717" TEXT="Hubs must register with ..."/>
70 <node CREATED="1236127466818" ID="ID_1537201605" MODIFIED="1236127476905" TEXT="... more than one master-node ..."/>
71 <node CREATED="1236127480391" ID="ID_246674177" MODIFIED="1236127490538" TEXT=".. or connect with each other"/>
72 </node>
73 </node>
74 <node CREATED="1253894719381" FOLDED="true" ID="ID_1568438489" MODIFIED="1253894741309" TEXT="1. Node checks if there is a list of master nodes already stored">
75 <node CREATED="1253894741787" ID="ID_426676819" MODIFIED="1253894767578" TEXT="If so, it skips fetching the list of nodes step"/>
76 </node>
77 <node CREATED="1253894428802" FOLDED="true" ID="ID_764597347" MODIFIED="1341963127249" TEXT="2. Node is announcing itself to the upper bootstrap hub(s)">
78 <node CREATED="1253894443360" ID="ID_1596045826" MODIFIED="1253894453653" TEXT="This should be done generic to keep things easy"/>
79 <node CREATED="1253894454388" FOLDED="true" ID="ID_1283494642" MODIFIED="1341962412990" TEXT="Recommended is maybe an XML with all neccessary data">
80 <node CREATED="1341962254490" ID="ID_1967390832" MODIFIED="1341962269489" TEXT="Node status">
81 <node CREATED="1341962270630" ID="ID_109028891" MODIFIED="1341962278686" TEXT="Mostly &apos;active&apos; or &apos;reachable&apos;"/>
82 </node>
83 <node CREATED="1341962279970" ID="ID_577483198" MODIFIED="1341962287400" TEXT="Session id (see below)"/>
84 <node CREATED="1341962296306" ID="ID_614578398" MODIFIED="1341962303492" TEXT="External and internal IP">
85 <node CREATED="1341962304114" ID="ID_974332986" MODIFIED="1341962326784" TEXT="To allow LAN connections over connections on WAN IP"/>
86 <node CREATED="1341962328116" ID="ID_717476080" MODIFIED="1341962352213" TEXT="Allowing this aids networks where DHCP and IP masquerade is used"/>
87 <node CREATED="1341962358604" ID="ID_352410425" MODIFIED="1341962397056" TEXT="Most customer asynchronous DSL does not allow to connect from inside over the WAN IP back inside"/>
88 </node>
89 <node CREATED="1341962399940" ID="ID_1876026630" MODIFIED="1341962406689" TEXT="TCP and UDP listening ports"/>
90 </node>
91 <node CREATED="1253895161895" ID="ID_238301949" MODIFIED="1341962156670" TEXT="The session id will be included here">
92 <node CREATED="1341962185250" ID="ID_1100719104" MODIFIED="1341962218498" TEXT="Other nodes shall always attempt to find a node by its current session id, not node it"/>
93 <node CREATED="1341962428367" ID="ID_1636243419" MODIFIED="1341962440132" TEXT="The node id identifies the node globally">
94 <node CREATED="1341962440825" ID="ID_1976097041" MODIFIED="1341962503091" TEXT="Requires a well-randomized id to be created to avoid collisions with other nodes"/>
95 <node CREATED="1341962506656" ID="ID_1275543965" MODIFIED="1341962563350" TEXT="First announcement dominates on all &quot;upper&quot; nodes"/>
96 <node CREATED="1341962571396" ID="ID_1845256702" MODIFIED="1341962609080" TEXT="A maximum limit of node ids per IP address shall prevent id flooding"/>
97 </node>
98 <node CREATED="1341962614208" ID="ID_977856197" MODIFIED="1341962627219" TEXT="The session id identifies the node currently">
99 <node CREATED="1341962643613" ID="ID_107303523" MODIFIED="1341962663993" TEXT="On every start a new one will be generated"/>
100 <node CREATED="1341962666727" ID="ID_1363422738" MODIFIED="1341962681743" TEXT="This requires a mechanism to purge old session ids"/>
101 </node>
102 </node>
103 </node>
104 <node CREATED="1236127732643" FOLDED="true" ID="ID_1953640644" MODIFIED="1341962141215" TEXT="3. Node is fetching a list of other nodes">
105 <node CREATED="1236127749005" ID="ID_508674192" MODIFIED="1236127763644" TEXT="They must have at least X matching object types"/>
106 <node CREATED="1253894968712" ID="ID_1809816861" MODIFIED="1253895023332" STYLE="fork" TEXT="If a bootstrap node is full it forwards the node to an other bootstrap hub"/>
107 <node CREATED="1253895005469" ID="ID_1324283426" MODIFIED="1253895019605" STYLE="fork" TEXT="If that node is again full the node will be forwarded to a list node"/>
108 <node CREATED="1253895024033" ID="ID_1076323011" MODIFIED="1253895056593" STYLE="fork" TEXT="If wether no free bootstrap nor list node is available the node waits some time and tries it again"/>
109 <node CREATED="1236127559361" ID="ID_823284955" MODIFIED="1253894864468" TEXT="Hashes of node-lists distributed over the bootstrap and list nodes should match">
110 <node CREATED="1253894867514" ID="ID_1102025965" MODIFIED="1253894879514" TEXT="This can be ensured by a DHT">
111 <node CREATED="1253894880687" ID="ID_1747728135" MODIFIED="1253894888420" TEXT="DHT = Distributed Hash Table"/>
112 <node CREATED="1253894891016" ID="ID_442289999" MODIFIED="1253894911641" TEXT="Which format?">
113 <icon BUILTIN="xmag"/>
114 </node>
115 </node>
116 </node>
117 <node CREATED="1236127598383" ID="ID_1959787511" MODIFIED="1236127616425" TEXT="If to much are inconsistent:">
118 <node CREATED="1236127617853" ID="ID_1007097645" MODIFIED="1236127632709" TEXT="No connect can happen">
119 <node CREATED="1236127634178" ID="ID_1137015561" MODIFIED="1236127642167" TEXT="Node list is rejected"/>
120 </node>
121 <node CREATED="1236127643409" ID="ID_99205407" MODIFIED="1236127660181" TEXT="Or the bootstrap-nodes are working as regular nodes"/>
122 <node CREATED="1236127660613" ID="ID_1082334730" MODIFIED="1236127715377" TEXT="Replication of the node-list is required by all bootstrap-nodes"/>
123 </node>
124 </node>
125 <node CREATED="1253894942579" FOLDED="true" ID="ID_780025605" MODIFIED="1253894962729" TEXT="4. Node connects to gathered master nodes">
126 <node CREATED="1253895103324" ID="ID_807839905" MODIFIED="1253895129180" TEXT="It again announces its object types to the master nodes"/>
127 <node CREATED="1253895133862" ID="ID_1575419923" MODIFIED="1253895150262" TEXT="Again it provides the session id so the master node can map session id -&gt; node id"/>
128 </node>
129 <node CREATED="1253895314125" FOLDED="true" ID="ID_1753288477" MODIFIED="1253895326100" TEXT="5. If all authorization steps are completed:">
130 <node CREATED="1253895330153" ID="ID_957597032" MODIFIED="1253895354745" TEXT="The node starts to accept client connections">
131 <node CREATED="1253895355292" ID="ID_1531381091" MODIFIED="1253895359347" TEXT="(It already listens to them but rejects them)"/>
132 </node>
133 <node CREATED="1253895363495" ID="ID_1959816375" MODIFIED="1253895380188" TEXT="Objects will now be shared with other nodes which accepts the same object types"/>
134 </node>
135 </node>
136 <node CREATED="1236122378771" FOLDED="true" ID="_" MODIFIED="1341963413930" POSITION="left" TEXT="Karma">
137 <font BOLD="true" NAME="Dialog" SIZE="16"/>
138 <node CREATED="1236122492566" ID="ID_500911435" MODIFIED="1341962789340" TEXT="Karma is given for validating entries in the DHT">
139 <node CREATED="1236122431646" FOLDED="true" ID="ID_1111662870" MODIFIED="1236122473199" TEXT="Last activity in near past">
140 <node CREATED="1236122473708" ID="ID_183345962" MODIFIED="1236122479111" TEXT="Does not affect karma"/>
141 </node>
142 <node CREATED="1236122544359" FOLDED="true" ID="ID_1990729495" MODIFIED="1341962976338" TEXT="Returned pings">
143 <node CREATED="1236122549203" ID="ID_1774017992" MODIFIED="1236122582927" TEXT="Amount of sent pings">
144 <node CREATED="1236122583437" ID="ID_1872142288" MODIFIED="1236122605188" TEXT="If no reply it got dead-listed"/>
145 </node>
146 <node CREATED="1236122613591" ID="ID_4860616" MODIFIED="1236122684314" TEXT="Failed pings reduce karma"/>
147 <node CREATED="1236122659986" ID="ID_550660986" MODIFIED="1236122681829" TEXT="Slow responses reduce karma"/>
148 </node>
149 <node CREATED="1236122692603" FOLDED="true" ID="ID_1391273089" MODIFIED="1236122712165" TEXT="Karma voting for other nodes is not to negative">
150 <node CREATED="1236122713693" ID="ID_231770771" MODIFIED="1236122728530" TEXT="Reduces manipulation chances">
151 <node CREATED="1236122730091" ID="ID_1089345314" MODIFIED="1236122743908" TEXT="Prefer karma votes of trusted nodes"/>
152 <node CREATED="1236122744853" ID="ID_1191307246" MODIFIED="1236122776006" TEXT="Negative karma votings for untrusted karma reduce own karma"/>
153 </node>
154 </node>
155 <node CREATED="1236122783733" ID="ID_60031662" MODIFIED="1236122798272" TEXT="To much &quot;spam packages&quot; reduce karma"/>
156 <node CREATED="1236122819786" ID="ID_1008982816" MODIFIED="1236122831449" TEXT="Validated packages increase karma"/>
157 <node CREATED="1236122841763" FOLDED="true" ID="ID_347040992" MODIFIED="1236122851076" TEXT="Protocol version should not be to old">
158 <node CREATED="1236122853153" ID="ID_728947067" MODIFIED="1236122869980" TEXT="This affects karma only negativly"/>
159 <node CREATED="1236122870509" ID="ID_1679596533" MODIFIED="1236122884569" TEXT="An up-to-date protocol does not increase karma"/>
160 <node CREATED="1236122885070" ID="ID_1372440450" MODIFIED="1236122902587" TEXT="Does also serve as a &quot;spam protection&quot;"/>
161 <node CREATED="1236122918035" ID="ID_1083459898" MODIFIED="1236122941184" TEXT="Received protocol version of node is older than stored">
162 <node CREATED="1236122941749" ID="ID_1678291605" MODIFIED="1236122946169" TEXT="Karma is reduced"/>
163 </node>
164 <node CREATED="1236122947985" ID="ID_541642714" MODIFIED="1236122969203" TEXT="Received protocol version is much than from master-nodes">
165 <node CREATED="1236122969588" ID="ID_490617049" MODIFIED="1236122973470" TEXT="Karma is reduced"/>
166 </node>
167 </node>
168 <node CREATED="1236123002722" FOLDED="true" ID="ID_497450092" MODIFIED="1236123013764" TEXT="Provided object types by the peer hub">
169 <node CREATED="1236123015319" ID="ID_938306595" MODIFIED="1236123025287" TEXT="This affectes karma only negativly"/>
170 <node CREATED="1236123026356" ID="ID_825381485" MODIFIED="1236123040623" TEXT="New types must first be known by masters"/>
171 <node CREATED="1236123075821" ID="ID_1293114895" MODIFIED="1236123087086" TEXT="This should be configurable:">
172 <node CREATED="1236123088545" ID="ID_1877950218" MODIFIED="1236123146558" TEXT="Karma should be reduced..."/>
173 <node CREATED="1236123147266" ID="ID_495666559" MODIFIED="1236123161157" TEXT="... or peer node should be black-listed"/>
174 </node>
175 <node CREATED="1236123041207" ID="ID_553181617" MODIFIED="1236123073229" TEXT="Because of every node can be a master-mode censorship is really hard"/>
176 </node>
177 <node CREATED="1236123176016" FOLDED="true" ID="ID_1494399358" MODIFIED="1236123192038" TEXT="Correctly logging">
178 <node CREATED="1236123192506" ID="ID_1155831513" MODIFIED="1236123197543" TEXT="Does not affect karma"/>
179 <node CREATED="1236123201477" ID="ID_1719547115" MODIFIED="1236123218064" TEXT="Logout must be done by master node and active nodes">
180 <node CREATED="1236123218463" ID="ID_538121027" MODIFIED="1236123236943" TEXT="&quot;Bye&quot; message">
181 <icon BUILTIN="idea"/>
182 </node>
183 </node>
184 <node CREATED="1236123251132" ID="ID_584354743" MODIFIED="1236123270878" TEXT="Rotating of dynamic IPs should be considered">
185 <node CREATED="1236123319578" ID="ID_1448843742" MODIFIED="1236123329144" TEXT="Must be registered by master-node">
186 <node CREATED="1236123330548" ID="ID_215961236" MODIFIED="1236123338841" TEXT="ID is registered as &quot;Dynamic IP&quot;"/>
187 <node CREATED="1236123345030" ID="ID_1967228374" MODIFIED="1236123350574" TEXT="So connects are still possible"/>
188 </node>
189 <node CREATED="1236123356818" ID="ID_643459265" MODIFIED="1236123366085" TEXT="No negative votings by other nodes"/>
190 <node CREATED="1236123374240" ID="ID_1506077854" MODIFIED="1236123395878" TEXT="Current IP does spread good in network">
191 <node CREATED="1236123397287" ID="ID_1841142933" MODIFIED="1236123408274" TEXT="Query of the master-node only in doubt"/>
192 </node>
193 </node>
194 </node>
195 </node>
196 <node CREATED="1323839786853" ID="ID_1208606831" MODIFIED="1341963017817" TEXT="Karma influences peer state rating and vise versa">
197 <node CREATED="1323839876619" ID="ID_938444175" LINK="Peer-State%20Rating.mm" MODIFIED="1341963103093" TEXT="What is peer state rating?"/>
198 </node>
199 </node>
200 <node CREATED="1236804847687" FOLDED="true" ID="Freemind_Link_1372827895" MODIFIED="1341962780452" POSITION="left" TEXT="Fault Tolerance / Reliability">
201 <font BOLD="true" NAME="Dialog" SIZE="16"/>
202 <node CREATED="1236805031745" FOLDED="true" ID="ID_797851882" MODIFIED="1236805057203" TEXT="After X failed connection attempts a node got removed">
203 <node CREATED="1236805060886" ID="ID_1354060812" MODIFIED="1236805073614" TEXT="Other nodes report this to the master-node"/>
204 <node CREATED="1236805074337" ID="ID_1408027065" MODIFIED="1236805094304" TEXT="The master-node probes the failed node and removes it"/>
205 </node>
206 <node CREATED="1236805095936" FOLDED="true" ID="ID_1731494290" MODIFIED="1236805105212" TEXT="Failed list-node">
207 <node CREATED="1236805111066" ID="ID_856486923" MODIFIED="1236805126866" TEXT="Hubs are reporting it to the master-node"/>
208 <node CREATED="1236805135129" ID="ID_351192162" MODIFIED="1236805143745" TEXT="The master-node probes the failed list-node and removes it"/>
209 </node>
210 <node CREATED="1236805147958" FOLDED="true" ID="ID_17777023" MODIFIED="1236805152648" TEXT="Failed master-node">
211 <node CREATED="1236805160627" ID="ID_1174618015" MODIFIED="1236805192366" TEXT="List-nodes takeover the role of a master-node if no bootstrap-nodes are available">
212 <node CREATED="1236805194058" ID="ID_1260650566" MODIFIED="1236805230236" TEXT="This takeover should not be entirely and should be defined">
213 <icon BUILTIN="messagebox_warning"/>
214 <icon BUILTIN="desktop_new"/>
215 </node>
216 </node>
217 <node CREATED="1236805256862" ID="ID_963822392" MODIFIED="1236805284415" TEXT="If there is no list-node, nodes look for an active master-node">
218 <node CREATED="1236805285629" ID="ID_454301053" MODIFIED="1236805295805" TEXT="They report the failed master-node to it"/>
219 </node>
220 <node CREATED="1236805300701" ID="ID_728427686" MODIFIED="1236805333472" TEXT="If additionally no master-node is up, a node will be elected as new master-node">
221 <node CREATED="1236805370471" ID="ID_295035279" MODIFIED="1236805388795" TEXT="Doing so, all nodes are identifying the node with...">
222 <node CREATED="1236805389203" ID="ID_1596264326" MODIFIED="1236805408420" TEXT="... the best karma">
223 <node CREATED="1236805408843" ID="ID_1912814834" MODIFIED="1236805414368" TEXT="This is known to many nodes"/>
224 </node>
225 <node CREATED="1236805415695" ID="ID_849494777" MODIFIED="1236805439758" TEXT="... most votings">
226 <node CREATED="1236805440417" ID="ID_806892556" MODIFIED="1236805465354" TEXT="A &quot;vote&quot; is a positive karma"/>
227 <node CREATED="1236805470049" ID="ID_83856880" MODIFIED="1236805478210" TEXT="Also known to many nodes"/>
228 </node>
229 </node>
230 <node CREATED="1236805485261" ID="ID_1505645119" MODIFIED="1236805508476" TEXT="The &quot;election&quot; should take place within a specific timeout"/>
231 <node CREATED="1236805519338" ID="ID_378195399" MODIFIED="1236805539978" TEXT="If no election is happening the node with most connections got elected"/>
232 </node>
233 </node>
234 <node CREATED="1236805556971" FOLDED="true" ID="ID_1034853055" MODIFIED="1236805567605" TEXT="If one of the bootstrap-nodes is up">
235 <node CREATED="1236805568757" ID="ID_700296041" MODIFIED="1236805604922" TEXT="The elected nodes notifies a some of it&apos;s fellow nodes that the bootstrap-node is back"/>
236 <node CREATED="1236805612004" ID="ID_809583260" MODIFIED="1236805631225" TEXT="The elected node becomes a regular node and notifies other nodes on connection attempts"/>
237 </node>
238 <node CREATED="1236805649317" FOLDED="true" ID="ID_20853367" MODIFIED="1236805654363" TEXT="Disadvantages:">
239 <node CREATED="1236805655355" ID="ID_1267155557" MODIFIED="1236805688061" TEXT="A new node with only knowlege about the bootstrap-nodes may not be able to connect to the nodes">
240 <node CREATED="1236805691077" ID="ID_783948092" MODIFIED="1236805728068" TEXT="Additional bootstrap-nodes on other server and/or continent may help here"/>
241 </node>
242 </node>
243 </node>
244 <node CREATED="1236818932032" FOLDED="true" ID="Freemind_Link_1204819150" MODIFIED="1236899597325" POSITION="left" TEXT="Object Types">
245 <font BOLD="true" NAME="Dialog" SIZE="16"/>
246 <node CREATED="1236818952579" ID="ID_901281826" MODIFIED="1236818969501" TEXT="New object types are only addable by updating the software"/>
247 <node CREATED="1236818987796" ID="ID_1235221426" MODIFIED="1236818998981" TEXT="It also possible by 3rd-party">
248 <node CREATED="1236819000063" ID="ID_1307763574" MODIFIED="1236819012704" TEXT="Must be known by master/bootstrap-nodes"/>
249 </node>
250 <node CREATED="1236819026050" ID="ID_1829407119" MODIFIED="1236819039189" TEXT="Outdated object types are marked &quot;deprecated&quot; for a longer time">
251 <node CREATED="1236819040263" ID="ID_958660560" MODIFIED="1236819053202" TEXT="Master-nodes may accept or reject them"/>
252 <node CREATED="1236819057430" ID="ID_1810554626" MODIFIED="1236819072713" TEXT="A &quot;deprecation message&quot; is always being sent"/>
253 <node CREATED="1236819073435" ID="ID_1476404622" MODIFIED="1236819086883" TEXT="A note of a required update can optionally be added"/>
254 </node>
255 <node CREATED="1236819096719" ID="ID_1066601969" MODIFIED="1236819111770" TEXT="After deprecation time they are treated as &quot;unknown&quot;"/>
256 <node CREATED="1236819117510" ID="ID_1079099687" MODIFIED="1236819187199" TEXT="Other nodes should ask bootstrap-nodes">
257 <node CREATED="1236819188392" ID="ID_312192753" MODIFIED="1236819200697" TEXT="This compensate errors made by master-nodes"/>
258 <node CREATED="1236819213718" ID="ID_1378184528" MODIFIED="1236819243856" TEXT="Wrongly deprecated object types by the master-node result in bad karma by the bootstrap-node"/>
259 </node>
260 </node>
261 <node CREATED="1236819279117" FOLDED="true" ID="Freemind_Link_831929021" MODIFIED="1236899597332" POSITION="right" TEXT="Update Messages">
262 <font BOLD="true" NAME="Dialog" SIZE="16"/>
263 <node CREATED="1236819311945" ID="ID_609093084" MODIFIED="1236819334898" TEXT="Will only be broadcasted from bootstrap- to master- and list-nodes"/>
264 <node CREATED="1236819339152" ID="ID_78459346" MODIFIED="1236819364243" TEXT="No node will receive update messages due to heavy network load">
265 <node CREATED="1236819365454" ID="ID_187276621" MODIFIED="1236819386873" TEXT="Maybe only &quot;good&quot; nodes should receive this?">
266 <icon BUILTIN="xmag"/>
267 <icon BUILTIN="help"/>
268 </node>
269 </node>
270 <node CREATED="1236819395918" ID="ID_1800878584" MODIFIED="1236819442284" TEXT="Contains update notes and importance level"/>
271 </node>
272 <node CREATED="1236819472321" FOLDED="true" ID="Freemind_Link_168475853" MODIFIED="1341963283530" POSITION="right" TEXT="&quot;Client&quot; Connections">
273 <font BOLD="true" NAME="Dialog" SIZE="16"/>
274 <node CREATED="1236819488308" ID="ID_887207372" MODIFIED="1236819533272" TEXT="Should be interpreted as &quot;application software&quot;">
275 <icon BUILTIN="bell"/>
276 </node>
277 <node CREATED="1236819549590" ID="ID_1404415085" MODIFIED="1236819572277" TEXT="Clients should also generate a &quot;client id&quot;">
278 <node CREATED="1236819572768" ID="ID_890448171" MODIFIED="1236819577298" TEXT="Both id and sid"/>
279 </node>
280 <node CREATED="1236819583899" ID="ID_905265839" MODIFIED="1236819600627" TEXT="Will also connect first to bootstrap-nodes">
281 <node CREATED="1236819601271" ID="ID_267897982" MODIFIED="1236819625910" TEXT="Ask for a node-list as well"/>
282 </node>
283 <node CREATED="1236819612157" ID="ID_1618908435" MODIFIED="1236819634577" TEXT="Do also receive karma from nodes"/>
284 <node CREATED="1236819638653" ID="ID_1963451868" MODIFIED="1236819657034" TEXT="Dynamic IPs are also accepted and therefore must be registered"/>
285 </node>
286 <node CREATED="1236819677106" FOLDED="true" ID="Freemind_Link_1445979240" MODIFIED="1236899597329" POSITION="right" TEXT="Client&lt;-&gt;Node Communication">
287 <font BOLD="true" NAME="Dialog" SIZE="16"/>
288 <node CREATED="1236898541254" ID="ID_943175241" MODIFIED="1236898566531" TEXT="After a client has bootstrapped it announces all it&apos;s object types to the nodes">
289 <node CREATED="1236898577202" ID="ID_1767214665" MODIFIED="1236898596094" TEXT="Including acceptance of broadcasts, poll-mode and Ping-POST"/>
290 </node>
291 <node CREATED="1236898600139" ID="ID_863331362" MODIFIED="1236898624130" TEXT="By this the nodes know clients and their accepted object types"/>
292 <node CREATED="1236898628920" ID="ID_1164918209" MODIFIED="1236898649573" TEXT="Clients may download a node-list for a specific object type">
293 <node CREATED="1236898649983" ID="ID_316412521" MODIFIED="1236898658898" TEXT="Distinct-List-Mode"/>
294 <node CREATED="1236898661907" ID="ID_1133743039" MODIFIED="1236898685390" TEXT="After selecting a node the client can request a list of clients from that hub"/>
295 <node CREATED="1236898693369" ID="ID_1354848303" MODIFIED="1236898735306" TEXT="From these clients the client can accept objects from and send to">
296 <node CREATED="1236898744031" ID="ID_916621577" MODIFIED="1236898750207" TEXT="E.g. news by broadcast"/>
297 </node>
298 </node>
299 <node CREATED="1236898764873" ID="ID_1437737506" MODIFIED="1236898781532" TEXT="Clients may send &quot;broadcast&quot; objects">
300 <node CREATED="1236898781858" ID="ID_502650341" MODIFIED="1236898785647" TEXT="Broadcast-Mode"/>
301 <node CREATED="1236898788766" ID="ID_1181498655" MODIFIED="1236898820811" TEXT="Must be allowed by nodes">
302 <node CREATED="1236898821127" ID="ID_21709646" MODIFIED="1236898833669" TEXT="This consumes traffic"/>
303 <node CREATED="1236898845514" ID="ID_1933322168" MODIFIED="1236898864289" TEXT="Acceptance of broadcasts is known to list-/master- and bootstrap-nodes"/>
304 </node>
305 <node CREATED="1236898869927" ID="ID_406948313" MODIFIED="1236898894884" TEXT="A client sends its broadcast to the master-nodes">
306 <node CREATED="1236898903419" ID="ID_787211186" MODIFIED="1236898927433" TEXT="They are distribute it to their fellow nodes"/>
307 <node CREATED="1236898931205" ID="ID_137555539" MODIFIED="1236899031658" TEXT="A node knows which client accepts broadcasts and &quot;deposits&quot; it for the client"/>
308 <node CREATED="1236899048881" ID="ID_1517266448" MODIFIED="1236899073911" TEXT="Clients are requesting such broadcasts by poll-mode or are &quot;pinged&quot;">
309 <node CREATED="1236899074418" ID="ID_226822278" MODIFIED="1236899104143" TEXT="In poll-mode the client asks on a regular basis at the node for new broadcasts"/>
310 <node CREATED="1236899114179" ID="ID_690207050" MODIFIED="1236899160051" TEXT="A Ping-POST is being sent by the node as a regular HTTP-POST request to the client">
311 <node CREATED="1236899160614" ID="ID_651208220" MODIFIED="1236899170480" TEXT="This also happens on a regular basis"/>
312 </node>
313 <node CREATED="1236899177795" ID="ID_1777926717" MODIFIED="1236899200012" TEXT="A node-admin may allow both types independly"/>
314 <node CREATED="1236899205412" ID="ID_1034616429" MODIFIED="1236899216542" TEXT="If none is allowed the node acts as a &quot;relay&quot;">
315 <node CREATED="1236899225741" ID="ID_328449565" MODIFIED="1236899250404" TEXT="And therefore it cannot accept clients with broadcast-functionality enabled"/>
316 </node>
317 </node>
318 </node>
319 </node>
320 <node CREATED="1236899269918" ID="ID_123440634" MODIFIED="1236899586006" TEXT="Client-Client Communication">
321 <font BOLD="true" NAME="Dialog" SIZE="14"/>
322 <node CREATED="1236899286016" ID="ID_1297434555" MODIFIED="1236899322515" TEXT="May be done &quot;anonymously&quot; over the node or directly with an other client">
323 <node CREATED="1236899328390" ID="ID_1164113868" MODIFIED="1236899349464" TEXT="Communication of the node is done in poll-mode or by Ping-POST"/>
324 <node CREATED="1236899361363" ID="ID_1562747100" MODIFIED="1236899393223" TEXT="Direct client-client communication client &quot;A&quot; sends a Ping-POST directly to client &quot;B&quot;"/>
325 </node>
326 <node CREATED="1236899405778" ID="ID_1565480551" MODIFIED="1236899462999" TEXT="Wrongly sent Ping-POSTs (e.g. the admin doesn&apos;t allow them) may be answered with a regular HTTP status &apos;4XX&apos;">
327 <icon BUILTIN="xmag"/>
328 <icon BUILTIN="desktop_new"/>
329 </node>
330 </node>
331 </node>
332 <node CREATED="1236899558200" FOLDED="true" ID="Freemind_Link_329480665" MODIFIED="1341963454662" POSITION="right" TEXT="Usage of low-level protocols">
333 <font BOLD="true" NAME="Dialog" SIZE="16"/>
334 <node CREATED="1236901514992" ID="ID_1153839529" MODIFIED="1236901534483" TEXT="Already existing low-level protocols like TCP/IP and UDP should be used">
335 <node CREATED="1236901538901" ID="ID_1598189785" MODIFIED="1236901554266" TEXT="TCP should be used for &quot;inter-communication&quot;"/>
336 <node CREATED="1236901556582" ID="ID_645100554" MODIFIED="1236901583267" TEXT="UDP should be used for &quot;streaming&quot; the objects to other nodes">
337 <node CREATED="1236901610332" ID="ID_1495758083" MODIFIED="1236901640384" TEXT="Parties are generating hashes of chunks for validation"/>
338 <node CREATED="1236901642356" ID="ID_1858876702" MODIFIED="1236901665725" TEXT="Chunks should only be created for very big objects">
339 <node CREATED="1236901666398" ID="ID_48304701" MODIFIED="1236901689135" TEXT="Total object size is larger than X KByte">
340 <icon BUILTIN="xmag"/>
341 <icon BUILTIN="messagebox_warning"/>
342 </node>
343 </node>
344 <node CREATED="1236901692592" ID="ID_787015036" MODIFIED="1236901715605" TEXT="The sender creates hashes and adds them to the chunk">
345 <node CREATED="1236901719921" ID="ID_1735939949" MODIFIED="1236901727014" TEXT="The receivers validates them"/>
346 <node CREATED="1236901734931" ID="ID_1263867983" MODIFIED="1236901754322" TEXT="No serial numbers a-la TCP are generated"/>
347 </node>
348 <node CREATED="1236901817636" ID="ID_140457451" MODIFIED="1236901826666" TEXT="The last chunk package contains both hashes">
349 <node CREATED="1236901827048" ID="ID_1247676236" MODIFIED="1236901839943" TEXT="Hash of itself and the final hash"/>
350 </node>
351 <node CREATED="1236901850065" ID="ID_699064211" MODIFIED="1236901891617" TEXT="If a hash fails to validate it is being collected">
352 <node CREATED="1236901891984" ID="ID_833760624" MODIFIED="1236901909386" TEXT="After the final chunk was sent, failed chunks a re-requested"/>
353 </node>
354 <node CREATED="1236901915277" ID="ID_45598378" MODIFIED="1236901923528" TEXT="This is retried X times per hash">
355 <node CREATED="1236901937242" ID="ID_1953539364" MODIFIED="1236901953148" TEXT="But always at the end of the whole transaction and all together"/>
356 <node CREATED="1236901958504" ID="ID_1087617216" MODIFIED="1236901976592" TEXT="If still some hashes failed to transfer">
357 <node CREATED="1236901976933" ID="ID_1392619755" MODIFIED="1236901990294" TEXT="The object got dropped or fully requested"/>
358 <node CREATED="1236901994695" ID="ID_84288828" MODIFIED="1236902002656" TEXT="This should be configurable by the admin"/>
359 <node CREATED="1236902012089" ID="ID_618078349" MODIFIED="1236902030267" TEXT="To do so, the final hash and object type is submitted to the sender">
360 <node CREATED="1236902095145" ID="ID_821681010" MODIFIED="1236902127410" TEXT="&quot;Restransmit-Message&quot;">
361 <icon BUILTIN="attach"/>
362 </node>
363 </node>
364 <node CREATED="1236902035497" ID="ID_1340892559" MODIFIED="1236902042954" TEXT="The sender is now trying smaller chunks"/>
365 </node>
366 </node>
367 <node CREATED="1236902048687" ID="ID_628938328" MODIFIED="1236902057647" TEXT="If all was successfully received">
368 <node CREATED="1236902061691" ID="ID_1988047416" MODIFIED="1236902086124" TEXT="The receivers sends a &quot;done-message&quot; to the sender with final hash and object type"/>
369 </node>
370 </node>
371 <node CREATED="1236902139108" ID="ID_1473966368" MODIFIED="1236902146920" TEXT="There is also a &quot;real&quot; streaming mode">
372 <node CREATED="1236902147315" ID="ID_1654508253" MODIFIED="1236902152513" TEXT="This is e.g. used for chat"/>
373 <node CREATED="1236902157513" ID="ID_429118222" MODIFIED="1236902221941" TEXT="For this TCP/IP is used and no hashes are generated"/>
374 <node CREATED="1236902172714" ID="ID_480009945" MODIFIED="1236902181106" TEXT="Also no chunks are generated"/>
375 <node CREATED="1236902181913" ID="ID_29563235" MODIFIED="1236902199404" TEXT="Only in this mode &quot;multi-casting&quot; is possible"/>
376 </node>
377 </node>
378 </node>
379 </node>
380 </map>