Changeset View
Changeset View
Standalone View
Standalone View
doc/reduce-traffic.md
Reduce Traffic | Reduce Traffic | ||||
============== | ============== | ||||
Some node operators need to deal with bandwidth caps imposed by their ISPs. | Some node operators need to deal with bandwidth caps imposed by their ISPs. | ||||
By default, Bitcoin ABC allows up to 125 connections to different peers, 8 of | By default, Bitcoin ABC allows up to 4096 connections to different peers, 10 of | ||||
which are outbound. You can therefore, have at most 117 inbound connections. | which are outbound. You can therefore, have at most 4086 inbound connections. | ||||
Of the 10 outbound peers, there can be 8 full-relay connections and 2 | |||||
block-relay-only ones. | |||||
The default settings can result in relatively significant traffic consumption. | The default settings can result in relatively significant traffic consumption. | ||||
Ways to reduce traffic: | Ways to reduce traffic: | ||||
## 1. Use `-maxuploadtarget=<MiB per day>` | ## 1. Use `-maxuploadtarget=<MiB per day>` | ||||
A major component of the traffic is caused by serving historic blocks to other nodes | A major component of the traffic is caused by serving historic blocks to other nodes | ||||
during the initial blocks download phase (syncing up a new node). | during the initial blocks download phase (syncing up a new node). | ||||
This option can be specified in MiB per day and is turned off by default. | This option can be specified in MiB per day and is turned off by default. | ||||
This is *not* a hard limit; only a threshold to minimize the outbound | This is *not* a hard limit; only a threshold to minimize the outbound | ||||
traffic. When the limit is about to be reached, the uploaded data is cut by no | traffic. When the limit is about to be reached, the uploaded data is cut by no | ||||
longer serving historic blocks (blocks older than one week). | longer serving historic blocks (blocks older than one week). | ||||
Keep in mind that new nodes require other nodes that are willing to serve | Keep in mind that new nodes require other nodes that are willing to serve | ||||
historic blocks. | historic blocks. | ||||
Whitelisted peers will never be disconnected, although their traffic counts for | Whitelisted peers will never be disconnected, although their traffic counts for | ||||
calculating the target. | calculating the target. | ||||
## 2. Disable "listening" (`-listen=0`) | ## 2. Disable "listening" (`-listen=0`) | ||||
Disabling listening will result in fewer nodes connected (remember the maximum of 8 | Disabling listening will result in fewer nodes connected (remember the maximum of 10 | ||||
outbound peers). Fewer nodes will result in less traffic usage as you are relaying | outbound peers). Fewer nodes will result in less traffic usage as you are relaying | ||||
blocks and transactions to fewer nodes. | blocks and transactions to fewer nodes. | ||||
## 3. Reduce maximum connections (`-maxconnections=<num>`) | ## 3. Reduce maximum connections (`-maxconnections=<num>`) | ||||
Reducing the maximum connected nodes to a minimum could be desirable if traffic | Reducing the maximum connected nodes to a minimum could be desirable if traffic | ||||
limits are tiny. Keep in mind that bitcoin's trustless model works best if you are | limits are tiny. Keep in mind that bitcoin's trustless model works best if you are | ||||
connected to a handful of nodes. | connected to a handful of nodes. | ||||
## 4. Turn off transaction relay (`-blocksonly`) | ## 4. Turn off transaction relay (`-blocksonly`) | ||||
Forwarding transactions to peers increases the P2P traffic. To only sync blocks | Forwarding transactions to peers increases the P2P traffic. To only sync blocks | ||||
with other peers, you can disable transaction relay. | with other peers, you can disable transaction relay. | ||||
Be reminded of the effects of this setting. | Be reminded of the effects of this setting. | ||||
- Fee estimation will no longer work. | - Fee estimation will no longer work. | ||||
- Not relaying other's transactions could hurt your privacy if used while a | - It sets the flag "-walletbroadcast" to be "0", only if it is currently unset. | ||||
wallet is loaded or if you use the node to broadcast transactions. | Doing so disables the automatic broadcasting of transactions from wallet. Not | ||||
relaying other's transactions could hurt your privacy if used while a wallet | |||||
is loaded or if you use the node to broadcast transactions. | |||||
- If a peer is whitelisted and "-whitelistforcerelay" is set to "1" (which will | |||||
also set "whitelistrelay" to "1"), we will still receive and relay their transactions. | |||||
- It makes block propagation slower because compact block relay can only be | - It makes block propagation slower because compact block relay can only be | ||||
used when transaction relay is enabled. | used when transaction relay is enabled. |