MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "compare": {
        "fromid": 1,
        "fromrevid": 1,
        "fromns": 0,
        "fromtitle": "Main Page",
        "toid": 2,
        "torevid": 2,
        "tons": 0,
        "totitle": "Protocol specification",
        "*": "<tr><td colspan=\"2\" class=\"diff-lineno\" id=\"mw-diff-left-l1\" >Line 1:</td>\n<td colspan=\"2\" class=\"diff-lineno\">Line 1:</td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">'''MediaWiki has been successfully installed.'''</del></div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">==Common standards==</ins></div></td></tr>\n<tr><td class='diff-marker'>\u00a0</td><td class='diff-context'></td><td class='diff-marker'>\u00a0</td><td class='diff-context'></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.</del></div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== Hashes ===</ins></div></td></tr>\n<tr><td class='diff-marker'>\u00a0</td><td class='diff-context'></td><td class='diff-marker'>\u00a0</td><td class='diff-context'></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">== Getting started ==</del></div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Usually, when a hash is computed within bitcoin, it is computed twice. Most of the time </ins>[<ins class=\"diffchange diffchange-inline\">http:</ins>//<ins class=\"diffchange diffchange-inline\">en</ins>.<ins class=\"diffchange diffchange-inline\">wikipedia</ins>.org/wiki/<ins class=\"diffchange diffchange-inline\">SHA-2 SHA-256</ins>] <ins class=\"diffchange diffchange-inline\">hashes are used, however </ins>[<ins class=\"diffchange diffchange-inline\">http:</ins>//<ins class=\"diffchange diffchange-inline\">en</ins>.<ins class=\"diffchange diffchange-inline\">wikipedia</ins>.org/wiki/<ins class=\"diffchange diffchange-inline\">RIPEMD RIPEMD-160] is also used when a shorter hash is desirable (for example when creating a bitcoin address).</ins></div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* </del>[//<del class=\"diffchange diffchange-inline\">www</del>.<del class=\"diffchange diffchange-inline\">mediawiki</del>.org/wiki/<del class=\"diffchange diffchange-inline\">Manual:Configuration_settings Configuration settings list</del>]</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* </del>[//<del class=\"diffchange diffchange-inline\">www</del>.<del class=\"diffchange diffchange-inline\">mediawiki</del>.org/wiki/<del class=\"diffchange diffchange-inline\">Manual</del>:<del class=\"diffchange diffchange-inline\">FAQ MediaWiki FAQ</del>]</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Example of double-SHA-256 encoding of string &quot;hello&quot;</ins>:</div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* </del>[<del class=\"diffchange diffchange-inline\">https</del>://<del class=\"diffchange diffchange-inline\">lists</del>.<del class=\"diffchange diffchange-inline\">wikimedia</del>.org/<del class=\"diffchange diffchange-inline\">mailman</del>/<del class=\"diffchange diffchange-inline\">listinfo</del>/<del class=\"diffchange diffchange-inline\">mediawiki</del>-<del class=\"diffchange diffchange-inline\">announce MediaWiki release mailing list</del>]</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> hello</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 (first round of sha-256)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> 9595c9df90075148eb06860365df33584b75bff782a510c6cd4883a419833d50 (second round of sha-256)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">For bitcoin addresses (RIPEMD-160) this would give:</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> hello</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 (first round is sha-256)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> b6a9c8c230722b7c748331a8b450f05566dc7d0f (with ripemd-160)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">== Common structures ==</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">All integers are encoded in big endian. (This is different from Bitcoin). </ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== Message structure ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 4 || magic || uint32_t || Magic value indicating message origin network, and used to seek to next message when stream state is unknown</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 12 || command || char[12] || ASCII string identifying the packet content, NULL padded (non-NULL padding results in packet rejected)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 4 || length || uint32_t || Length of payload in number of bytes</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 4 || checksum || uint32_t || First 4 bytes of sha256(sha256(payload))</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| ? || payload || uchar[] || The actual data</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Known magic values:</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Magic value !! Sent over wire as</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 0xE9BEB4D9 || E9 BE B4 D9</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== Variable length integer ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Integer can be encoded depending on the represented value to save space.\u00a0 Variable length integers always precede an array/vector of a type of data that may vary in length.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Value !! Storage length !! Format</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| &lt; 0xfd || 1 || uint8_t</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| &lt;= 0xffff || 3 || 0xfd followed by the length as uint16_t</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| &lt;= 0xffffffff || 5 || 0xfe followed by the length as uint32_t</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| - || 9 || 0xff followed by the length as uint64_t</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== Variable length string ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Variable length string can be stored using a variable length integer followed by the string itself.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| ? || length || [[Protocol_specification#Variable_length_integer|var_int]] || Length of the string</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| ? || string || char[] || The string itself (can be empty)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== Network address ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">When a network address is needed somewhere, this structure is used.\u00a0 This protocol and structure supports IPv6, '''but note that the original client currently only supports IPv4 networking'''. Network addresses are not prefixed with a timestamp in the version message.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 4 || time || uint32 || the Time </ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 8 || services || uint64_t || same service(s) listed in [[#version|version]</ins>]</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 16 || IPv6/4 || char</ins>[<ins class=\"diffchange diffchange-inline\">16] || IPv6 address. Network byte order. The original client only supports IPv4 and only reads the last 4 bytes to get the IPv4 address. However, the IPv4 address is written into the message as a 16 byte [http</ins>://<ins class=\"diffchange diffchange-inline\">en</ins>.<ins class=\"diffchange diffchange-inline\">wikipedia</ins>.org/<ins class=\"diffchange diffchange-inline\">wiki</ins>/<ins class=\"diffchange diffchange-inline\">IPv6#IPv4-mapped_IPv6_addresses IPv4-mapped IPv6 address]</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">(12 bytes ''00 00 00 00\u00a0 00 00 00 00\u00a0 00 00 FF FF'', followed by the 4 bytes of the IPv4 address).</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 2 || port || uint16_t || port number, network byte order</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Hexdump example of Network address structure</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">&lt;pre&gt;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">0000\u00a0  00 00 00 00 00 00 00 01\u00a0 00 00 00 00 00 00 00 00\u00a0 ................</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">0010\u00a0  00 00 FF FF 0A 00 00 01\u00a0 20 8D\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ........ .</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Network address:</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> 00 00 00 00 00 00 00 01\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  - 1 (NODE_NETWORK: see services listed under version command)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> 00 00 00 00 00 00 00 00 00 00 FF FF 0A 00 00 01 - IPv6: ::ffff:10.0.0.1 or IPv4: 10.0.0.1</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> 20 8D\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  - Port 8333</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">&lt;</ins>/<ins class=\"diffchange diffchange-inline\">pre&gt;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== Inventory Vectors ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Inventory vectors are used for notifying other nodes about objects they have or data which is being requested.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Inventory vectors consist of the following data format:</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 1+ || type || [[#Variable length integer|var_int]] || Identifies the object type linked to this inventory</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 32 || hash || char[32] || Hash of the object</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">== Message types ==</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== version ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">When a node creates an outgoing connection, it will immediately advertise its version. The remote node will respond with its version. No futher communication is possible until both peers have exchanged their version.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Payload:</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 4 || version || int32_t || Identifies protocol version being used by the node</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 8 || services || uint64_t || bitfield of features to be enabled for this connection</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 8 || timestamp || int64_t || standard UNIX timestamp in seconds</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 26 || addr_recv || net_addr || The network address of the node receiving this message</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 26 || addr_from || net_addr || The network address of the node emitting this message</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 8 || nonce || uint64_t || Node random nonce, randomly generated every time a version packet is sent. This nonce is used to detect connections to self.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| ? || user_agent || [[#Variable length string|var_str]] || [[BIP_0014|User Agent]] (0x00 if string is 0 bytes long)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 4 || start_height || int32_t || Currently unused. (Might someday be used to specify the time this node was last online so that messages since then can be relayed.)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">A &quot;verack&quot; packet shall be sent if the version packet was accepted.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">The following services are currently assigned:</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Value !! Name !! Description</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 1 || NODE_NETWORK || This is a normal network node.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== verack ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">The ''verack'' message is sent in reply to ''version''.\u00a0 This message consists of only a [[#Message structure|message header]] with the command string &quot;verack&quot;.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== addr ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Provide information on known nodes of the network. Non-advertised nodes should be forgotten after typically 3 hours</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Payload:</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|</ins>-</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 1+ || count || [[Protocol_specification#Variable_length_integer|var_int</ins>]<ins class=\"diffchange diffchange-inline\">] || Number of address entries (max: 1000)</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 30x? || addr_list || (uint32_t + net_addr)[] || Address of other nodes on the network. The uint32_t is a timestamp</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== inv ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Allows a node to advertise its knowledge of one or more objects. It can be received unsolicited, or in reply to ''getmessages''.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Payload (maximum payload length: 50000 bytes):</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| ? || count || [[Protocol_specification#Variable_length_integer|var_int]] || Number of inventory entries</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| (33+)x || inventory || [[Protocol specification#Inventory Vectors|inv_vect]][] || Inventory vectors</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">=== getdata ===</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">getdata is used in response to inv, to retrieve the content of a specific object, and is usually sent after receiving an ''inv'' packet, after filtering known elements.</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">Payload (maximum payload length: 50000 bytes):</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div>\u00a0</div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">{|class=&quot;wikitable&quot;</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">! Field Size !! Description !! Data type !! Comments</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| ? || count || [[Protocol_specification#Variable_length_integer|var_int]] || Number of inventory entries</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|-</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">| 36x? || inventory || [[Protocol specification#Inventory Vectors|inv_vect]][] || Inventory vectors</ins></div></td></tr>\n<tr><td colspan=\"2\">\u00a0</td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">|}</ins></div></td></tr>\n"
    }
}