Skip to content

Commit

Permalink
Dev Docs: P2P feefilter: add extra details
Browse files Browse the repository at this point in the history
- Add annotated hex example

- Add search box entry and autocrossref entry

- Add Bitcoin Core 0.12/0.13 cross links
  • Loading branch information
harding authored and jnewbery committed Mar 16, 2017
1 parent 8b9a504 commit 2b32781
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 3 deletions.
2 changes: 2 additions & 0 deletions _autocrossref.yaml
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions _config.yml
Expand Up @@ -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"
Expand Down
14 changes: 11 additions & 3 deletions _includes/devdoc/ref_p2p_networking.md
Expand Up @@ -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
Expand All @@ -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.
Expand All @@ -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 %}

Expand Down
1 change: 1 addition & 0 deletions _includes/references.md
Expand Up @@ -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."
Expand Down

0 comments on commit 2b32781

Please sign in to comment.