MindMap continued and exported to XHTML
authorRoland Häder <roland@mxchange.org>
Thu, 12 Mar 2009 01:16:45 +0000 (01:16 +0000)
committerRoland Häder <roland@mxchange.org>
Thu, 12 Mar 2009 01:16:45 +0000 (01:16 +0000)
40 files changed:
.gitattributes
mindmaps/Generic Object Sharing Protocol.html [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/Mail.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/attach.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/back.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/bell.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/bookmark.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/button_cancel.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/button_ok.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/clanbomber.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/desktop_new.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/flag.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/forward.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/full-1.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/full-2.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/full-3.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/full-4.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/full-5.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/full-6.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/full-7.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/gohome.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/help.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/idea.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/kaddressbook.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/knotify.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/korn.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/ksmiletris.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/licq.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/messagebox_warning.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/password.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/pencil.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/penguin.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/stop.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/wizard.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/icons/xmag.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/marktree.js [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/minus.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/plus.png [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.html_files/treestyles.css [new file with mode: 0644]
mindmaps/Generic Object Sharing Protocol.mm

index 1f243ad654a6a724f3f7d7bd94aa15a86e4d9b83..ac3e1e9f018c854d8bcc98724f6b74ee5e135e61 100644 (file)
@@ -1,4 +1,42 @@
 * text=auto !eol
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/Mail.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/attach.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/back.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/bell.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/bookmark.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/button_cancel.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/button_ok.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/clanbomber.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/desktop_new.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/flag.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/forward.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/full-1.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/full-2.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/full-3.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/full-4.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/full-5.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/full-6.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/full-7.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/gohome.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/help.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/idea.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/kaddressbook.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/knotify.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/korn.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/ksmiletris.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/licq.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/messagebox_warning.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/password.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/pencil.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/penguin.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/stop.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/wizard.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/icons/xmag.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/marktree.js -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/minus.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/plus.png -text
+mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.html_files/treestyles.css -text
 mindmaps/Generic[!!-~]Object[!!-~]Sharing[!!-~]Protocol.mm -text
 protocol-drafts/Generic[!!-~]Object[!!-~]Sharing[!!-~]Prototocol[!!-~]0.0.1.odt -text
 protocol-drafts/Generic[!!-~]Object[!!-~]Sharing[!!-~]Prototocol[!!-~]0.0.1.pdf -text
diff --git a/mindmaps/Generic Object Sharing Protocol.html b/mindmaps/Generic Object Sharing Protocol.html
new file mode 100644 (file)
index 0000000..beaeb4e
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="iso-8859-1"?><?xml-stylesheet href="treestyles.css" type="text/css"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xml:lang="fi" xmlns="http://www.w3.org/1999/xhtml"><head><title>Generic Object Sharing Protocol</title><link rel="stylesheet" href="Generic Object Sharing Protocol.html_files/treestyles.css" type="text/css"/><script type="text/javascript" src="Generic Object Sharing Protocol.html_files/marktree.js">  </script></head><body><div class="basetop"><a href="#" onclick="expandAll(document.getElementById('base'))">Expand</a> - <a href="#" onclick="collapseAll(document.getElementById('base'))">Collapse</a></div><div id="base" class="basetext"><ul><li class="col" style="" id="FMFreemind_Link_1069566441FM"><span style="font-size:150%;font-weight:bold;">Generic Object Sharing Protocol</span><ul class="subexp"><li class="exp" style="" id="FMFreemind_Link_1660540085FM"><span style="font-size:117%;font-weight:bold;">Hub Identification</span><ul class="sub"><li class="col" style="" id="FMFreemind_Link_780558731FM"><span style="">Every hub generates an id string by random</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1498010716FM"><span style="">This is the Hub-Id (Hub Identifier)</span></li><li class="basic" style="" id="FMFreemind_Link_458280781FM"><span style="">Only on first use</span></li><li class="basic" style="" id="FMFreemind_Link_698958541FM"><span style="">This should be globally unique</span></li><li class="basic" style="" id="FMFreemind_Link_1564511533FM"><span style="">It will be stored in hub's database for later reuse</span></li><li class="col" style="" id="FMFreemind_Link_982080681FM"><span style="">A hash is being generated of it</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_177707740FM"><span style="">Hashed data:</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1317863864FM"><span style="">Hub's IP number and hostname</span></li><li class="basic" style="" id="FMFreemind_Link_1030355543FM"><span style="">Some random characters</span></li></ul></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1022876700FM"><span style="">This id does not change as long as the database is not purged</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1712131488FM"><span style="">Per session another id is generated</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_439993942FM"><span style="">This is the SID (Session IDentifier)</span></li><li class="basic" style="" id="FMFreemind_Link_1215594894FM"><span style="">It is being distributed to the hubs</span></li><li class="col" style="" id="FMFreemind_Link_1633651159FM"><span style="">It stored together with the Hub-Id</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_651452439FM"><span style="">So other can validate bother together</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_789902518FM"><img src="Generic Object Sharing Protocol.html_files/icons/messagebox_warning.png" alt="messagebox_warning"/> <span style="">Logging should only enabled for debugging purposes</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_902328932FM"><span style="">Locking IPs or Hub-Ids on master-nodes is not planed</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1592412776FM"><span style="">Censorship would be to very easy</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_423578439FM"><span style="">Government agencies or enterprise parties</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_84092519FM"><span style="">Censhorship makes no sence here</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_514458550FM"><span style="">It can very easy be bypassed:</span></li><li class="col" style="" id="FMFreemind_Link_1221678941FM"><span style="">Delete Hub-Id in database</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_904836052FM"><span style="">A new one got generated</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1262635656FM"><span style="">Locked IP or port number can be bypassed by proxies</span></li><li class="col" style="" id="FMFreemind_Link_1619827292FM"><span style="">One or two master-hubs should listen on ports commonly unblocked by firewalls</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_709609072FM"><span style="">Like 80/443/110/25</span></li></ul></li></ul></li></ul></li><li class="col" style="" id="FMFreemind_Link_441713513FM"><span style="">Hubs can be optionally registered by master-nodes</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1200999421FM"><span style="">Increases karma because the hub admin is verified</span></li><li class="basic" style="" id="FMFreemind_Link_1617168424FM"><span style="">Unregistered hubs does not receive negative votings</span></li></ul></li></ul></li><li class="exp" style="" id="FMFreemind_Link_1339348415FM"><span style="font-size:117%;font-weight:bold;">Bootstrapping</span><ul class="sub"><li class="col" style="" id="FMFreemind_Link_453620216FM"><span style="">At least one, better 3 to 4, master-nodes are required</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_265648584FM"><span style="">Aka. "Bootstrap-Nodes"</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_854375254FM"><span style="">Bootstrap-Nodes are working stand-alone</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_882684293FM"><span style="">No central "Super-Node" is required</span></li><li class="basic" style="" id="FMFreemind_Link_1661888163FM"><span style="">Too much traffic would have to flow through it</span></li><li class="basic" style="" id="FMFreemind_Link_1121780060FM"><span style="">Attacks on the network by censorship are reduced</span></li><li class="basic" style="" id="FMFreemind_Link_924004535FM"><span style="">Traffic does not increase network-overall load</span></li><li class="col" style="" id="FMFreemind_Link_1573570415FM"><span style="">Small disadvantage:</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1018217993FM"><span style="">Hubs must register with ...</span></li><li class="basic" style="" id="FMFreemind_Link_665965725FM"><span style="">... more than one master-node ...</span></li><li class="basic" style="" id="FMFreemind_Link_1849172644FM"><span style="">.. or connect with each other</span></li></ul></li></ul></li><li class="col" style="" id="FMFreemind_Link_608191462FM"><span style="">Hub is fetching a list of other hubs</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_195277951FM"><span style="">They must have at least X matching object types</span></li><li class="basic" style="" id="FMFreemind_Link_453619955FM"><span style="">Hashes of hub-lists should match</span></li><li class="col" style="" id="FMFreemind_Link_574241054FM"><span style="">If to much are inconsistent:</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1253336655FM"><span style="">No connect can happen</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1412643595FM"><span style="">Hub list is rejected</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1181650485FM"><span style="">Or the bootstrap-nodes are working as regular hubs</span></li><li class="basic" style="" id="FMFreemind_Link_1134140787FM"><span style="">Replication of the hub-list is required by all bootstrap-nodes</span></li></ul></li></ul></li></ul></li><li class="exp" style="" id="FM_FM"><span style="font-size:117%;font-weight:bold;">Karma</span><ul class="sub"><li class="col" style="" id="FMFreemind_Link_1190748575FM"><span style="">Karma is given for validating entries in the DHT</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_29494292FM"><span style="">Last activity in near past</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_254202732FM"><span style="">Does not affect karma</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_210971136FM"><span style="">Returned pings</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1680521907FM"><span style="">Amount of sent pings</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_689172908FM"><span style="">If no reply it got dead-listed</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_612939095FM"><span style="">Failed pings reduce karma</span></li><li class="basic" style="" id="FMFreemind_Link_45314722FM"><span style="">Slow responses reduce karma</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_538248067FM"><span style="">Karma voting for other hubs is not to negative</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_511404921FM"><span style="">Reduces manipulation chances</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_801930369FM"><span style="">Prefer karma votes of trusted hubs</span></li><li class="basic" style="" id="FMFreemind_Link_45612508FM"><span style="">Negative karma votings for untrusted karma reduce own karma</span></li></ul></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1507410448FM"><span style="">To much "spam packages" reduce karma</span></li><li class="basic" style="" id="FMFreemind_Link_993155795FM"><span style="">Validated packages increase karma</span></li><li class="col" style="" id="FMFreemind_Link_1606666417FM"><span style="">Protocol version should not be to old</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1094995324FM"><span style="">This affects karma only negativly</span></li><li class="basic" style="" id="FMFreemind_Link_344926416FM"><span style="">An up-to-date protocol does not increase karma</span></li><li class="basic" style="" id="FMFreemind_Link_473648942FM"><span style="">Does also serve as a "spam protection"</span></li><li class="col" style="" id="FMFreemind_Link_594554525FM"><span style="">Received protocol version of hub is older than stored</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_174968672FM"><span style="">Karma is reduced</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1682037492FM"><span style="">Received protocol version is much than from master-nodes</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1255846244FM"><span style="">Karma is reduced</span></li></ul></li></ul></li><li class="col" style="" id="FMFreemind_Link_1260923814FM"><span style="">Provided object types by the peer hub</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1973981672FM"><span style="">This affectes karma only negativly</span></li><li class="basic" style="" id="FMFreemind_Link_936683200FM"><span style="">New types must first be known by masters</span></li><li class="col" style="" id="FMFreemind_Link_965874760FM"><span style="">This should be configurable:</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1804987507FM"><span style="">Karma should be reduced...</span></li><li class="basic" style="" id="FMFreemind_Link_1719378455FM"><span style="">... or peer hub should be black-listed</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1318639621FM"><span style="">Because of every node can be a master-mode censorship is really hard</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1158753702FM"><span style="">Correctly logging</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_571936771FM"><span style="">Does not affect karma</span></li><li class="col" style="" id="FMFreemind_Link_526838799FM"><span style="">Logout must be done by master hub and active hubs</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_961650790FM"><img src="Generic Object Sharing Protocol.html_files/icons/idea.png" alt="idea"/> <span style="">"Bye" message</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_548852073FM"><span style="">Rotating of dynamic IPs should be considered</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1811539187FM"><span style="">Must be registered by master-node</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_589306378FM"><span style="">ID is registered as "Dynamic IP"</span></li><li class="basic" style="" id="FMFreemind_Link_1377338623FM"><span style="">So connects are still possible</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1985410220FM"><span style="">No negative votings by other hubs</span></li><li class="col" style="" id="FMFreemind_Link_289837552FM"><span style="">Current IP does spread good in network</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_962702337FM"><span style="">Query of the master-node only in doubt</span></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="exp" style="" id="FMFreemind_Link_1204819150FM"><span style="font-size:117%;font-weight:bold;">Object Types</span><ul class="sub"><li class="basic" style="" id="FMFreemind_Link_1961919735FM"><span style="">New object types are only addable by updating the software</span></li><li class="col" style="" id="FMFreemind_Link_188591190FM"><span style="">It also possible by 3rd-party</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_385578906FM"><span style="">Must be known by master/bootstrap-nodes</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1667260565FM"><span style="">Outdated object types are marked "deprecated" for a longer time</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1936301650FM"><span style="">Master-nodes may accept or reject them</span></li><li class="basic" style="" id="FMFreemind_Link_505959038FM"><span style="">A "deprecation message" is always being sent</span></li><li class="basic" style="" id="FMFreemind_Link_1001362763FM"><span style="">A note of a required update can optionally be added</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_259217829FM"><span style="">After deprecation time they are treated as "unknown"</span></li><li class="col" style="" id="FMFreemind_Link_1228871005FM"><span style="">Other hubs should ask bootstrap-nodes</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_887331476FM"><span style="">This compensate errors made by master-nodes</span></li><li class="basic" style="" id="FMFreemind_Link_1450229897FM"><span style="">Wrongly deprecated object types by the master-node result in bad karma by the bootstrap-node</span></li></ul></li></ul></li><li class="exp" style="" id="FMFreemind_Link_831929021FM"><span style="font-size:117%;font-weight:bold;">Update Messages</span><ul class="sub"><li class="basic" style="" id="FMFreemind_Link_71881649FM"><span style="">Will only be broadcasted from bootstrap- to master- and list-nodes</span></li><li class="col" style="" id="FMFreemind_Link_774046685FM"><span style="">No hub will receive update messages due to heavy network load</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1204404067FM"><img src="Generic Object Sharing Protocol.html_files/icons/xmag.png" alt="xmag"/> <img src="Generic Object Sharing Protocol.html_files/icons/help.png" alt="help"/> <span style="">Maybe only "good" hubs should receive this?</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1584525818FM"><span style="">Contains update notes and importance level</span></li></ul></li><li class="exp" style="" id="FMFreemind_Link_168475853FM"><span style="font-size:117%;font-weight:bold;">"Client" Connections</span><ul class="sub"><li class="basic" style="" id="FMFreemind_Link_1154203316FM"><img src="Generic Object Sharing Protocol.html_files/icons/bell.png" alt="bell"/> <span style="">Should be interpreted as "application software"</span></li><li class="col" style="" id="FMFreemind_Link_1741675827FM"><span style="">Clients should also generate a "client id"</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_518254369FM"><span style="">Both id and sid</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_815708604FM"><span style="">Will also connect first to bootstrap-nodes</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_934296740FM"><span style="">Ask for a hub-list as well</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_480673349FM"><span style="">Do also receive karma from hubs</span></li><li class="basic" style="" id="FMFreemind_Link_692612491FM"><span style="">Dynamic IPs are also accepted and therefore must be registered</span></li></ul></li><li class="basic" style="" id="FMFreemind_Link_1445979240FM"><span style="font-size:117%;font-weight:bold;">Client&lt;-&gt;Hub Communication</span></li><li class="exp" style="" id="FMFreemind_Link_1372827895FM"><span style="font-size:117%;font-weight:bold;">Fault Tolerance / Reliability</span><ul class="sub"><li class="col" style="" id="FMFreemind_Link_28699698FM"><span style="">After X failed connection attempts a hub got removed</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1795377892FM"><span style="">Other hubs report this to the master-node</span></li><li class="basic" style="" id="FMFreemind_Link_1595372369FM"><span style="">The master-node probes the failed hub and removes it</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_468909888FM"><span style="">Failed list-node</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_192209809FM"><span style="">Hubs are reporting it to the master-node</span></li><li class="basic" style="" id="FMFreemind_Link_933570791FM"><span style="">The master-node probes the failed list-node and removes it</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1309357086FM"><span style="">Failed master-node</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1228535079FM"><span style="">List-nodes takeover the role of a master-node if no bootstrap-nodes are available</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1324885722FM"><img src="Generic Object Sharing Protocol.html_files/icons/messagebox_warning.png" alt="messagebox_warning"/> <img src="Generic Object Sharing Protocol.html_files/icons/desktop_new.png" alt="desktop_new"/> <span style="">This takeover should not be entirely and should be defined</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_489546245FM"><span style="">If there is no list-node, hubs look for an active master-node</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_496844314FM"><span style="">They report the failed master-node to it</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1831877789FM"><span style="">If additionally no master-node is up, a hub will be elected as new master-node</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1473765417FM"><span style="">Doing so, all hubs are identifying the hub with...</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1849074808FM"><span style="">... the best karma</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1303674032FM"><span style="">This is known to many hubs</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1087780155FM"><span style="">... most votings</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_585981486FM"><span style="">A "vote" is a positive karma</span></li><li class="basic" style="" id="FMFreemind_Link_616335445FM"><span style="">Also known to many hubs</span></li></ul></li></ul></li><li class="basic" style="" id="FMFreemind_Link_341438028FM"><span style="">The "election" should take place within a specific timeout</span></li><li class="basic" style="" id="FMFreemind_Link_515853064FM"><span style="">If no election is happening the hub with most connections got elected</span></li></ul></li></ul></li><li class="col" style="" id="FMFreemind_Link_694830716FM"><span style="">If one of the bootstrap-nodes is up</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1701914366FM"><span style="">The elected hubs notifies a some of it's fellow hubs that the bootstrap-node is back</span></li><li class="basic" style="" id="FMFreemind_Link_561336762FM"><span style="">The elected hub becomes a regular hub and notifies other hubs on connection attempts</span></li></ul></li><li class="col" style="" id="FMFreemind_Link_1745751398FM"><span style="">Disadvantages:</span><ul class="subexp"><li class="col" style="" id="FMFreemind_Link_1189063074FM"><span style="">A new hub with only knowlege about the bootstrap-nodes may not be able to connect to the hubs</span><ul class="subexp"><li class="basic" style="" id="FMFreemind_Link_1581407665FM"><span style="">Additional bootstrap-nodes on other server and/or continent may help here</span></li></ul></li></ul></li></ul></li></ul></li></ul></div></body></html>
\ No newline at end of file
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/Mail.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/Mail.png
new file mode 100644 (file)
index 0000000..beea00e
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/Mail.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/attach.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/attach.png
new file mode 100644 (file)
index 0000000..b03a77e
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/attach.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/back.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/back.png
new file mode 100644 (file)
index 0000000..5a86cd8
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/back.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/bell.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/bell.png
new file mode 100644 (file)
index 0000000..8afab9d
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/bell.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/bookmark.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/bookmark.png
new file mode 100644 (file)
index 0000000..67f1832
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/bookmark.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/button_cancel.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/button_cancel.png
new file mode 100644 (file)
index 0000000..a9c624a
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/button_cancel.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/button_ok.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/button_ok.png
new file mode 100644 (file)
index 0000000..9a817fd
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/button_ok.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/clanbomber.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/clanbomber.png
new file mode 100644 (file)
index 0000000..16679ba
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/clanbomber.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/desktop_new.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/desktop_new.png
new file mode 100644 (file)
index 0000000..366368f
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/desktop_new.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/flag.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/flag.png
new file mode 100644 (file)
index 0000000..e9defd1
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/flag.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/forward.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/forward.png
new file mode 100644 (file)
index 0000000..b80d28a
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/forward.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-1.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-1.png
new file mode 100644 (file)
index 0000000..80a6c66
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-1.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-2.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-2.png
new file mode 100644 (file)
index 0000000..bc26aef
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-2.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-3.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-3.png
new file mode 100644 (file)
index 0000000..e419464
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-3.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-4.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-4.png
new file mode 100644 (file)
index 0000000..d82ee2f
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-4.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-5.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-5.png
new file mode 100644 (file)
index 0000000..2860401
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-5.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-6.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-6.png
new file mode 100644 (file)
index 0000000..10ef02a
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-6.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-7.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-7.png
new file mode 100644 (file)
index 0000000..e55f3ff
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/full-7.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/gohome.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/gohome.png
new file mode 100644 (file)
index 0000000..17bf02f
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/gohome.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/help.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/help.png
new file mode 100644 (file)
index 0000000..d6391a2
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/help.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/idea.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/idea.png
new file mode 100644 (file)
index 0000000..8d18b02
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/idea.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/kaddressbook.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/kaddressbook.png
new file mode 100644 (file)
index 0000000..8bfe4ae
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/kaddressbook.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/knotify.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/knotify.png
new file mode 100644 (file)
index 0000000..0104e72
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/knotify.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/korn.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/korn.png
new file mode 100644 (file)
index 0000000..a4e9107
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/korn.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/ksmiletris.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/ksmiletris.png
new file mode 100644 (file)
index 0000000..b95f903
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/ksmiletris.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/licq.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/licq.png
new file mode 100644 (file)
index 0000000..34f8cce
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/licq.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/messagebox_warning.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/messagebox_warning.png
new file mode 100644 (file)
index 0000000..afc9c9c
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/messagebox_warning.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/password.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/password.png
new file mode 100644 (file)
index 0000000..5e86bbb
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/password.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/pencil.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/pencil.png
new file mode 100644 (file)
index 0000000..575dd32
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/pencil.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/penguin.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/penguin.png
new file mode 100644 (file)
index 0000000..0f61ec5
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/penguin.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/stop.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/stop.png
new file mode 100644 (file)
index 0000000..981c4cf
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/stop.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/wizard.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/wizard.png
new file mode 100644 (file)
index 0000000..93a1d91
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/wizard.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/icons/xmag.png b/mindmaps/Generic Object Sharing Protocol.html_files/icons/xmag.png
new file mode 100644 (file)
index 0000000..32a4a15
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/icons/xmag.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/marktree.js b/mindmaps/Generic Object Sharing Protocol.html_files/marktree.js
new file mode 100644 (file)
index 0000000..10bba60
--- /dev/null
@@ -0,0 +1,475 @@
+/* MarkTree JavaScript code\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version\r
+ * 1.1 (the "License"); you may not use this file except in compliance with\r
+ * the License. You may obtain a copy of the License at\r
+ * http://www.mozilla.org/MPL/\r
+ *\r
+ * Software distributed under the License is distributed on an "AS IS" basis,\r
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
+ * for the specific language governing rights and limitations under the\r
+ * License.\r
+ * \r
+ * Miika Nurminen, 12.7.2004.\r
+ */\r
+\r
+/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */\r
+function get_keycode(evt) {\r
+  // IE\r
+    code = document.layers ? evt.which\r
+           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!\r
+           : evt.keyCode;\r
+\r
+  if (code==0) \r
+    code=evt.which; // for NS\r
+  return code;\r
+}\r
+\r
+var lastnode=null;\r
+var listnodes = null;\r
+var list_index=1;\r
+var lastnodetype=''; // determines if node is a link, input or text;\r
+\r
+// up, left, down, right, keypress codes\r
+//ijkl\r
+//var keys = new Array(105,106,107,108);\r
+//num arrows\r
+//var keys = new Array(56,52,50,54);\r
+//wasd\r
+// var press2 = new Array(119,97,115,100);\r
+ var press = new Array(47,45,42,43);\r
+\r
+// keydown codes\r
+  //  var keys2=new Array(87,65,83,68);\r
+  var keys= new Array(38,37,40,39);\r
+\r
+  // keyset 1 = keydown, otherwise press\r
+function checkup(keyset,n) {\r
+  if (keyset==1) return (n==keys[0]);\r
+  return ((n==press[0]) /*|| (n==press2[0])*/)\r
+}\r
+\r
+function checkdn(keyset,n) {\r
+  if (keyset==1) return (n==keys[2]);\r
+  return ((n==press[2]) /*|| (n==press2[2])*/)\r
+}\r
+\r
+function checkl(keyset,n) {\r
+  if (keyset==1) return (n==keys[1]);\r
+  return ((n==press[1]) /*|| (n==press2[1])*/)\r
+}\r
+\r
+function checkr(keyset,n) {\r
+  if (keyset==1) return (n==keys[3]);\r
+  return ((n==press[3]) /*|| (n==press2[3])*/)\r
+}\r
+\r
+\r
+\r
+\r
+\r
+function is_exp(n) {\r
+  if (n==null) return false;\r
+  return ((n.className=='exp') || (n.className=='exp_active'));\r
+}\r
+\r
+function is_col(n) {\r
+  if (n==null) return false;\r
+  return ((n.className=='col') || (n.className=='col_active'));\r
+}\r
+\r
+function is_basic(n) {\r
+  if (n==null) return false;\r
+  return ((n.className=='basic') || (n.className=='basic_active'));\r
+}\r
+\r
+\r
+\r
+/* returns i>=0 if true */\r
+function is_active(node) {\r
+  if (node.className==null) return false\r
+  return node.className.indexOf('_active');\r
+}\r
+\r
+function toggle_class(node) {\r
+  if ((node==null) || (node.className==null)) return;\r
+  str=node.className;\r
+  result="";\r
+  i = str.indexOf('_active');\r
+  if (i>0)\r
+    result= str.substr(0,i);\r
+  else\r
+    result= str+"_active";\r
+  node.className=result; \r
+  return node;\r
+}\r
+\r
+function activate(node) {\r
+  node.style.backgroundColor='#eeeeff';\r
+}\r
+\r
+function deactivate(node) {\r
+   node.style.backgroundColor='#ffffff';\r
+}\r
+\r
+function is_list_node(n) {\r
+  if (n==null) return false;\r
+  if (n.className==null) return false;\r
+  if ( (is_exp(n)) || \r
+       (is_col(n)) ||\r
+       (is_basic(n)) )\r
+   return true; else return false;\r
+}\r
+\r
+\r
+function get_href(n) {\r
+  alist=n.attributes;\r
+  if (alist!=null) {\r
+    hr = alist.getNamedItem('href');\r
+    if (hr!=null) return hr.nodeValue;\r
+  }\r
+  if (n.childNodes.length==0) return '';\r
+  for (var i=0; i<n.childNodes.length; i++) {\r
+    s = get_href(n.childNodes[i]);\r
+    if (s!='') return s;\r
+  }\r
+  return '';\r
+}\r
+\r
+function get_link(n) {\r
+  if (n==null) return null;\r
+  if (n.style==null) return null;\r
+\r
+ // disabling uncontrolled recursion to prevent error messages on IE\r
+ // when trying to focus to invisible links (readonly mode)\r
+//    alert(n.nodeName+' '+n.className);\r
+  if ((n.nodeName=='UL') && (n.className=='sub')) return null;\r
+\r
+  if (n.nodeName=='A') return n;\r
+  if (n.childNodes.length==0) return null;\r
+  for (var i=0; i<n.childNodes.length; i++) {\r
+    s = get_link(n.childNodes[i]);\r
+    if (s!=null) return s;\r
+  }\r
+  return null;\r
+}\r
+\r
+function set_lastnode(n) {\r
+/*var d = new Date();\r
+var t_mil = d.getMilliseconds();*/\r
+// testattu nopeuksia explorerilla, ei merkittäviä eroja\r
+  if (lastnode==n) return; \r
+/*  deactivate(lastnode)\r
+  lastnode=n;\r
+  activate(lastnode);*/\r
+\r
+  if (is_active(lastnode)>=0)\r
+    toggle_class(lastnode);\r
+  lastnode=n;\r
+  if (!(is_active(lastnode)>=0))\r
+    toggle_class(lastnode);\r
+\r
+\r
+/*var d2 = new Date();\r
+var t_mil2 = d2.getMilliseconds();\r
+  window.alert(t_mil2-t_mil);*/\r
+}\r
+\r
+function next_list_node() {\r
+  tempIndex = list_index;\r
+  while (tempIndex<listnodes.length-1) {\r
+    tempIndex++;\r
+    var x = listnodes[tempIndex];\r
+    if (is_list_node(x)) {\r
+      list_index=tempIndex;\r
+      return;\r
+    }\r
+  }\r
+}\r
+\r
+function prev_list_node() {\r
+  tempIndex = list_index;\r
+  while (tempIndex>0) {\r
+    tempIndex--;\r
+    var x = listnodes[tempIndex];\r
+    if (is_list_node(x)) {\r
+      list_index=tempIndex;\r
+      return;\r
+    }\r
+  }\r
+}\r
+\r
+\r
+\r
+function getsub (li) {\r
+  if (li.childNodes.length==0) return null;\r
+  for (var c = 0; c < li.childNodes.length; c++)\r
+    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) \r
+      return li.childNodes[c];\r
+}\r
+\r
+function find_listnode_recursive (li) {\r
+  if (is_list_node(li)) return li; \r
+  if (li.childNodes.length==0) return null;\r
+  result=null;\r
+  for (var c = 0; c < li.childNodes.length; c++) {\r
+    result=find_listnode_recursive(li.childNodes[c]);\r
+    if (result!=null) return result;\r
+  }\r
+  return null;\r
+}\r
+\r
+function next_child_listnode(li) {\r
+  var result=null;\r
+  for (var i=0; i<li.childNodes.length; i++) {\r
+    result=find_listnode_recursive(li.childNodes[i]);\r
+    if (result!=null) return result;\r
+  }\r
+  return null;  \r
+}\r
+\r
+function next_actual_sibling_listnode(li) {\r
+  if (li==null) return null;\r
+  var temp=li;\r
+  while (1) { \r
+    var n = temp.nextSibling;\r
+    if (n==null) {\r
+      n=parent_listnode(temp);\r
+      return next_actual_sibling_listnode(n);\r
+    }\r
+    if (is_list_node(n)) return n;\r
+    temp=n;\r
+  }\r
+}\r
+\r
+function next_sibling_listnode(li) {\r
+if (li==null) return null; \r
+ var result=null;\r
+  var temp=li;\r
+  if (is_col(temp)) return next_child_listnode(temp);\r
+  while (1) { \r
+    var n = temp.nextSibling;\r
+    if (n==null) {\r
+      n=parent_listnode(temp);\r
+      return next_actual_sibling_listnode(n);\r
+    }\r
+    if (is_list_node(n)) return n;\r
+    temp=n;\r
+  }\r
+}\r
+\r
+function last_sibling_listnode(li) {\r
+  if (li==null) return null;\r
+  var temp=li;\r
+  var last=null;\r
+  while(1) {\r
+    var n = temp.nextSibling;\r
+    if (is_list_node(temp)) \r
+      last = temp;\r
+    if (n==null) {\r
+      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));\r
+      else return last;\r
+    }\r
+    temp = n;\r
+  }\r
+}\r
+\r
+function prev_sibling_listnode(li) { \r
+  if (li==null) return null;\r
+  var temp=li;\r
+  var n = null;\r
+  while (1) { \r
+    n = temp.previousSibling;\r
+    if (n==null) {\r
+      return parent_listnode(li);\r
+    }\r
+    if (is_list_node(n)) {\r
+      if (is_col(n)) { \r
+        return last_sibling_listnode(next_child_listnode(n));\r
+      }\r
+      else {\r
+        return n;\r
+      }\r
+    }\r
+    temp=n;\r
+  }\r
+}\r
+\r
+\r
+function parent_listnode(li) {\r
+  // added 12.7.2004 to prevent IE error when readonly mode==true\r
+  if (li==null) return null;\r
+  n=li;\r
+  while (1) {\r
+    n=n.parentNode;\r
+    if (n==null) return null;\r
+    if (is_list_node(n)) return n;\r
+  }\r
+}\r
+\r
+function getVisibleParents(id) {\r
+  var n = document.getElementById(id);\r
+  while(1) {\r
+    expand(n);\r
+    n = parent_listnode(n);\r
+    if (n==null) return;\r
+  }\r
+}\r
+\r
+function onClickHandler (evt) {\r
+if (lastnode==null) \r
+{\r
+listnodes = document.getElementsByTagName('li');\r
+lastnode=listnodes[1];\r
+temp=listnodes[1];\r
+}\r
+\r
+\r
+  var target = evt ? evt.target : event.srcElement;\r
+  if (!is_list_node(target)) return;\r
+  toggle(target);\r
+  set_lastnode(target);\r
+}\r
+\r
+\r
+function expand(node) {\r
+    if (!is_exp(node)) return;\r
+    if (node.className=='exp_active') \r
+      node.className='col_active';\r
+    else \r
+        node.className='col';\r
+    setSubClass(node,'subexp');\r
+    //    getsub(node).className='subexp';\r
+}\r
+\r
+function collapse(node) {\r
+  if (!is_col(node)) return;\r
+  \r
+if (node.className=='col_active')\r
+    node.className='exp_active'\r
+  else \r
+    node.className='exp';\r
+\r
+ setSubClass(node,'sub');\r
+//  getsub(node).className='sub';\r
+\r
+}\r
+\r
+function setSubClass(node,name) {\r
+  sub = getsub(node);\r
+  if (sub==null) return;\r
+  sub.className=name;  \r
+}\r
+\r
+function toggle(target) {\r
+  if (!is_list_node(target)) return;\r
+    if (is_col(target)) {\r
+      target.className='exp';\r
+      setSubClass(target,'sub');\r
+      //      getsub(target).className='sub';\r
+    }\r
+    else if (is_exp(target)) {\r
+      target.className='col';\r
+      setSubClass(target,'subexp');\r
+      //      getsub(target).className='subexp';\r
+    }\r
\r
+}\r
+\r
+function expandAll(node) {\r
+    if (node.className=='exp') {\r
+        node.className='col';\r
+        setSubClass(node,'subexp');\r
+//        getsub(node).className='subexp';\r
+    }\r
+    var i;\r
+    if (node.childNodes!=null) \r
+//    if (node.hasChildNodes()) \r
+        for ( i = 0; i<node.childNodes.length; i++)\r
+            expandAll(node.childNodes[i]);\r
+}\r
+\r
+function collapseAll(node) {\r
+    if  (node.className=='col') {\r
+        node.className='exp';\r
+        setSubClass(node,'sub');\r
+//        getsub(node).className='sub';\r
+    }\r
+    var i;        \r
+    if (node.childNodes!=null) \r
+// for opera   if (node.hasChildNodes()) \r
+        for ( i = 0; i<node.childNodes.length; i++)\r
+            collapseAll(node.childNodes[i]);\r
+}\r
+\r
+\r
+\r
+function unFocus(node) {\r
+     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).\r
+     // tested with mozilla 1.7, 12.7.2004. /mn (\r
+      intemp=parent_listnode(node);  \r
+      a = get_link(intemp);     // added 6.4. to get keyboard working with\r
+      // moved before collapse to prevent an error message with IE when readonly==true      \r
+      if (a!=null) a.blur(); // netscape after collapsing a focused node\r
+      return intemp;\r
+}\r
+\r
+// mode: 0==keypress, 1==keyup\r
+function keyfunc(evt,mode) {\r
+ var c = get_keycode(evt);\r
+ var temp = null;\r
+ var a = null;\r
+\r
+  if (lastnode==null) {\r
+    listnodes = document.getElementsByTagName('li');\r
+    lastnode=listnodes[1];\r
+    temp=listnodes[1];\r
+  }\r
+\r
+  //window.alert(c);\r
+  if (checkup(mode,c)) { // i \r
+   temp=prev_sibling_listnode(lastnode);\r
+  }\r
+  else if (checkdn(mode,c)) { // k\r
+    temp=next_sibling_listnode(lastnode);\r
+  }\r
+  else if (checkr(mode,c)) { // l\r
+    expand(lastnode);\r
+    //  temp=next_child_listnode(lastnode);\r
+    // if (temp==null) {\r
+      a = get_link(lastnode);\r
+        if (a!=null) a.focus(); else self.focus(); \r
+      //}\r
+  }\r
+  else if (checkl(mode,c)) { // j\r
+    if (is_col(lastnode)) {\r
+      unFocus(lastnode);\r
+      collapse(lastnode);\r
+    }\r
+    else {\r
+      temp=unFocus(lastnode);\r
+      collapse(temp);\r
+    }\r
+   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)\r
+  }\r
+  else return;\r
+  if (temp!=null) set_lastnode(temp);\r
+\r
+  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');\r
+  return true;\r
+}\r
+\r
+\r
+function keytest (evt) {\r
+  return keyfunc(evt,1);\r
+};\r
+\r
+\r
+function presstest (evt) {\r
+  return keyfunc(evt,0);\r
+};\r
+\r
+\r
+  document.onclick = onClickHandler;\r
+  document.onkeypress = presstest;\r
+  document.onkeyup = keytest;\r
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/minus.png b/mindmaps/Generic Object Sharing Protocol.html_files/minus.png
new file mode 100644 (file)
index 0000000..4956850
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/minus.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/plus.png b/mindmaps/Generic Object Sharing Protocol.html_files/plus.png
new file mode 100644 (file)
index 0000000..e09ee95
Binary files /dev/null and b/mindmaps/Generic Object Sharing Protocol.html_files/plus.png differ
diff --git a/mindmaps/Generic Object Sharing Protocol.html_files/treestyles.css b/mindmaps/Generic Object Sharing Protocol.html_files/treestyles.css
new file mode 100644 (file)
index 0000000..aecb6e1
--- /dev/null
@@ -0,0 +1,161 @@
+\r
+body {\r
+       background-color: #eeeeee;\r
+       color: #000000;\r
+       font-family:sans-serif;\r
+}\r
+\r
+:link { color: #0000ff; text-decoration:none;}\r
+:visited { color: #6666ff; text-decoration:none; }\r
+a:active { color: #0000ff; text-decoration:none;}\r
+a:hover {color: #0000ff; text-decoration:underline; }\r
+\r
+div.basetext {\r
+    background-color:#ffffff;\r
+        margin-top:11px;\r
+        margin-bottom:11px;\r
+       margin-left:1%;\r
+       margin-right:1%;\r
+       padding-top:11px;\r
+       padding-left:11px;\r
+       padding-right:11px;\r
+       padding-bottom:11px;\r
+       text-align:left;\r
+       font-weight:normal;\r
+  border-width:thin;\r
+  border-style:solid;\r
+  border-color:#dddddd;\r
+}\r
+\r
+div.basetop {\r
+  position: fixed;\r
+  width:auto;\r
+  height:auto;\r
+  right:0em;\r
+  top:0em;\r
+  left:auto; \r
+  top:0;\r
+    background-color:#ffffff;\r
+        margin-top:0;\r
+        margin-bottom:0;\r
+       margin-left:1%;\r
+       margin-right:1%;\r
+       padding-top:2px;\r
+       padding-left:11px;\r
+       padding-right:11px;\r
+       padding-bottom:2px;\r
+       text-align:left;\r
+       font-weight:normal;\r
+text-align:right;\r
+  border-width:thin;\r
+  border-style:solid;\r
+  border-color:#dddddd;\r
+}\r
+\r
+h1 {\r
+    text-align:center;\r
+}\r
+\r
+span.h2 {\r
+    font-family:sans-serif;\r
+    font-weight:bold;\r
+}\r
+\r
+div.year {\r
+       margin-right:2%;\r
+       background-color:#eeeeee;\r
+}\r
+\r
+div.form {\r
+}\r
+\r
+span.cpt {\r
+       color:#005500;\r
+       font-weight:bold;\r
+}\r
+\r
+span.cm {\r
+       color:#666666;\r
+}\r
+\r
+.fl {\r
+       color:#0000FF;  \r
+       font-style:italic;\r
+}\r
+\r
+ul {\r
+       margin-top:1px;\r
+        margin-bottom:1px;\r
+       margin-left:0px;\r
+       padding-left:3%;\r
+}\r
+\r
+li {\r
+       list-style:outside;\r
+  margin-top:10px;   \r
+  margin-bottom:10px;\r
+}\r
+\r
+ul li {\r
+       list-style:square;\r
+       font-family:sans-serif;\r
+       font-weight:normal;\r
+}\r
+\r
+li.basic {\r
+       list-style:square;\r
+       list-style-image:none;\r
+  margin-top:2px;\r
+  margin-bottom:2px;\r
+}\r
+\r
+span.links {\r
+}\r
+\r
+\r
+\r
+\r
+.sub { display: none; }\r
+.subexp {display: block; }\r
+.sub { display: none; } \r
+\r
+.subexp {display: block; } \r
+\r
+li.exp {\r
+  list-style-image:url("plus.png");\r
+  margin-top:10px;\r
+  margin-bottom:10px;\r
+  cursor:pointer;\r
+}\r
+\r
+li.col {\r
+  list-style-image:url("minus.png");\r
+  margin-top:10px;\r
+  margin-bottom:10px;\r
+  cursor:pointer;\r
+}\r
+\r
+li.exp_active {\r
+  list-style-image:url("plus.png");\r
+  margin-top:10px;  \r
+  margin-bottom:10px;\r
+  background-color:#eeeeff;\r
+  cursor:pointer;\r
+}\r
+\r
+li.col_active {\r
+  list-style-image:url("minus.png");\r
+  margin-top:10px;\r
+  margin-bottom:10px;\r
+  background-color:#eeeeff;\r
+  cursor:pointer; /* if not included, bullets are not shown right in moz*/\r
+}\r
+\r
+\r
+li.basic_active {\r
+  list-style:square;\r
+  list-style-image:none;\r
+  background-color:#eeeeff;\r
+  margin-top:2px;\r
+  margin-bottom:2px;\r
+}\r
index 4fbd294fbd0908d44e12bb36102ef96602f659ef..7f814e92a8a29038065846aa0e0fff8257b81d1b 100644 (file)
@@ -2,7 +2,7 @@
 <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
 <node CREATED="1236122299751" ID="Freemind_Link_1069566441" MODIFIED="1236122354932" TEXT="Generic Object Sharing Protocol">
 <font BOLD="true" NAME="Dialog" SIZE="18"/>
-<node CREATED="1236123417491" FOLDED="true" ID="Freemind_Link_1660540085" MODIFIED="1236123438477" POSITION="right" TEXT="Hub Identification">
+<node CREATED="1236123417491" FOLDED="true" ID="Freemind_Link_1660540085" MODIFIED="1236819299996" POSITION="right" TEXT="Hub Identification">
 <font BOLD="true" NAME="Dialog" SIZE="14"/>
 <node CREATED="1236124236611" ID="Freemind_Link_780558731" MODIFIED="1236124257084" TEXT="Every hub generates an id string by random">
 <node CREATED="1236124483890" ID="Freemind_Link_1498010716" MODIFIED="1236124589043" TEXT="This is the Hub-Id (Hub Identifier)"/>
@@ -47,7 +47,7 @@
 <node CREATED="1236125114584" ID="Freemind_Link_1617168424" MODIFIED="1236125131976" TEXT="Unregistered hubs does not receive negative votings"/>
 </node>
 </node>
-<node CREATED="1236126779348" ID="Freemind_Link_1339348415" MODIFIED="1236126880977" POSITION="right" TEXT="Bootstrapping">
+<node CREATED="1236126779348" FOLDED="true" ID="Freemind_Link_1339348415" MODIFIED="1236819299995" POSITION="right" TEXT="Bootstrapping">
 <font BOLD="true" NAME="Dialog" SIZE="14"/>
 <node CREATED="1236126838827" ID="Freemind_Link_453620216" MODIFIED="1236126858610" TEXT="At least one, better 3 to 4, master-nodes are required">
 <node CREATED="1236126861889" ID="Freemind_Link_265648584" MODIFIED="1236126877833" TEXT="Aka. &quot;Bootstrap-Nodes&quot;"/>
@@ -75,7 +75,7 @@
 </node>
 </node>
 </node>
-<node CREATED="1236122378771" FOLDED="true" ID="_" MODIFIED="1236122428484" POSITION="right" TEXT="Karma">
+<node CREATED="1236122378771" FOLDED="true" ID="_" MODIFIED="1236819299994" POSITION="right" TEXT="Karma">
 <font BOLD="true" NAME="Dialog" SIZE="14"/>
 <node CREATED="1236122492566" ID="Freemind_Link_1190748575" MODIFIED="1236122514559" TEXT="Karma is given for validating entries in the DHT">
 <node CREATED="1236122431646" ID="Freemind_Link_29494292" MODIFIED="1236122473199" TEXT="Last activity in near past">
 </node>
 </node>
 </node>
+<node CREATED="1236818932032" FOLDED="true" ID="Freemind_Link_1204819150" MODIFIED="1236819299997" POSITION="left" TEXT="Object Types">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236818952579" ID="Freemind_Link_1961919735" MODIFIED="1236818969501" TEXT="New object types are only addable by updating the software"/>
+<node CREATED="1236818987796" ID="Freemind_Link_188591190" MODIFIED="1236818998981" TEXT="It also possible by 3rd-party">
+<node CREATED="1236819000063" ID="Freemind_Link_385578906" MODIFIED="1236819012704" TEXT="Must be known by master/bootstrap-nodes"/>
+</node>
+<node CREATED="1236819026050" ID="Freemind_Link_1667260565" MODIFIED="1236819039189" TEXT="Outdated object types are marked &quot;deprecated&quot; for a longer time">
+<node CREATED="1236819040263" ID="Freemind_Link_1936301650" MODIFIED="1236819053202" TEXT="Master-nodes may accept or reject them"/>
+<node CREATED="1236819057430" ID="Freemind_Link_505959038" MODIFIED="1236819072713" TEXT="A &quot;deprecation message&quot; is always being sent"/>
+<node CREATED="1236819073435" ID="Freemind_Link_1001362763" MODIFIED="1236819086883" TEXT="A note of a required update can optionally be added"/>
+</node>
+<node CREATED="1236819096719" ID="Freemind_Link_259217829" MODIFIED="1236819111770" TEXT="After deprecation time they are treated as &quot;unknown&quot;"/>
+<node CREATED="1236819117510" ID="Freemind_Link_1228871005" MODIFIED="1236819187199" TEXT="Other hubs should ask bootstrap-nodes">
+<node CREATED="1236819188392" ID="Freemind_Link_887331476" MODIFIED="1236819200697" TEXT="This compensate errors made by master-nodes"/>
+<node CREATED="1236819213718" ID="Freemind_Link_1450229897" MODIFIED="1236819243856" TEXT="Wrongly deprecated object types by the master-node result in bad karma by the bootstrap-node"/>
+</node>
+</node>
+<node CREATED="1236819279117" FOLDED="true" ID="Freemind_Link_831929021" MODIFIED="1236819299998" POSITION="left" TEXT="Update Messages">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236819311945" ID="Freemind_Link_71881649" MODIFIED="1236819334898" TEXT="Will only be broadcasted from bootstrap- to master- and list-nodes"/>
+<node CREATED="1236819339152" ID="Freemind_Link_774046685" MODIFIED="1236819364243" TEXT="No hub will receive update messages due to heavy network load">
+<node CREATED="1236819365454" ID="Freemind_Link_1204404067" MODIFIED="1236819386873" TEXT="Maybe only &quot;good&quot; hubs should receive this?">
+<icon BUILTIN="xmag"/>
+<icon BUILTIN="help"/>
+</node>
+</node>
+<node CREATED="1236819395918" ID="Freemind_Link_1584525818" MODIFIED="1236819442284" TEXT="Contains update notes and importance level"/>
+</node>
+<node CREATED="1236819472321" FOLDED="true" ID="Freemind_Link_168475853" MODIFIED="1236819487121" POSITION="left" TEXT="&quot;Client&quot; Connections">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236819488308" ID="Freemind_Link_1154203316" MODIFIED="1236819533272" TEXT="Should be interpreted as &quot;application software&quot;">
+<icon BUILTIN="bell"/>
+</node>
+<node CREATED="1236819549590" ID="Freemind_Link_1741675827" MODIFIED="1236819572277" TEXT="Clients should also generate a &quot;client id&quot;">
+<node CREATED="1236819572768" ID="Freemind_Link_518254369" MODIFIED="1236819577298" TEXT="Both id and sid"/>
+</node>
+<node CREATED="1236819583899" ID="Freemind_Link_815708604" MODIFIED="1236819600627" TEXT="Will also connect first to bootstrap-nodes">
+<node CREATED="1236819601271" ID="Freemind_Link_934296740" MODIFIED="1236819625910" TEXT="Ask for a hub-list as well"/>
+</node>
+<node CREATED="1236819612157" ID="Freemind_Link_480673349" MODIFIED="1236819634577" TEXT="Do also receive karma from hubs"/>
+<node CREATED="1236819638653" ID="Freemind_Link_692612491" MODIFIED="1236819657034" TEXT="Dynamic IPs are also accepted and therefore must be registered"/>
+</node>
+<node CREATED="1236819677106" ID="Freemind_Link_1445979240" MODIFIED="1236819691062" POSITION="left" TEXT="Client&lt;-&gt;Hub Communication">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+</node>
+<node CREATED="1236804847687" FOLDED="true" ID="Freemind_Link_1372827895" MODIFIED="1236819299996" POSITION="right" TEXT="Fault Tolerance / Reliability">
+<font BOLD="true" NAME="Dialog" SIZE="14"/>
+<node CREATED="1236805031745" ID="Freemind_Link_28699698" MODIFIED="1236805057203" TEXT="After X failed connection attempts a hub got removed">
+<node CREATED="1236805060886" ID="Freemind_Link_1795377892" MODIFIED="1236805073614" TEXT="Other hubs report this to the master-node"/>
+<node CREATED="1236805074337" ID="Freemind_Link_1595372369" MODIFIED="1236805094304" TEXT="The master-node probes the failed hub and removes it"/>
+</node>
+<node CREATED="1236805095936" ID="Freemind_Link_468909888" MODIFIED="1236805105212" TEXT="Failed list-node">
+<node CREATED="1236805111066" ID="Freemind_Link_192209809" MODIFIED="1236805126866" TEXT="Hubs are reporting it to the master-node"/>
+<node CREATED="1236805135129" ID="Freemind_Link_933570791" MODIFIED="1236805143745" TEXT="The master-node probes the failed list-node and removes it"/>
+</node>
+<node CREATED="1236805147958" ID="Freemind_Link_1309357086" MODIFIED="1236805152648" TEXT="Failed master-node">
+<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">
+<node CREATED="1236805194058" ID="Freemind_Link_1324885722" MODIFIED="1236805230236" TEXT="This takeover should not be entirely and should be defined">
+<icon BUILTIN="messagebox_warning"/>
+<icon BUILTIN="desktop_new"/>
+</node>
+</node>
+<node CREATED="1236805256862" ID="Freemind_Link_489546245" MODIFIED="1236805284415" TEXT="If there is no list-node, hubs look for an active master-node">
+<node CREATED="1236805285629" ID="Freemind_Link_496844314" MODIFIED="1236805295805" TEXT="They report the failed master-node to it"/>
+</node>
+<node CREATED="1236805300701" ID="Freemind_Link_1831877789" MODIFIED="1236805333472" TEXT="If additionally no master-node is up, a hub will be elected as new master-node">
+<node CREATED="1236805370471" ID="Freemind_Link_1473765417" MODIFIED="1236805388795" TEXT="Doing so, all hubs are identifying the hub with...">
+<node CREATED="1236805389203" ID="Freemind_Link_1849074808" MODIFIED="1236805408420" TEXT="... the best karma">
+<node CREATED="1236805408843" ID="Freemind_Link_1303674032" MODIFIED="1236805414368" TEXT="This is known to many hubs"/>
+</node>
+<node CREATED="1236805415695" ID="Freemind_Link_1087780155" MODIFIED="1236805439758" TEXT="... most votings">
+<node CREATED="1236805440417" ID="Freemind_Link_585981486" MODIFIED="1236805465354" TEXT="A &quot;vote&quot; is a positive karma"/>
+<node CREATED="1236805470049" ID="Freemind_Link_616335445" MODIFIED="1236805478210" TEXT="Also known to many hubs"/>
+</node>
+</node>
+<node CREATED="1236805485261" ID="Freemind_Link_341438028" MODIFIED="1236805508476" TEXT="The &quot;election&quot; should take place within a specific timeout"/>
+<node CREATED="1236805519338" ID="Freemind_Link_515853064" MODIFIED="1236805539978" TEXT="If no election is happening the hub with most connections got elected"/>
+</node>
+</node>
+<node CREATED="1236805556971" ID="Freemind_Link_694830716" MODIFIED="1236805567605" TEXT="If one of the bootstrap-nodes is up">
+<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"/>
+<node CREATED="1236805612004" ID="Freemind_Link_561336762" MODIFIED="1236805631225" TEXT="The elected hub becomes a regular hub and notifies other hubs on connection attempts"/>
+</node>
+<node CREATED="1236805649317" ID="Freemind_Link_1745751398" MODIFIED="1236805654363" TEXT="Disadvantages:">
+<node CREATED="1236805655355" ID="Freemind_Link_1189063074" MODIFIED="1236805688061" TEXT="A new hub with only knowlege about the bootstrap-nodes may not be able to connect to the hubs">
+<node CREATED="1236805691077" ID="Freemind_Link_1581407665" MODIFIED="1236805728068" TEXT="Additional bootstrap-nodes on other server and/or continent may help here"/>
+</node>
+</node>
+</node>
 </node>
 </map>