]> git.mxchange.org Git - hub-docs.git/blob - mindmaps/Generic Object Sharing Protocol.mm
Renamed 'hub' to 'node' to make it more clear that we mean 'node' and 'hub' is only...
[hub-docs.git] / mindmaps / Generic Object Sharing Protocol.mm
1 <map version="0.8.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="1236902424887" TEXT="Generic Object-Sharing Protocol">
4 <font BOLD="true" NAME="Dialog" SIZE="20"/>
5 <node CREATED="1236123417491" FOLDED="true" ID="Freemind_Link_1660540085" MODIFIED="1236899597347" POSITION="right" TEXT="Node Identification">
6 <font BOLD="true" NAME="Dialog" SIZE="16"/>
7 <node CREATED="1236124236611" ID="Freemind_Link_780558731" MODIFIED="1236124257084" TEXT="Every node generates an id string by random">
8 <node CREATED="1236124483890" ID="Freemind_Link_1498010716" MODIFIED="1236124589043" TEXT="This is the node id (node identifier)"/>
9 <node CREATED="1236124257580" ID="Freemind_Link_458280781" MODIFIED="1236124263937" TEXT="Only on first use"/>
10 <node CREATED="1236124265079" ID="Freemind_Link_698958541" MODIFIED="1236124280179" TEXT="This should be globally unique"/>
11 <node CREATED="1236124280846" ID="Freemind_Link_1564511533" MODIFIED="1236124294759" TEXT="It will be stored in node&apos;s database for later reuse"/>
12 <node CREATED="1236124347351" ID="Freemind_Link_982080681" MODIFIED="1236124368097" TEXT="A hash is being generated of it">
13 <node CREATED="1236124368566" ID="Freemind_Link_177707740" MODIFIED="1236124377872" TEXT="Hashed data:">
14 <node CREATED="1236124379303" ID="Freemind_Link_1317863864" MODIFIED="1236124418199" TEXT="Node&apos;s IP number and hostname"/>
15 <node CREATED="1236124387791" ID="Freemind_Link_1030355543" MODIFIED="1236124397985" TEXT="Some random characters"/>
16 </node>
17 </node>
18 <node CREATED="1236124430078" ID="Freemind_Link_1022876700" MODIFIED="1236124456692" TEXT="This id does not change as long as the database is not purged"/>
19 </node>
20 <node CREATED="1236124463032" ID="Freemind_Link_1712131488" MODIFIED="1236124472608" TEXT="Per session another id is generated">
21 <node CREATED="1236124474040" ID="Freemind_Link_439993942" MODIFIED="1236124511110" TEXT="This is the SID (Session IDentifier)"/>
22 <node CREATED="1236124545181" ID="Freemind_Link_1215594894" MODIFIED="1236124553563" TEXT="It is being distributed to the hubs"/>
23 <node CREATED="1236124613215" ID="Freemind_Link_1633651159" MODIFIED="1236124623514" TEXT="It stored together with the Node-Id">
24 <node CREATED="1236124625776" ID="Freemind_Link_651452439" MODIFIED="1236124638851" TEXT="So other can validate bother together"/>
25 </node>
26 <node CREATED="1236124646273" ID="Freemind_Link_789902518" MODIFIED="1236124677328" TEXT="Logging should only enabled for debugging purposes">
27 <icon BUILTIN="messagebox_warning"/>
28 </node>
29 </node>
30 <node CREATED="1236124693242" ID="Freemind_Link_902328932" MODIFIED="1236124765100" TEXT="Locking IPs or Node-Ids on master-nodes is not planed">
31 <node CREATED="1236124770510" ID="Freemind_Link_1592412776" MODIFIED="1236124780694" TEXT="Censorship would be to very easy">
32 <node CREATED="1236124781013" ID="Freemind_Link_423578439" MODIFIED="1236124872658" TEXT="Government agencies or enterprise parties"/>
33 </node>
34 <node CREATED="1236124882253" ID="Freemind_Link_84092519" MODIFIED="1236124903288" TEXT="Censhorship makes no sence here">
35 <node CREATED="1236124904844" ID="Freemind_Link_514458550" MODIFIED="1236124918893" TEXT="It can very easy be bypassed:"/>
36 <node CREATED="1236124919421" ID="Freemind_Link_1221678941" MODIFIED="1236124938847" TEXT="Delete Node-Id in database">
37 <node CREATED="1236124939605" ID="Freemind_Link_904836052" MODIFIED="1236124945027" TEXT="A new one got generated"/>
38 </node>
39 <node CREATED="1236124945999" ID="Freemind_Link_1262635656" MODIFIED="1236124992323" TEXT="Locked IP or port number can be bypassed by proxies"/>
40 <node CREATED="1236125001603" ID="Freemind_Link_1619827292" MODIFIED="1236125026247" TEXT="One or two master-hubs should listen on ports commonly unblocked by firewalls">
41 <node CREATED="1236125029121" ID="Freemind_Link_709609072" MODIFIED="1236125034518" TEXT="Like 80/443/110/25"/>
42 </node>
43 </node>
44 </node>
45 <node CREATED="1236125070021" ID="Freemind_Link_441713513" MODIFIED="1236125081500" TEXT="Hubs can be optionally registered by master-nodes">
46 <node CREATED="1236125088538" ID="Freemind_Link_1200999421" MODIFIED="1236125107221" TEXT="Increases karma because the node admin is verified"/>
47 <node CREATED="1236125114584" ID="Freemind_Link_1617168424" MODIFIED="1236125131976" TEXT="Unregistered hubs does not receive negative votings"/>
48 </node>
49 </node>
50 <node CREATED="1236126779348" ID="Freemind_Link_1339348415" MODIFIED="1253894423583" POSITION="right" TEXT="Bootstrapping">
51 <font BOLD="true" NAME="Dialog" SIZE="16"/>
52 <node CREATED="1236126838827" FOLDED="true" ID="Freemind_Link_453620216" MODIFIED="1236126858610" TEXT="At least one, better 3 to 4, master-nodes are required">
53 <node CREATED="1236126861889" ID="Freemind_Link_265648584" MODIFIED="1236126877833" TEXT="Aka. &quot;Bootstrap-Nodes&quot;"/>
54 <node CREATED="1253894510297" ID="Freemind_Link_1226811309" MODIFIED="1253894527932" TEXT="They should be listed in the configuration for all applications"/>
55 <node CREATED="1253894528917" ID="Freemind_Link_979767017" MODIFIED="1253894547575" TEXT="A comma-seperated list of node IPs with port numbers seperated by double-dot (:)"/>
56 </node>
57 <node CREATED="1236126921639" FOLDED="true" ID="Freemind_Link_854375254" MODIFIED="1236126946151" TEXT="Bootstrap-Nodes are working stand-alone">
58 <node CREATED="1236126947723" ID="Freemind_Link_882684293" MODIFIED="1236126962499" TEXT="No central &quot;Super-Node&quot; is required"/>
59 <node CREATED="1236126965866" ID="Freemind_Link_1661888163" MODIFIED="1236126982695" TEXT="Too much traffic would have to flow through it"/>
60 <node CREATED="1236127003403" ID="Freemind_Link_1121780060" MODIFIED="1236127025469" TEXT="Attacks on the network by censorship are reduced"/>
61 <node CREATED="1236127332394" ID="Freemind_Link_924004535" MODIFIED="1236127411770" TEXT="Traffic does not increase network-overall load"/>
62 <node CREATED="1236127431176" ID="Freemind_Link_1573570415" MODIFIED="1236127439863" TEXT="Small disadvantage:">
63 <node CREATED="1236127454917" ID="Freemind_Link_1018217993" MODIFIED="1236127479717" TEXT="Hubs must register with ..."/>
64 <node CREATED="1236127466818" ID="Freemind_Link_665965725" MODIFIED="1236127476905" TEXT="... more than one master-node ..."/>
65 <node CREATED="1236127480391" ID="Freemind_Link_1849172644" MODIFIED="1236127490538" TEXT=".. or connect with each other"/>
66 </node>
67 </node>
68 <node CREATED="1253894719381" FOLDED="true" ID="Freemind_Link_1225609057" MODIFIED="1253894741309" TEXT="1. Node checks if there is a list of master nodes already stored">
69 <node CREATED="1253894741787" ID="Freemind_Link_712469416" MODIFIED="1253894767578" TEXT="If so, it skips fetching the list of nodes step"/>
70 </node>
71 <node CREATED="1253894428802" FOLDED="true" ID="Freemind_Link_934377424" MODIFIED="1253894784130" TEXT="2. Node is announcing itself to the upper bootstrap hub(s)">
72 <node CREATED="1253894443360" ID="Freemind_Link_1716805408" MODIFIED="1253894453653" TEXT="This should be done generic to keep things easy"/>
73 <node CREATED="1253894454388" ID="Freemind_Link_1472603257" MODIFIED="1253894468689" TEXT="Recommended is maybe an XML with all neccessary data"/>
74 <node CREATED="1253895161895" ID="Freemind_Link_207316718" MODIFIED="1253895177811" TEXT="The session id will not be included here">
75 <node CREATED="1253895178123" ID="Freemind_Link_772369973" MODIFIED="1253895194476" TEXT="A bootstrap node will never try to connect clients with hubs"/>
76 <node CREATED="1253895196001" ID="Freemind_Link_1528083000" MODIFIED="1253895256138" TEXT="It should only &quot;bootstrap&quot; (tell the node where it should start sharing its objects)">
77 <icon BUILTIN="desktop_new"/>
78 <icon BUILTIN="messagebox_warning"/>
79 </node>
80 </node>
81 </node>
82 <node CREATED="1236127732643" FOLDED="true" ID="Freemind_Link_608191462" MODIFIED="1253894770380" TEXT="3. Node is fetching a list of other hubs">
83 <node CREATED="1236127749005" ID="Freemind_Link_195277951" MODIFIED="1236127763644" TEXT="They must have at least X matching object types"/>
84 <node CREATED="1253894968712" ID="Freemind_Link_823475561" MODIFIED="1253895023332" STYLE="fork" TEXT="If a bootstrap node is full it forwards the node to an other bootstrap hub"/>
85 <node CREATED="1253895005469" ID="Freemind_Link_1371102915" MODIFIED="1253895019605" STYLE="fork" TEXT="If that node is again full the node will be forwarded to a list node"/>
86 <node CREATED="1253895024033" ID="Freemind_Link_897238975" MODIFIED="1253895056593" STYLE="fork" TEXT="If wether no free bootstrap nor list node is available the node waits some time and tries it again"/>
87 <node CREATED="1236127559361" ID="Freemind_Link_453619955" MODIFIED="1253894864468" TEXT="Hashes of node-lists distributed over the bootstrap and list nodes should match">
88 <node CREATED="1253894867514" ID="Freemind_Link_1552507439" MODIFIED="1253894879514" TEXT="This can be ensured by a DHT">
89 <node CREATED="1253894880687" ID="Freemind_Link_1112603271" MODIFIED="1253894888420" TEXT="DHT = Distributed Hash Table"/>
90 <node CREATED="1253894891016" ID="Freemind_Link_123842120" MODIFIED="1253894911641" TEXT="Which format?">
91 <icon BUILTIN="xmag"/>
92 </node>
93 </node>
94 </node>
95 <node CREATED="1236127598383" ID="Freemind_Link_574241054" MODIFIED="1236127616425" TEXT="If to much are inconsistent:">
96 <node CREATED="1236127617853" ID="Freemind_Link_1253336655" MODIFIED="1236127632709" TEXT="No connect can happen">
97 <node CREATED="1236127634178" ID="Freemind_Link_1412643595" MODIFIED="1236127642167" TEXT="Node list is rejected"/>
98 </node>
99 <node CREATED="1236127643409" ID="Freemind_Link_1181650485" MODIFIED="1236127660181" TEXT="Or the bootstrap-nodes are working as regular hubs"/>
100 <node CREATED="1236127660613" ID="Freemind_Link_1134140787" MODIFIED="1236127715377" TEXT="Replication of the node-list is required by all bootstrap-nodes"/>
101 </node>
102 </node>
103 <node CREATED="1253894942579" FOLDED="true" ID="Freemind_Link_210978828" MODIFIED="1253894962729" TEXT="4. Node connects to gathered master nodes">
104 <node CREATED="1253895103324" ID="Freemind_Link_1492702329" MODIFIED="1253895129180" TEXT="It again announces its object types to the master nodes"/>
105 <node CREATED="1253895133862" ID="Freemind_Link_447040624" MODIFIED="1253895150262" TEXT="Again it provides the session id so the master node can map session id -&gt; node id"/>
106 </node>
107 <node CREATED="1253895314125" FOLDED="true" ID="Freemind_Link_1052054603" MODIFIED="1253895326100" TEXT="5. If all authorization steps are completed:">
108 <node CREATED="1253895330153" ID="Freemind_Link_1721222063" MODIFIED="1253895354745" TEXT="The node starts to accept client connections">
109 <node CREATED="1253895355292" ID="Freemind_Link_501632661" MODIFIED="1253895359347" TEXT="(It already listens to them but rejects them)"/>
110 </node>
111 <node CREATED="1253895363495" ID="Freemind_Link_663261299" MODIFIED="1253895380188" TEXT="Objects will now be shared with other hubs which accepts the same object types"/>
112 </node>
113 </node>
114 <node CREATED="1236122378771" FOLDED="true" ID="_" MODIFIED="1236899597333" POSITION="right" TEXT="Karma">
115 <font BOLD="true" NAME="Dialog" SIZE="16"/>
116 <node CREATED="1236122492566" ID="Freemind_Link_1190748575" MODIFIED="1236122514559" TEXT="Karma is given for validating entries in the DHT">
117 <node CREATED="1236122431646" ID="Freemind_Link_29494292" MODIFIED="1236122473199" TEXT="Last activity in near past">
118 <node CREATED="1236122473708" ID="Freemind_Link_254202732" MODIFIED="1236122479111" TEXT="Does not affect karma"/>
119 </node>
120 <node CREATED="1236122544359" ID="Freemind_Link_210971136" MODIFIED="1236122548222" TEXT="Returned pings">
121 <node CREATED="1236122549203" ID="Freemind_Link_1680521907" MODIFIED="1236122582927" TEXT="Amount of sent pings">
122 <node CREATED="1236122583437" ID="Freemind_Link_689172908" MODIFIED="1236122605188" TEXT="If no reply it got dead-listed"/>
123 </node>
124 <node CREATED="1236122613591" ID="Freemind_Link_612939095" MODIFIED="1236122684314" TEXT="Failed pings reduce karma"/>
125 <node CREATED="1236122659986" ID="Freemind_Link_45314722" MODIFIED="1236122681829" TEXT="Slow responses reduce karma"/>
126 </node>
127 <node CREATED="1236122692603" ID="Freemind_Link_538248067" MODIFIED="1236122712165" TEXT="Karma voting for other hubs is not to negative">
128 <node CREATED="1236122713693" ID="Freemind_Link_511404921" MODIFIED="1236122728530" TEXT="Reduces manipulation chances">
129 <node CREATED="1236122730091" ID="Freemind_Link_801930369" MODIFIED="1236122743908" TEXT="Prefer karma votes of trusted hubs"/>
130 <node CREATED="1236122744853" ID="Freemind_Link_45612508" MODIFIED="1236122776006" TEXT="Negative karma votings for untrusted karma reduce own karma"/>
131 </node>
132 </node>
133 <node CREATED="1236122783733" ID="Freemind_Link_1507410448" MODIFIED="1236122798272" TEXT="To much &quot;spam packages&quot; reduce karma"/>
134 <node CREATED="1236122819786" ID="Freemind_Link_993155795" MODIFIED="1236122831449" TEXT="Validated packages increase karma"/>
135 <node CREATED="1236122841763" ID="Freemind_Link_1606666417" MODIFIED="1236122851076" TEXT="Protocol version should not be to old">
136 <node CREATED="1236122853153" ID="Freemind_Link_1094995324" MODIFIED="1236122869980" TEXT="This affects karma only negativly"/>
137 <node CREATED="1236122870509" ID="Freemind_Link_344926416" MODIFIED="1236122884569" TEXT="An up-to-date protocol does not increase karma"/>
138 <node CREATED="1236122885070" ID="Freemind_Link_473648942" MODIFIED="1236122902587" TEXT="Does also serve as a &quot;spam protection&quot;"/>
139 <node CREATED="1236122918035" ID="Freemind_Link_594554525" MODIFIED="1236122941184" TEXT="Received protocol version of node is older than stored">
140 <node CREATED="1236122941749" ID="Freemind_Link_174968672" MODIFIED="1236122946169" TEXT="Karma is reduced"/>
141 </node>
142 <node CREATED="1236122947985" ID="Freemind_Link_1682037492" MODIFIED="1236122969203" TEXT="Received protocol version is much than from master-nodes">
143 <node CREATED="1236122969588" ID="Freemind_Link_1255846244" MODIFIED="1236122973470" TEXT="Karma is reduced"/>
144 </node>
145 </node>
146 <node CREATED="1236123002722" ID="Freemind_Link_1260923814" MODIFIED="1236123013764" TEXT="Provided object types by the peer hub">
147 <node CREATED="1236123015319" ID="Freemind_Link_1973981672" MODIFIED="1236123025287" TEXT="This affectes karma only negativly"/>
148 <node CREATED="1236123026356" ID="Freemind_Link_936683200" MODIFIED="1236123040623" TEXT="New types must first be known by masters"/>
149 <node CREATED="1236123075821" ID="Freemind_Link_965874760" MODIFIED="1236123087086" TEXT="This should be configurable:">
150 <node CREATED="1236123088545" ID="Freemind_Link_1804987507" MODIFIED="1236123146558" TEXT="Karma should be reduced..."/>
151 <node CREATED="1236123147266" ID="Freemind_Link_1719378455" MODIFIED="1236123161157" TEXT="... or peer node should be black-listed"/>
152 </node>
153 <node CREATED="1236123041207" ID="Freemind_Link_1318639621" MODIFIED="1236123073229" TEXT="Because of every node can be a master-mode censorship is really hard"/>
154 </node>
155 <node CREATED="1236123176016" ID="Freemind_Link_1158753702" MODIFIED="1236123192038" TEXT="Correctly logging">
156 <node CREATED="1236123192506" ID="Freemind_Link_571936771" MODIFIED="1236123197543" TEXT="Does not affect karma"/>
157 <node CREATED="1236123201477" ID="Freemind_Link_526838799" MODIFIED="1236123218064" TEXT="Logout must be done by master node and active hubs">
158 <node CREATED="1236123218463" ID="Freemind_Link_961650790" MODIFIED="1236123236943" TEXT="&quot;Bye&quot; message">
159 <icon BUILTIN="idea"/>
160 </node>
161 </node>
162 <node CREATED="1236123251132" ID="Freemind_Link_548852073" MODIFIED="1236123270878" TEXT="Rotating of dynamic IPs should be considered">
163 <node CREATED="1236123319578" ID="Freemind_Link_1811539187" MODIFIED="1236123329144" TEXT="Must be registered by master-node">
164 <node CREATED="1236123330548" ID="Freemind_Link_589306378" MODIFIED="1236123338841" TEXT="ID is registered as &quot;Dynamic IP&quot;"/>
165 <node CREATED="1236123345030" ID="Freemind_Link_1377338623" MODIFIED="1236123350574" TEXT="So connects are still possible"/>
166 </node>
167 <node CREATED="1236123356818" ID="Freemind_Link_1985410220" MODIFIED="1236123366085" TEXT="No negative votings by other hubs"/>
168 <node CREATED="1236123374240" ID="Freemind_Link_289837552" MODIFIED="1236123395878" TEXT="Current IP does spread good in network">
169 <node CREATED="1236123397287" ID="Freemind_Link_962702337" MODIFIED="1236123408274" TEXT="Query of the master-node only in doubt"/>
170 </node>
171 </node>
172 </node>
173 </node>
174 </node>
175 <node CREATED="1236819279117" FOLDED="true" ID="Freemind_Link_831929021" MODIFIED="1236899597332" POSITION="left" TEXT="Update Messages">
176 <font BOLD="true" NAME="Dialog" SIZE="16"/>
177 <node CREATED="1236819311945" ID="Freemind_Link_71881649" MODIFIED="1236819334898" TEXT="Will only be broadcasted from bootstrap- to master- and list-nodes"/>
178 <node CREATED="1236819339152" ID="Freemind_Link_774046685" MODIFIED="1236819364243" TEXT="No node will receive update messages due to heavy network load">
179 <node CREATED="1236819365454" ID="Freemind_Link_1204404067" MODIFIED="1236819386873" TEXT="Maybe only &quot;good&quot; hubs should receive this?">
180 <icon BUILTIN="xmag"/>
181 <icon BUILTIN="help"/>
182 </node>
183 </node>
184 <node CREATED="1236819395918" ID="Freemind_Link_1584525818" MODIFIED="1236819442284" TEXT="Contains update notes and importance level"/>
185 </node>
186 <node CREATED="1236819472321" FOLDED="true" ID="Freemind_Link_168475853" MODIFIED="1236899597331" POSITION="left" TEXT="&quot;Client&quot; Connections">
187 <font BOLD="true" NAME="Dialog" SIZE="16"/>
188 <node CREATED="1236819488308" ID="Freemind_Link_1154203316" MODIFIED="1236819533272" TEXT="Should be interpreted as &quot;application software&quot;">
189 <icon BUILTIN="bell"/>
190 </node>
191 <node CREATED="1236819549590" ID="Freemind_Link_1741675827" MODIFIED="1236819572277" TEXT="Clients should also generate a &quot;client id&quot;">
192 <node CREATED="1236819572768" ID="Freemind_Link_518254369" MODIFIED="1236819577298" TEXT="Both id and sid"/>
193 </node>
194 <node CREATED="1236819583899" ID="Freemind_Link_815708604" MODIFIED="1236819600627" TEXT="Will also connect first to bootstrap-nodes">
195 <node CREATED="1236819601271" ID="Freemind_Link_934296740" MODIFIED="1236819625910" TEXT="Ask for a node-list as well"/>
196 </node>
197 <node CREATED="1236819612157" ID="Freemind_Link_480673349" MODIFIED="1236819634577" TEXT="Do also receive karma from hubs"/>
198 <node CREATED="1236819638653" ID="Freemind_Link_692612491" MODIFIED="1236819657034" TEXT="Dynamic IPs are also accepted and therefore must be registered"/>
199 </node>
200 <node CREATED="1236819677106" FOLDED="true" ID="Freemind_Link_1445979240" MODIFIED="1236899597329" POSITION="left" TEXT="Client&lt;-&gt;Node Communication">
201 <font BOLD="true" NAME="Dialog" SIZE="16"/>
202 <node CREATED="1236898541254" ID="Freemind_Link_374257888" MODIFIED="1236898566531" TEXT="After a client has bootstrapped it announces all it&apos;s object types to the hubs">
203 <node CREATED="1236898577202" ID="Freemind_Link_1014689893" MODIFIED="1236898596094" TEXT="Including acceptance of broadcasts, poll-mode and Ping-POST"/>
204 </node>
205 <node CREATED="1236898600139" ID="Freemind_Link_730901168" MODIFIED="1236898624130" TEXT="By this the hubs know clients and their accepted object types"/>
206 <node CREATED="1236898628920" ID="Freemind_Link_1981646811" MODIFIED="1236898649573" TEXT="Clients may download a node-list for a specific object type">
207 <node CREATED="1236898649983" ID="Freemind_Link_376278255" MODIFIED="1236898658898" TEXT="Distinct-List-Mode"/>
208 <node CREATED="1236898661907" ID="Freemind_Link_481362981" MODIFIED="1236898685390" TEXT="After selecting a node the client can request a list of clients from that hub"/>
209 <node CREATED="1236898693369" ID="Freemind_Link_1444901526" MODIFIED="1236898735306" TEXT="From these clients the client can accept objects from and send to">
210 <node CREATED="1236898744031" ID="Freemind_Link_423939808" MODIFIED="1236898750207" TEXT="E.g. news by broadcast"/>
211 </node>
212 </node>
213 <node CREATED="1236898764873" ID="Freemind_Link_619530506" MODIFIED="1236898781532" TEXT="Clients may send &quot;broadcast&quot; objects">
214 <node CREATED="1236898781858" ID="Freemind_Link_104270656" MODIFIED="1236898785647" TEXT="Broadcast-Mode"/>
215 <node CREATED="1236898788766" ID="Freemind_Link_187831566" MODIFIED="1236898820811" TEXT="Must be allowed by hubs">
216 <node CREATED="1236898821127" ID="Freemind_Link_929863047" MODIFIED="1236898833669" TEXT="This consumes traffic"/>
217 <node CREATED="1236898845514" ID="Freemind_Link_421479503" MODIFIED="1236898864289" TEXT="Acceptance of broadcasts is known to list-/master- and bootstrap-nodes"/>
218 </node>
219 <node CREATED="1236898869927" ID="Freemind_Link_20289741" MODIFIED="1236898894884" TEXT="A client sends its broadcast to the master-nodes">
220 <node CREATED="1236898903419" ID="Freemind_Link_751901694" MODIFIED="1236898927433" TEXT="They are distribute it to their fellow hubs"/>
221 <node CREATED="1236898931205" ID="Freemind_Link_908440118" MODIFIED="1236899031658" TEXT="A node knows which client accepts broadcasts and &quot;deposits&quot; it for the client"/>
222 <node CREATED="1236899048881" ID="Freemind_Link_1381761729" MODIFIED="1236899073911" TEXT="Clients are requesting such broadcasts by poll-mode or are &quot;pinged&quot;">
223 <node CREATED="1236899074418" ID="Freemind_Link_816499858" MODIFIED="1236899104143" TEXT="In poll-mode the client asks on a regular basis at the node for new broadcasts"/>
224 <node CREATED="1236899114179" ID="Freemind_Link_1452667491" MODIFIED="1236899160051" TEXT="A Ping-POST is being sent by the node as a regular HTTP-POST request to the client">
225 <node CREATED="1236899160614" ID="Freemind_Link_873242294" MODIFIED="1236899170480" TEXT="This also happens on a regular basis"/>
226 </node>
227 <node CREATED="1236899177795" ID="Freemind_Link_1845481591" MODIFIED="1236899200012" TEXT="A node-admin may allow both types independly"/>
228 <node CREATED="1236899205412" ID="Freemind_Link_1607423256" MODIFIED="1236899216542" TEXT="If none is allowed the node acts as a &quot;relay&quot;">
229 <node CREATED="1236899225741" ID="Freemind_Link_297001287" MODIFIED="1236899250404" TEXT="And therefore it cannot accept clients with broadcast-functionality enabled"/>
230 </node>
231 </node>
232 </node>
233 </node>
234 <node CREATED="1236899269918" ID="Freemind_Link_144167856" MODIFIED="1236899586006" TEXT="Client-Client Communication">
235 <font BOLD="true" NAME="Dialog" SIZE="14"/>
236 <node CREATED="1236899286016" ID="Freemind_Link_1642758810" MODIFIED="1236899322515" TEXT="May be done &quot;anonymously&quot; over the node or directly with an other client">
237 <node CREATED="1236899328390" ID="Freemind_Link_1507061819" MODIFIED="1236899349464" TEXT="Communication of the node is done in poll-mode or by Ping-POST"/>
238 <node CREATED="1236899361363" ID="Freemind_Link_1390010744" MODIFIED="1236899393223" TEXT="Direct client-client communication client &quot;A&quot; sends a Ping-POST directly to client &quot;B&quot;"/>
239 </node>
240 <node CREATED="1236899405778" ID="Freemind_Link_1445364933" 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;">
241 <icon BUILTIN="xmag"/>
242 <icon BUILTIN="desktop_new"/>
243 </node>
244 </node>
245 </node>
246 <node CREATED="1236899558200" FOLDED="true" ID="Freemind_Link_329480665" MODIFIED="1236899597327" POSITION="left" TEXT="Usage of low-level protocols">
247 <font BOLD="true" NAME="Dialog" SIZE="16"/>
248 <node CREATED="1236901514992" ID="Freemind_Link_679379315" MODIFIED="1236901534483" TEXT="Already existing low-level protocols like TCP/IP and UDP should be used">
249 <node CREATED="1236901538901" ID="Freemind_Link_1616250831" MODIFIED="1236901554266" TEXT="TCP should be used for &quot;inter-communication&quot;"/>
250 <node CREATED="1236901556582" ID="Freemind_Link_898295556" MODIFIED="1236901583267" TEXT="UDP should be used for &quot;streaming&quot; the objects to other hubs">
251 <node CREATED="1236901610332" ID="Freemind_Link_401089184" MODIFIED="1236901640384" TEXT="Parties are generating hashes of chunks for validation"/>
252 <node CREATED="1236901642356" ID="Freemind_Link_947570234" MODIFIED="1236901665725" TEXT="Chunks should only be created for very big objects">
253 <node CREATED="1236901666398" ID="Freemind_Link_912553641" MODIFIED="1236901689135" TEXT="Total object size is larger than X KByte">
254 <icon BUILTIN="xmag"/>
255 <icon BUILTIN="messagebox_warning"/>
256 </node>
257 </node>
258 <node CREATED="1236901692592" ID="Freemind_Link_1011335691" MODIFIED="1236901715605" TEXT="The sender creates hashes and adds them to the chunk">
259 <node CREATED="1236901719921" ID="Freemind_Link_64829706" MODIFIED="1236901727014" TEXT="The receivers validates them"/>
260 <node CREATED="1236901734931" ID="Freemind_Link_1875786790" MODIFIED="1236901754322" TEXT="No serial numbers a-la TCP are generated"/>
261 </node>
262 <node CREATED="1236901817636" ID="Freemind_Link_99186455" MODIFIED="1236901826666" TEXT="The last chunk package contains both hashes">
263 <node CREATED="1236901827048" ID="Freemind_Link_398290140" MODIFIED="1236901839943" TEXT="Hash of itself and the final hash"/>
264 </node>
265 <node CREATED="1236901850065" ID="Freemind_Link_1741640397" MODIFIED="1236901891617" TEXT="If a hash fails to validate it is being collected">
266 <node CREATED="1236901891984" ID="Freemind_Link_1930312770" MODIFIED="1236901909386" TEXT="After the final chunk was sent, failed chunks a re-requested"/>
267 </node>
268 <node CREATED="1236901915277" ID="Freemind_Link_681298548" MODIFIED="1236901923528" TEXT="This is retried X times per hash">
269 <node CREATED="1236901937242" ID="Freemind_Link_1530992232" MODIFIED="1236901953148" TEXT="But always at the end of the whole transaction and all together"/>
270 <node CREATED="1236901958504" ID="Freemind_Link_766714583" MODIFIED="1236901976592" TEXT="If still some hashes failed to transfer">
271 <node CREATED="1236901976933" ID="Freemind_Link_1262238289" MODIFIED="1236901990294" TEXT="The object got dropped or fully requested"/>
272 <node CREATED="1236901994695" ID="Freemind_Link_1316903827" MODIFIED="1236902002656" TEXT="This should be configurable by the admin"/>
273 <node CREATED="1236902012089" ID="Freemind_Link_525157850" MODIFIED="1236902030267" TEXT="To do so, the final hash and object type is submitted to the sender">
274 <node CREATED="1236902095145" ID="Freemind_Link_1316680608" MODIFIED="1236902127410" TEXT="&quot;Restransmit-Message&quot;">
275 <icon BUILTIN="attach"/>
276 </node>
277 </node>
278 <node CREATED="1236902035497" ID="Freemind_Link_9873596" MODIFIED="1236902042954" TEXT="The sender is now trying smaller chunks"/>
279 </node>
280 </node>
281 <node CREATED="1236902048687" ID="Freemind_Link_507679569" MODIFIED="1236902057647" TEXT="If all was successfully received">
282 <node CREATED="1236902061691" ID="Freemind_Link_566458700" MODIFIED="1236902086124" TEXT="The receivers sends a &quot;done-message&quot; to the sender with final hash and object type"/>
283 </node>
284 </node>
285 <node CREATED="1236902139108" ID="Freemind_Link_602435860" MODIFIED="1236902146920" TEXT="There is also a &quot;real&quot; streaming mode">
286 <node CREATED="1236902147315" ID="Freemind_Link_1387836906" MODIFIED="1236902152513" TEXT="This is e.g. used for chat"/>
287 <node CREATED="1236902157513" ID="Freemind_Link_1268993772" MODIFIED="1236902221941" TEXT="For this TCP/IP is used and no hashes are generated"/>
288 <node CREATED="1236902172714" ID="Freemind_Link_602177505" MODIFIED="1236902181106" TEXT="Also no chunks are generated"/>
289 <node CREATED="1236902181913" ID="Freemind_Link_191938147" MODIFIED="1236902199404" TEXT="Only in this mode &quot;multi-casting&quot; is possible"/>
290 </node>
291 </node>
292 </node>
293 <node CREATED="1236804847687" FOLDED="true" ID="Freemind_Link_1372827895" MODIFIED="1236899597302" POSITION="right" TEXT="Fault Tolerance / Reliability">
294 <font BOLD="true" NAME="Dialog" SIZE="16"/>
295 <node CREATED="1236805031745" ID="Freemind_Link_28699698" MODIFIED="1236805057203" TEXT="After X failed connection attempts a node got removed">
296 <node CREATED="1236805060886" ID="Freemind_Link_1795377892" MODIFIED="1236805073614" TEXT="Other hubs report this to the master-node"/>
297 <node CREATED="1236805074337" ID="Freemind_Link_1595372369" MODIFIED="1236805094304" TEXT="The master-node probes the failed node and removes it"/>
298 </node>
299 <node CREATED="1236805095936" ID="Freemind_Link_468909888" MODIFIED="1236805105212" TEXT="Failed list-node">
300 <node CREATED="1236805111066" ID="Freemind_Link_192209809" MODIFIED="1236805126866" TEXT="Hubs are reporting it to the master-node"/>
301 <node CREATED="1236805135129" ID="Freemind_Link_933570791" MODIFIED="1236805143745" TEXT="The master-node probes the failed list-node and removes it"/>
302 </node>
303 <node CREATED="1236805147958" ID="Freemind_Link_1309357086" MODIFIED="1236805152648" TEXT="Failed master-node">
304 <node CREATED="1236805160627" ID="Freemind_Link_1228535079" MODIFIED="1236805192366" TEXT="List-nodes takeover the role of a master-node if no bootstrap-nodes are available">
305 <node CREATED="1236805194058" ID="Freemind_Link_1324885722" MODIFIED="1236805230236" TEXT="This takeover should not be entirely and should be defined">
306 <icon BUILTIN="messagebox_warning"/>
307 <icon BUILTIN="desktop_new"/>
308 </node>
309 </node>
310 <node CREATED="1236805256862" ID="Freemind_Link_489546245" MODIFIED="1236805284415" TEXT="If there is no list-node, hubs look for an active master-node">
311 <node CREATED="1236805285629" ID="Freemind_Link_496844314" MODIFIED="1236805295805" TEXT="They report the failed master-node to it"/>
312 </node>
313 <node CREATED="1236805300701" ID="Freemind_Link_1831877789" MODIFIED="1236805333472" TEXT="If additionally no master-node is up, a node will be elected as new master-node">
314 <node CREATED="1236805370471" ID="Freemind_Link_1473765417" MODIFIED="1236805388795" TEXT="Doing so, all hubs are identifying the node with...">
315 <node CREATED="1236805389203" ID="Freemind_Link_1849074808" MODIFIED="1236805408420" TEXT="... the best karma">
316 <node CREATED="1236805408843" ID="Freemind_Link_1303674032" MODIFIED="1236805414368" TEXT="This is known to many hubs"/>
317 </node>
318 <node CREATED="1236805415695" ID="Freemind_Link_1087780155" MODIFIED="1236805439758" TEXT="... most votings">
319 <node CREATED="1236805440417" ID="Freemind_Link_585981486" MODIFIED="1236805465354" TEXT="A &quot;vote&quot; is a positive karma"/>
320 <node CREATED="1236805470049" ID="Freemind_Link_616335445" MODIFIED="1236805478210" TEXT="Also known to many hubs"/>
321 </node>
322 </node>
323 <node CREATED="1236805485261" ID="Freemind_Link_341438028" MODIFIED="1236805508476" TEXT="The &quot;election&quot; should take place within a specific timeout"/>
324 <node CREATED="1236805519338" ID="Freemind_Link_515853064" MODIFIED="1236805539978" TEXT="If no election is happening the node with most connections got elected"/>
325 </node>
326 </node>
327 <node CREATED="1236805556971" ID="Freemind_Link_694830716" MODIFIED="1236805567605" TEXT="If one of the bootstrap-nodes is up">
328 <node CREATED="1236805568757" ID="Freemind_Link_1701914366" MODIFIED="1236805604922" TEXT="The elected hubs notifies a some of it&apos;s fellow hubs that the bootstrap-node is back"/>
329 <node CREATED="1236805612004" ID="Freemind_Link_561336762" MODIFIED="1236805631225" TEXT="The elected node becomes a regular node and notifies other hubs on connection attempts"/>
330 </node>
331 <node CREATED="1236805649317" ID="Freemind_Link_1745751398" MODIFIED="1236805654363" TEXT="Disadvantages:">
332 <node CREATED="1236805655355" ID="Freemind_Link_1189063074" MODIFIED="1236805688061" TEXT="A new node with only knowlege about the bootstrap-nodes may not be able to connect to the hubs">
333 <node CREATED="1236805691077" ID="Freemind_Link_1581407665" MODIFIED="1236805728068" TEXT="Additional bootstrap-nodes on other server and/or continent may help here"/>
334 </node>
335 </node>
336 </node>
337 <node CREATED="1236818932032" FOLDED="true" ID="Freemind_Link_1204819150" MODIFIED="1236899597325" POSITION="right" TEXT="Object Types">
338 <font BOLD="true" NAME="Dialog" SIZE="16"/>
339 <node CREATED="1236818952579" ID="Freemind_Link_1961919735" MODIFIED="1236818969501" TEXT="New object types are only addable by updating the software"/>
340 <node CREATED="1236818987796" ID="Freemind_Link_188591190" MODIFIED="1236818998981" TEXT="It also possible by 3rd-party">
341 <node CREATED="1236819000063" ID="Freemind_Link_385578906" MODIFIED="1236819012704" TEXT="Must be known by master/bootstrap-nodes"/>
342 </node>
343 <node CREATED="1236819026050" ID="Freemind_Link_1667260565" MODIFIED="1236819039189" TEXT="Outdated object types are marked &quot;deprecated&quot; for a longer time">
344 <node CREATED="1236819040263" ID="Freemind_Link_1936301650" MODIFIED="1236819053202" TEXT="Master-nodes may accept or reject them"/>
345 <node CREATED="1236819057430" ID="Freemind_Link_505959038" MODIFIED="1236819072713" TEXT="A &quot;deprecation message&quot; is always being sent"/>
346 <node CREATED="1236819073435" ID="Freemind_Link_1001362763" MODIFIED="1236819086883" TEXT="A note of a required update can optionally be added"/>
347 </node>
348 <node CREATED="1236819096719" ID="Freemind_Link_259217829" MODIFIED="1236819111770" TEXT="After deprecation time they are treated as &quot;unknown&quot;"/>
349 <node CREATED="1236819117510" ID="Freemind_Link_1228871005" MODIFIED="1236819187199" TEXT="Other hubs should ask bootstrap-nodes">
350 <node CREATED="1236819188392" ID="Freemind_Link_887331476" MODIFIED="1236819200697" TEXT="This compensate errors made by master-nodes"/>
351 <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"/>
352 </node>
353 </node>
354 </node>
355 </map>