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