Transactions
計算交易費用的確切公式是什麼?
根據維基:
如果塊大小超過 250 kB,隨著塊大小接近 500 kB 的限制,交易變得越來越昂貴。當塊大小為 400 kB 時發送交易將花費正常金額的 5 倍;當它為 499 kB 時發送將花費 500 倍等。
確定交易費用的確切公式是什麼?
有關確定最低交易費用的程式碼,請參見main.h 中的GetMinFee() 。
您描述的部分實現如下:
// Raise the price as the block approaches full if (nBlockSize != 1 && nNewBlockSize >= MAX_BLOCK_SIZE_GEN/2) { if (nNewBlockSize >= MAX_BLOCK_SIZE_GEN) return MAX_MONEY; nMinFee *= MAX_BLOCK_SIZE_GEN / (MAX_BLOCK_SIZE_GEN - nNewBlockSize); }
在哪裡:
nBlockSize
取決於我們是誰:
- 如果我們是進行新交易的使用者,
nBlockSize
則為 1- 如果我們是一個決定是否中繼傳入交易的節點,
nBlockSize
則為 1000- 如果我們是礦工,決定將哪些交易包含在新區塊中,
nBlockSize
那麼在添加新交易之前我們正在建構的區塊的大小
nNewBlockSize
是包含新交易的區塊大小
MAX_BLOCK_SIZE_GEN
是 500kB
MAX_MONEY
是 2100 萬比特幣(世界上所有的錢)所以它說:
如果我們要決定是轉發還是探勘交易,並且添加交易會使區塊超過 50% 滿:
- 絕不允許讓區塊 100% 滿的交易
- 否則將費用增加一倍
500kB / (500kB - nNewBlockSize)
注意:通過重新排列符號,我們得到了 Meni 在他的回答中所寫的內容:
Fee
=Normal fee / ((500kB - size) / 500kB)
=Normal fee / (1 - size / 500kB)