]> git.mxchange.org Git - hub-docs.git/commitdiff
Cleared messages (they will return), added message layer design for bootstrapping
authorRoland Häder <roland@mxchange.org>
Tue, 31 Jul 2012 18:04:01 +0000 (18:04 +0000)
committerRoland Häder <roland@mxchange.org>
Tue, 31 Jul 2012 18:04:01 +0000 (18:04 +0000)
.gitattributes
misc/possible_hub_states.txt
protocol-drafts/message-layer/bootstrapping.odg [new file with mode: 0644]
protocol-drafts/protocol-ideas.txt

index 9376b888ca682520a40ab6bcddb92e164579c548..9b23fd288556928159c600b5ad15e005368565ea 100644 (file)
@@ -159,4 +159,5 @@ mindmaps/Peer-State[!!-~]Rating.mm -text
 misc/possible_hub_states.txt -text svneol=unset#text/plain
 protocol-drafts/Generic[!!-~]Object[!!-~]Sharing[!!-~]Prototocol[!!-~]0.0.1.odt -text
 protocol-drafts/Generic[!!-~]Object[!!-~]Sharing[!!-~]Prototocol[!!-~]0.0.1.pdf -text
+protocol-drafts/message-layer/bootstrapping.odg -text
 protocol-drafts/protocol-ideas.txt -text svneol=unset#text/plain
index f8b29c2ce018fa66d72ebc814449b6430cf4a3d4..9aec898eeb619218b48661c20c9a44347705e327 100644 (file)
-Possible States For A Hub Connection
-====================================
-
-This is a brief summary of possible states a hub connection may be setted.
-These ideas should later be implemented in a XML file with e.g. a StateXmlParser
-class with a XmlFileReader as a data source.
-
--------------------------------------------------------------------------------
- Initial state | Reason of change                             | New state
--------------------------------------------------------------------------------
- New peer      | Appears as a simple connection               | Connected
- Connected     | Has dropped the connection                   | Disconnected
- Connected     | Does not do anything within a timeout        | Timed out
- Connected     | Tries to send some objects with auth enabled | Message "AUTH"
- Disconnected  | Is purged from the connection list           | Removed
- Timed out     | Is being pinged                              | Pinged
- Pinged        | Does not response on a ping                  | No response
- Pinged        | Does reply slowly on a ping                  | Slowed down
- Pinged        | Does reply fast on a ping                    | <prev. state>
- No response   | Does still not response on X pings           | Lost connection
- No response   | Does reply on a ping                         | Slowed down
- Slowed down   | Does not response on a ping                  | No response
- Slowed down   | Does still response slow on X extra pings    | Karma lose
- Slowed down   | Does reply faster on a ping                  | <prev. state>
- Lost connect. | Is maybe disconnected/crashed/etc.           | Disconnected
- Karma lose    | Has lost some karma                          | <prev. state>
- Add karma     | Has gained some karma                        | <prev. state>
--------------------------------------------------------------------------------
- Observed      | Did not do any annormal activity within time | Removed from O-List
- Observed      | Is being observed for further annormal act.  | <prev. state>
- Removed O-L   | Is being removed from observing for ann. ac. | <prev. state>
--------------------------------------------------------------------------------
- <bad state>   | Does not response within timeout             | Message "BANNED"
- <any state>   | Sends unexpected network packets             | Message "PACKET"
- <any state>   | Sends or replies with unknown message        | Message "UNKNOWN"
- "PACKET"      | Still sends unexpected network packets       | Karma lose
- "PACKET"      | Resends valid network package                | <prev. state>
- "PACKET"+Kar. | Still sends unexpected network packets       | Message "BANNED"
- "PACKET"+Kar. | Resends valid network package                | <prev. state>
- "UNKNOWN"     | Still sends/replies with unknown message     | Karma lose
- "UNKNOWN"     | Still sends/replies with unknown message     | Message "BANNED"
- <fine state>  | Does not response within timeout             | Pinged
--------------------------------------------------------------------------------
- "WELCOME"     | Tries to send objects with invalid target    | Message "TARGET"
- "WELCOME"     | Tries to send objects with valid target      | Message "ACCEPT-OBJECT"
- "WELCOME"     | Requests a list of hubs/clients f. inv. obj. | Message "OBJECT"
- "WELCOME"     | Requests a list of hubs/clients f. val. obj. | Message "LIST"
- "WELCOME"     | Sends a list of hubs/clients without offer   | Message "OFFER-LIST"
- "WELCOME"     | Offers a list of all invalid objects         | Message "ALL-OBJECT-LIST"
- "WELCOME"     | Offers a list with partly invalid objects    | Message "PAR-OBJECT-LIST"
- "WELCOME"     | Offers a list of all valid objects           | Message "ACCEPT-LIST"
- "A-L"         | Has send a different list of objects         | Message "DIV-LIST"
- "A-L"         | Has send the same list of valid objects      | Add karma
- "A-O-L"       | Still offers a list of all invalid objects   | Karma lose
- "A-O-L"       | Reoffers a list of valid objects             | Message "ACCEPT-LIST"
- "A-O-L"+Karma | Still offers a list of all invalid objects   | Message "BANNED"
- "A-O-L"+Karma | Still offers a list of all invalid objects   | Message "ACCEPT-LIST"
- "A-O-L"+Karma | Reoffers a list of valid objects             | Message "ACCEPT-LIST
- "A-K"         | The target rejects the object: "OBJECT"      | Message "TARGET-OBJECT"
- "A-K"         | The target rejects the object: "BUSY"        | Message "BUSY-OBJECT"
- "A-O"         | Tries to send an invalid object              | Message "INVALID-OBJECT"
- "A-O"         | Tries to send a different but valid object   | Message "DIV-OBJECT"
- "A-O"         | Sends the same object                        | Add karma
- "A/P-T"       | Still sends a list of all/partly invalid o.  | Karma lose
- "A/P-T"+Karma | Still sends a list of all/partly invalid o.  | Message "BANNED"
- "P-O-L"       | Still offers a list of part. invalid objects | Karma lose
- "P-O-L"       | Resends a list of valid objects              | Observe->Message "ACCEPT-LIST"
- "P-O-L"+Karma | Still offers a list of part. invalid objects | Message "BANNED"
- "P-O-L"+Karma | Resends a list of valid objects              | Observe->Message "ACCEPT-LIST"
- "I-O"         | Still tries to send an invalid object        | Karma lose
- "I-O"         | Resends a different invalid object           | Message "DIV-OBJECT"
- "I-O"         | Resends the same valid object                | Observed
- "I-O"+Karma   | Still tries to send an invalid object        | Message "BANNED"
- "I-O"+Karma   | Resends the same valid object                | Observed
- "D-L"         | Still sends a different list                 | Karma lose
- "D-L"         | Resends the same list                        | Observed   
- "D-L"+Karma   | Still sends a different list                 | Message "BANNED"
- "D-L"+Karma   | Resends the same list                        | Observed   
- "D-O"         | Still tries to send a different object       | Karma lose
- "D-O"         | Resends the same valid object                | Observed
- "D-O"+Karma   | Still tries to send a different object       | Message "BANNED"
- "D-O"+Karma   | Resends the same valid object                | Observed
- "LIST"        | The peer receives a list of hubs and clients | <prev. state>
- "TARGET"      | Still tries to send objects to invalid targ. | Karma lose
- "TARGET"      | Sends an object to target with weak karma    | Message "ACCEPT-KARMA"
- "TARGET"      | Sends an object to valid target              | Message "ACCEPT-OBJECT"
- "TARGET"+Kar. | Still tries to send objects to invalid targ. | Message "TARGET-KARMA"
- "T-K"         | Still tries to send objects to invalid targ. | Message "BANNED"
- "T-O"         | Target does not accept the obj. but in list  | Message "OBJECT-LIST" to target
- "OBJECT"      | Still requests a list f. invalid object      | Karma lose
- "OBJECT"+Kar. | Still requests a list f. invalid object      | Message "OBJECT-KARMA
- "O-K"         | Still requests a list f. invalid object      | Message "BANNED"
- "O-L"         | Target does still say "ACCEPT" for object    | Karma lose
- "O-L"+Karma   | Target does still say "ACCEPT" for object    | Message "BANNED" to target
- "AUTH"        | Still tries to send objects after X "AUTH"   | Karma lose
- "AUTH"        | Sends valid authorization data               | Observe->Message "WELCOME"
- "AUTH"+Karma  | Still tries to send objects after X "AUTH"   | Message "BANNED"
- "AUTH"+Karma  | Sends invalid authorization data             | Message "KICKED"
- "AUTH"+Karma  | Sends valid authorization data               | Observe->Message "WELCOME"
- "KICKED"      | Still authorizes itself with invalid data    | Message "BANNED"
- "BANNED"      | Is being banned on the node                  | Disconnected
--------------------------------------------------------------------------------
-
-A previous state is a non-fatal state that the peer was before the trouble
+Possible node-internal states 
+=============================
+
+These states are the node's own states and not a state of any other node, e.g.
+when you start the software, there is currently no state [instance], the
+node's state is 'null' (also null from $stateInstance is initially null).
+
+---------------+------------------------------------------------------+-------------
+ Initial state | Reason of change                                     | New state
+---------------+------------------------------------------------------+-------------
+ Null          | Node application has been initialized                | Init
+ Init          | Node has generated session id                        | Virgin
+ Virgin        | Node has initialized all listeners, queues           | Active
+ Active        | Node has reached itself from outside (self-connect)  | Reachable
+ Active        | Node has attempted to announce itself to other nodes | Announced
+ Reachable     |        -"-      -"-      -"-      -"-      -"-       | Announced
+---------------+------------------------------------------------------+-------------
+
+Possible states for a regular-node connection
+=============================================
+
+This is a brief summary of possible states a regular-node connection may be
+setted. These ideas should later be implemented in a XML file with e.g. a
+StateXmlParser class with a XmlFileReader as a data source.
+
+---------------+------------------------------------------------------+-------------
+ Initial state | Reason of change                                     | New state
+---------------+------------------------------------------------------+-------------
+---------------+------------------------------------------------------+-------------
+
+A previous state is a non-fatal state that the node was before the "trouble"
 started. This state is stored along with a timestamp to watch the overall
-performance of this hub reacting a troubleous peer.
+performance of this node reacting a troubleous node.
 
-Karma lose or added karma is being remembered in a lose/add-seperated summary for
-"productive" and addionally as a full list for debugging purposes if the debug
-mode is enabled.
+Karma lose or added karma is being remembered in a lose/add-seperated summary
+for "productive" and addionally as a full list for debugging purposes if the
+debug mode is enabled.
 
 A "connection" should be interpreted as a incoming socket "connection". That
 means in this state table we threat UDP "connections" as same as TCP
-connections to make things easier. Of, course the script will be the last one to
-seperate between these very different protocols.
+connections to make things easier. Of, course the script will be the last one
+to seperate between these very different protocols.
 
-A "ping" is a small message that should be responded by a pinged peer within a
-time period else the ping would loose some karma. When a "ping" is issued it
-should not be resend within a time period to not ping the peer to death.
+A "ping" is a small message that should be responded by a pinged node within a
+time period else the pinged node would loose some karma. When a "ping" is
+issued it should not be resend within a time period to not ping the node to
+death.
 
-So pings are not issued while there is no trouble with the peer. This does
-reduce network load for certain. Troubleous peers are being detected by the
+So pings are not issued while there is no trouble with the node. This does
+reduce network load for certain. Troubleous nodes are being detected by the
 above state changes (see Connected->Timed out for example).
 
 Some state changes are no *real* state changes. They are sometimes remarks
-attached to the peer connection. A good example is the state 'Karma lose' which
-a peer does never change to.
+attached to the node connection. A good example is the state 'Karma lose' which
+a node does never change to.
 
 A "list" should be interpreted as a DHT (Distributed Hash Table). All list and
-object transferes are being validated by final hashes for high reliablity.
+object transfers are being validated by final hashes for best reliablity.
diff --git a/protocol-drafts/message-layer/bootstrapping.odg b/protocol-drafts/message-layer/bootstrapping.odg
new file mode 100644 (file)
index 0000000..07b8eae
Binary files /dev/null and b/protocol-drafts/message-layer/bootstrapping.odg differ
index 3cc086b3728ffdc7a5d7dd263bfc4e50e8dfa198..b5262bd0805b499548b2f0eef17d37678d5ed0fc 100644 (file)
@@ -27,8 +27,8 @@ Message-level:
 --------------
 - a message is only identified by itself (the body)
 - the header does not contain any message-specific parts
-- a message may contain extra data e.g. hash trees for larger object but no ibjects
-- therefor its total size is limited in opposite to an object
+- a message may contain extra data e.g. hash trees for larger object but no objects
+- therefore its total size is limited in opposite to an object
 - extra data is seperated by a marker from the message
 - an end-marker closes the whole message