In earlier releases of Bitcoin Core, the dust limit was defined as an output whose spending would require more than 1/3 of its value as fees:
The minimum fee was in turn defined by
minRelayTxFee, a user-adjustable setting that defaulted at one point to 1 satoshis/byte.
The release notes for 0.14.0 have this to say about
Since the changes in 0.12 to automatically limit the size of the mempool and improve the performance of block creation in mining code it has not been important for relay nodes or miners to set
-minrelaytxfee. With this release the following concepts that were tied to this option have been separated out:
- incremental relay fee used for calculating BIP 125 replacement and mempool limiting. (1000 satoshis/kB)
- calculation of threshold for a dust output. (effectively 3 * 1000 satoshis/kB)
- minimum fee rate of a package of transactions to be included in a block created by the mining code. If miners wish to set this minimum they can use the new
-blockmintxfeeoption. (defaults to 1000 satoshis/kB)
-minrelaytxfeeoption continues to exist but is recommended to be left unset.
Unfortunately, this statement doesn't clarify the question of how the dust limit is computed going forward. In particular, the statement "calculation of threshold for a dust output. (effectively 3 * 1000 satoshis/kB)" is confusing. It appears to mean that the dust limit is hard coded with a fee density of 1 satoshis/byte, yielding a minimum output value of 546 satoshis ((34 + 148) * 3, as per previous policy). But this doesn't make much sense given that the market fee density for next-block confirmation is routinely above 100 satoshis/byte, and changes daily.
Assume I'm running a 0.14.0 node with default settings. What's the effective dust limit for this node, and how is it calculated, given that I'm being instructed not to touch