Host-LevelMessages

Protocol.Host-LevelMessages History

Hide minor edits - Show changes to output

Changed lines 10-11 from:
When a connection between two Ripple hosts is established, the host accepting the conection must send a @@time@@ message, consisting of its current time, UTC.  (All times in Ripple are UTC.)  The host receiving the time message echoes back its own time message in reply, indicating that it agrees to use the other host's time as the official time for that connection.  If it disagrees, it replies with an error and sends its own time message.  If that time message is rejected, the connection is closed.  There is little reason to disagree with someone's time at the start of a connection, unless you have oustanding open transactions with the other host that are time-sensitive -- simply store the difference from the local host's time and compensate on sent and received messages. 
to:
When a connection between two Ripple hosts is established, the host accepting the conection must send a @@time@@ message, consisting of its current time, UTC.  (All times in Ripple are UTC.) 

[@
{
  "time": "2006-10-30 18:47:55.356000"
}
@]

The host receiving the time message echoes back its own time message in reply, indicating that it agrees to use the other host's time as the official time for that connection.  If it disagrees, it replies with an error and sends its own time message.  If that time message is rejected, the connection is closed.  There is little reason to disagree with someone's time at the start of a connection, unless you have oustanding open transactions with the other host that are time-sensitive -- simply store the difference from the local host's time and compensate on sent and received messages. 
Added lines 1-21:
!! Host-Level Messages

[[Protocol/Host-Level Messages Work Page]]

Certain information is more pertinent to hosts themselves than to individual nodes.

[[#connection-time]]
'''Connection Time'''

When a connection between two Ripple hosts is established, the host accepting the conection must send a @@time@@ message, consisting of its current time, UTC.  (All times in Ripple are UTC.)  The host receiving the time message echoes back its own time message in reply, indicating that it agrees to use the other host's time as the official time for that connection.  If it disagrees, it replies with an error and sends its own time message.  If that time message is rejected, the connection is closed.  There is little reason to disagree with someone's time at the start of a connection, unless you have oustanding open transactions with the other host that are time-sensitive -- simply store the difference from the local host's time and compensate on sent and received messages. 

During the course of the connection, either host may send a time message to the other to verify the time.  If at any point the two hosts fail to agree on the current time, the connection should be closed.

Time messages can be used to discover connection latency.  They can also act as hearbeat messages to verify the connection.

[[#routing-advertisements]]
'''Routing Advertisements'''

To avoid unnecessary duplication, routing advertisements are host-level messages.  See [[Protocol/Routing]].

[[Protocol/Host-Level Messages Work Page]]