From 2b32781db468290fb57007fb4769732f23a05c5d Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Wed, 21 Dec 2016 21:21:38 -0500 Subject: [PATCH] Dev Docs: P2P feefilter: add extra details - Add annotated hex example - Add search box entry and autocrossref entry - Add Bitcoin Core 0.12/0.13 cross links --- _autocrossref.yaml | 2 ++ _config.yml | 1 + _includes/devdoc/ref_p2p_networking.md | 14 +++++++++++--- _includes/references.md | 1 + 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/_autocrossref.yaml b/_autocrossref.yaml index 6cd6665fc5..3dddb59607 100644 --- a/_autocrossref.yaml +++ b/_autocrossref.yaml @@ -27,6 +27,8 @@ DER-formatted: der ECDSA: epoch time: unix epoch time '`expires`': pp expires +'`feefilter` message': feefilter message +'`feefilter` messages': feefilter message fiat: '`filteradd` message': filteradd message '`filteradd` messages': filteradd message diff --git a/_config.yml b/_config.yml index c42965156f..82cf25dbdb 100644 --- a/_config.yml +++ b/_config.yml @@ -532,6 +532,7 @@ devsearches: - "addr": "/en/developer-reference#addr" - "alert": "/en/developer-reference#alert" - "block": "/en/developer-reference#block" + - "feefilter": "/en/developer-reference#feefilter" - "filteradd": "/en/developer-reference#filteradd" - "filterclear": "/en/developer-reference#filterclear" - "filterload": "/en/developer-reference#filterload" diff --git a/_includes/devdoc/ref_p2p_networking.md b/_includes/devdoc/ref_p2p_networking.md index 087e165053..3c84133dcd 100644 --- a/_includes/devdoc/ref_p2p_networking.md +++ b/_includes/devdoc/ref_p2p_networking.md @@ -803,8 +803,8 @@ The `feefilter` message is a request to the receiving peer to not relay any transaction inv messages to the sending peer where the fee rate for the transaction is below the fee rate specified in the feefilter message. -`feefilter` was introduced in V0.13.0 following the introduction -of mempool limiting in V0.12.0. Mempool limiting provides protection against +`feefilter` was introduced in Bitcoin Core 0.13.0 following the introduction +of mempool limiting in Bitcoin Core 0.12.0. Mempool limiting provides protection against attacks and spam transactions that have low fee rates and are unlikely to be included in mined blocks. The `feefilter` messages allows a node to inform its peers that it will not accept transactions below a specified fee rate into @@ -813,7 +813,7 @@ transactions below that fee rate to that node. | Bytes | Name | Data Type | Description |-------|---------|-----------|--------------- -| 8 | feerate | uint64_t | The fee rate (in Satoshis per kilobyte) under which transactions should not be relayed to this peer. +| 8 | feerate | uint64_t | The fee rate (in satoshis per kilobyte) below which transactions should not be relayed to this peer. The receiving peer may choose to ignore the message and not filter transaction inv messages. @@ -831,8 +831,16 @@ if they are below the feefilter fee rate. inv messages generated from a mempool message are subject to a fee filter if it exists. +The annotated hexdump below shows a `feefilter` message. (The message +header has been omitted.) + {% endautocrossref %} +{% highlight text %} +7cbd000000000000 ... satoshis per kilobyte: 48,508 +{% endhighlight %} + + #### FilterAdd {% include helpers/subhead-links.md %} diff --git a/_includes/references.md b/_includes/references.md index c03c04c47a..ff10e47723 100644 --- a/_includes/references.md +++ b/_includes/references.md @@ -180,6 +180,7 @@ http://opensource.org/licenses/MIT. [addr message]: /en/developer-reference#addr "The P2P network message which relays IP addresses and port numbers of active nodes to other nodes and clients, allowing decentralized peer discovery." [alert message]: /en/developer-reference#alert "The P2P network message which sends alerts in case of major software problems." [block message]: /en/developer-reference#block "The P2P network message which sends a serialized block" +[feefilter message]: /en/developer-reference#feefilter "The P2P network message which requests the receiving peer not relay any transactions below the specified fee rate" [filteradd message]: /en/developer-reference#filteradd "A P2P protocol message used to add a data element to an existing bloom filter." [filterclear message]: /en/developer-reference#filterclear "A P2P protocol message used to remove an existing bloom filter." [filterload message]: /en/developer-reference#filterclear "A P2P protocol message used to send a filter to a remote peer, requesting that they only send transactions which match the filter."