What is the
What is it used for, what's the default value and how does the value change?
minRelayTxFee is a full-node setting. It specifies a lower bound for the fee rate the node requires from a transaction. Only transactions with a fee rate above the bound will be added to the node's memory pool and relayed to other nodes. As it is not a flat fee, but a fee rate, it is relative to the transactions size. Each node can set its own policy.
The default value for the
minRelayTxFee in Bitcoin Core is 1,000 satoshi per kB. The node owner can set an amount manually with
-minrelaytxfee=<amt> (for the startup parameter
<amt> is in bitcoins per kB).
Beside the default value and manual configuring, the fee rate required for mempool inclusion is effectively increased when the node's memory pool flows over: when the mempool limit is reached, the transactions with the lowest fee rates are expelled in favor of better endowed transactions. Note, that the actual value for minRelayTxFee is not changed by this, and therefore derived values also don't change.
minRelayTxFee is also used to define the dust limit and minimum fee for replacement.
minRelayTxFee should not be confused with
minTxFee, which is another setting that affects the fees on newly created transactions of the node.
Bitcoin Core 0.13.0 introduced a new, optional
feefilter P2P message, which will tell neighboring nodes not to send transactions below the filter's fee rate. Older nodes do not communicate their minimum fee rate, but rather just drop an incoming transaction that doesn't pass it.
'minRelayTxFee' is the node's minimum reward (BTC/KB) for a transaction "transmission" (relay). In the p2p network there could be a node (A) with a minRelayTxFee setted at 0,0001 and a node (B) with a minRelayTxFee setted at 0,0003. In the case of a transaction of 2 KB with a fee of 0,0002 , this tx will be included in the A's mempool and not in the B's mempool.