自比特幣核心 0.14.0 以來,具有預設設置的節點如何計算灰塵限制?
在比特幣核心的早期版本中,灰塵限制被定義為一種輸出,其支出需要超過其價值 1/3 作為費用:
<https://bitcoin.stackexchange.com/a/41082/10845>
最低費用又由 定義
minRelayTxFee
,這是一個使用者可調整的設置,預設為 1 satoshis/byte。0.14.0 的發行說明有這樣的說法
minRelayTxFee
:由於 0.12 中的更改自動限制了記憶體池的大小並提高了挖礦程式碼中創建塊的性能,因此中繼節點或礦工的設置並不重要
-minrelaytxfee
。在此版本中,與此選項相關的以下概念已被分離出來:
- 用於計算 BIP 125 替換和記憶體池限制的增量中繼費用。(1000 聰/kB)
- 粉塵輸出門檻值的計算。(有效 3 * 1000 satoshis/kB)
- 包含在由挖礦程式碼創建的區塊中的一攬子交易的最低費用率。如果礦工希望設置此最小值,他們可以使用新
-blockmintxfee
選項。(預設為 1000 聰/kB)該
-minrelaytxfee
選項繼續存在,但建議不要設置。<https://bitcoin.org/en/release/v0.14.0>
不幸的是,該聲明並沒有闡明未來如何計算塵埃限制的問題。特別是,“計算粉塵輸出門檻值。(實際上是 3 * 1000 satoshis/kB)”的說法令人困惑。這似乎意味著灰塵限制是硬編碼的,費用密度為 1 聰/字節,產生的最小輸出值為 546 聰((34 + 148)* 3,根據之前的政策)。但這沒有多大意義,因為下一個區塊確認的市場費用密度通常高於 100 聰/字節,並且每天都在變化。
假設我正在使用預設設置執行 0.14.0 節點。這個節點的有效灰塵限制是多少,它是如何計算的,因為我被指示不要觸摸
minRelayTxFee
?
0.14.0+ 中的灰塵限制由名為dustRelayFee 的值設置。這與 minRelayTxFee 是分開的,儘管它具有相同的預設值 1 satoshi/byte。那就是現在用來計算塵埃的,塵埃計算還是和以前一樣。所以 0.14.0+ 的預設灰塵限制是 546 satoshis。您可以使用該
-dustrelayfee=<n>
選項配置您為dustRelayFee 設置的值。在比特幣核心 0.15.0 中,這將略有變化。計算變為灰塵限制是我們在dustRelayFee 上花費輸出所支付的金額。為了保持灰塵限制與以前相同,為 546 satoshis,dustRelayFee 增加到 3 satoshis/byte。