I-Wars Protocol Changes This file documents changes to the I-Wars protocol. This file is maintained along with Protocol.html for those who are already very familiar with the protocol. Chances are, such folks can use this file instead of re-reading the Protocol.html file each time the protocol is updated. In addition, some changes inside the Monitor that may be of interest to players are documented here. This information is out of scope of the Protocol.html file. ############################################################################### * Changes from version 2.1 to version 2.2 ** Added limit on the number of commands a Player may send per hour ############################################################################### * Changes from version 2.0 to version 2.1 ** Fixed bug where PLAYER_PASSWORD_CHECKSUM was sent on connections made by Players made active connections to the Monitor's server port. This effectively made all PLAYER_PASSWORD_CHECKSUM's public to everyone. Now, PLAYER_PASSWORD_CHECKSUM's are only sent when the Monitor makes an active connection to a Player. ############################################################################### * Changes from version 1.4 to version 2.0 ** Completed cryptography support ** Fixed bug for trading with Players who don't support TRADE_RESPONSE command ############################################################################### * Changes from version 1.3 to version 1.4 ** Added encryption support via the extra parameter of the IDENT command (Although it is there, it is not fully functional yet). ** Made games persistent ############################################################################### * Changes from version 1.2 to version 1.3 ** Added PLAYER_MONITOR_PASSWORD_CRACK command ** Added PLAYER_STATUS_CRACK command ############################################################################### * Changes from version 1.1 to version 1.2 ** Added trading with the MONITOR. If a trade is requested with the identity, Monitor, then the trade is sent to the Monitor. The Monitor approves trades that at current market values, plus a percentage mark-up. ** Added WAR_TRUCE_OFFER and WAR_TRUCE_RESPONSE, as well as WAR_TRUCE_OFFERED: Directive for handling of truces in wars. ** Fixed bug where HOST_PORT command was not sending a COMMAND_ERROR Directive when Active client connection was coming from a different machine than the HOST specified by HOST_PORT. ** Ended up removing the active client connection on same machine as server process altogether---this will not be fair when password stealing is implemented. ############################################################################### * Changes from version 1.0 to version 1.1 ** Added the RANDOM_PLAYER_HOST_PORT Command. ** Added the PLAYER_HOST_PORT Command. ** Added all of the WAR Commands, which include WAR_DECLARE, WAR_DEFEND, and WAR_STATUS ** added the WAR_DECLARATION: Directive. ** slightly modified the resource distribution code. ** Fixed bug where RESULT: was not always sent when it should be. Now, it is always guaranteed that a Message Group that comes after a Command will either have a RESULT: Directive or a COMMAND_ERROR: Directive. ############################################################################### * Changes from version 0.9 to version 1.0 ** SIGN_OFF Command has been added. (at Adam's request :) ** SYNTHESIZE Command has been added. ** GET_GAME_IDENTS Command has been added. This Command returns all the game identities currently active in the game. ** Commands and Directives need to execute trades have been added. *** The TRADE_REQUEST Command has been added. This Command is used by the Player who wants a trade to tell the Monitor. The Monitor takes care of contacting the other player to verify the trade. *** The TRADE: Directive has been added. The Monitor sends this Directive to a Player1 when some Player (say, Player2) has requested a trade. *** The TRADE_RESPONSE Command is used to response to a TRADE: Directive sent by the Monitor. ############################################################################### * Changes from version 0.8 to version 0.9 ** Resources are now allocated once every three hours if the player has been alive for an hour or more since the last resource allocation. ** The CHANGE_PASSWORD command has been added. ############################################################################### * Changes from version 0.7 to version 0.8 ** The mock tournament has changed from starting on the Saturday after Thanksgiving to Monday 30 November 1998 at 12:00. This is to facilitate questions in class on that Monday before the mock tournament begins. ** Port restrictions changed All ports that Players listen on must be between 1024 and 65536. This increases the previous range. ** Bug where both COMMAND_ERROR: and RESULT: was sent in Message Group responses after some commands has been fixed. The COMMAND_ERROR needed to be a COMMENT: instead. ** The Monitor rarely does REQUIRE: PASSWORD. Now, it usually sends a REQUIRE: ALIVE, expecting the cookie in return instead. ############################################################################### * Changes from version 0.6 to version 0.7 ** RESULT: generation All successful commands now generate a RESULT: in the responding message group. In the case where a command has no results, it will simply generate: RESULT: COMMAND in the responding Message Group. ** Port restrictions (HOST_PORT command) All ports that Players listen on must be between 2048 and 65000 ** Password Security Monitor Passwords are generated a bit more securely ** Are-You-Alive Checks are done Are-You-Alive checks are now done periodically. This is necessary to count Player up-time to determine if Player will receive resources at next allocation time.