diff --git a/_autocrossref.yaml b/_autocrossref.yaml index 494d7ded..59f52d02 100644 --- a/_autocrossref.yaml +++ b/_autocrossref.yaml @@ -309,6 +309,9 @@ CVE-2012-2459: '`ping` RPC': rpc ping '`sendfrom`': rpc sendfrom '`sendfrom` RPC': rpc sendfrom +'`sendheaders`': sendheaders message +'`sendheaders` message': sendheaders message +'`sendheaders` messages': sendheaders message '`sendmany`': rpc sendmany '`sendmany` RPC': rpc sendmany '`sendrawtransaction`': rpc sendrawtransaction diff --git a/_includes/devdoc/ref_p2p_networking.md b/_includes/devdoc/ref_p2p_networking.md index dfe1eb44..b743baa2 100644 --- a/_includes/devdoc/ref_p2p_networking.md +++ b/_includes/devdoc/ref_p2p_networking.md @@ -68,6 +68,7 @@ As of Bitcoin Core 0.11.0, the most recent protocol version is 70002. | Version | Initial Release | Major Changes |---------|------------------------------------|-------------- +| 70012 | Bitcoin Core 0.12.0
(Not released yet) | [BIP130][]:
• Added `sendheaders` message | 70002 | Bitcoin Core 0.9.0
(Mar 2014) | • Send multiple `inv` messages in response to a `mempool` message if necessary

[BIP61][]:
• Added `reject` message | 70001 | Bitcoin Core 0.8.0
(Feb 2013) | • Added `notfound` message.

[BIP37][]:
• Added `filterload` message.
• Added `filteradd` message.
• Added `filterclear` message.
• Added `merkleblock` message.
• Added relay field to `version` message
• Added `MSG_FILTERED_BLOCK` inventory type to `getdata` message. | 60002 | Bitcoin Core 0.7.0
(Sep 2012) | [BIP35][]:
• Added `mempool` message.
• Extended `getdata` message to allow download of memory pool transactions @@ -1211,6 +1212,19 @@ header has been omitted.) {% endautocrossref %} +#### SendHeaders +{% include helpers/subhead-links.md %} + +{% autocrossref %} + +The `sendheaders` message tells the receiving peer to send new block +announcements using a `headers` message rather than an `inv` message. + +There is no payload in a `sendheaders` message. See the [message header +section][section message header] for an example of a message without a payload. + +{% endautocrossref %} + #### VerAck {% include helpers/subhead-links.md %} diff --git a/_includes/references.md b/_includes/references.md index 528df1d5..78ed320e 100644 --- a/_includes/references.md +++ b/_includes/references.md @@ -175,6 +175,7 @@ http://opensource.org/licenses/MIT. [ping message]: /en/developer-reference#ping "A P2P network message used to see if the remote host is still connected" [pong message]: /en/developer-reference#pong "A P2P network message used to reply to a P2P network ping message" [reject message]: /en/developer-reference#reject "A P2P network message used to indicate a previously-received message was rejected for some reason" +[sendheaders message]: /en/developer-reference#sendheaders "A P2P network message used to request new blocks be announced through headers messages rather than inv messages" [tx message]: /en/developer-reference#tx "A P2P protocol message which sends a single serialized transaction" [verack message]: /en/developer-reference#verack "A P2P network message sent in reply to a version message to confirm a connection has been established" [version message]: /en/developer-reference#version "A P2P network message sent at the begining of a connection to allow protocol version negotiation" @@ -287,6 +288,7 @@ http://opensource.org/licenses/MIT. [BIP70]: https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki [BIP71]: https://github.com/bitcoin/bips/blob/master/bip-0071.mediawiki [BIP72]: https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki +[BIP130]: https://github.com/bitcoin/bips/blob/master/bip-0130.mediawiki [CVE-2012-2459]: https://en.bitcoin.it/wiki/CVEs#CVE-2012-2459 [RFC5737]: http://tools.ietf.org/html/rfc5737 [secp256k1]: http://www.secg.org/sec2-v2.pdf diff --git a/img/dev/en-p2p-control-messages.dot b/img/dev/en-p2p-control-messages.dot index 0591c062..ddb35231 100644 --- a/img/dev/en-p2p-control-messages.dot +++ b/img/dev/en-p2p-control-messages.dot @@ -17,6 +17,7 @@ getaddr -> addr; filterload -> filteradd; filterload -> filterclear; alert; +sendheaders; ERROR [ style = "invis" ]; ERROR -> reject [ style = "invis" ]; diff --git a/img/dev/en-p2p-control-messages.png b/img/dev/en-p2p-control-messages.png index 16ece34d..f9b69d2c 100644 Binary files a/img/dev/en-p2p-control-messages.png and b/img/dev/en-p2p-control-messages.png differ diff --git a/img/dev/en-p2p-control-messages.svg b/img/dev/en-p2p-control-messages.svg index 22ebf677..eab70122 100644 --- a/img/dev/en-p2p-control-messages.svg +++ b/img/dev/en-p2p-control-messages.svg @@ -1,91 +1,96 @@ - - - - -_anonymous_0 - - -Overview Of P2P Protocol Control And Advisory Messages + + + +%3 + + +Overview Of P2P Protocol Control And Advisory Messages version - -version + +version -verack - -verack +verack + +verack -version->verack - +version->verack + -ping - -ping +ping + +ping -pong - -pong +pong + +pong -ping->pong - +ping->pong + -getaddr - -getaddr +getaddr + +getaddr -addr - -addr +addr + +addr -getaddr->addr - +getaddr->addr + -filterload - -filterload +filterload + +filterload -filteradd - -filteradd +filteradd + +filteradd -filterload->filteradd - +filterload->filteradd + -filterclear - -filterclear +filterclear + +filterclear -filterload->filterclear - +filterload->filterclear + -alert - -alert +alert + +alert + + +sendheaders + +sendheaders -reject - -reject +reject + +reject