Согласно Вики :
Если размер блока превышает 250 КБ, транзакции становятся все более дорогими, поскольку размер блока приближается к пределу в 500 КБ. Отправка транзакции при размере блока 400 КБ будет стоить в 5 раз больше обычной суммы; отправка при 499кБ будет стоить 500х и т.д.
Какая точная формула определяет комиссию за транзакцию?
См. GetMinFee() в main.h для кода, определяющего минимальную комиссию за транзакцию.
Часть , которую вы описываете , реализована следующим образом:
// 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
равно 1nBlockSize
это 1000nBlockSize
это размер блока, который мы строим перед добавлением новой транзакцииnNewBlockSize
размер блока, включая новую транзакциюMAX_BLOCK_SIZE_GEN
составляет 500 КБMAX_MONEY
составляет 21 миллион BTC (все деньги мира)так он говорит:
500kB / (500kB - nNewBlockSize)
Примечание: переставляя символы, мы получаем именно то, что написал Мени в своем ответе:
Fee
= Normal fee / ((500kB - size) / 500kB)
=Normal fee / (1 - size / 500kB)
Я не знаю формулы из какого-либо авторитетного источника, но, судя по примерам в тексте, она
Fee = Normal fee / (1 - Block size / 500KB)
Или эквивалентно (и я подозреваю, что фактический код использует эту форму)
Fee = Normal fee * (500 KB) / (500KB - Block size)
Другие ответы описывают правила, реализованные в настоящее время в клиенте, но я ожидаю, что эти правила будут заменены, как только ограничения на размер блока станут актуальными. Поскольку эти правила не применяются, когда клиенты проверяют блокчейн, они являются всего лишь рекомендациями и будут нарушаться, если они противоречат интересам майнеров.
Майнеры будут просто выбирать подмножество транзакций-кандидатов, которые соблюдают ограничения (размер блока и количество подписей) и максимизируют комиссию.
Если не принимать во внимание несколько незначительных сложностей (ранцевые и зависимые транзакции), это означает, что майнеры сортируют транзакции по fee/transactionSize
тому, является ли максимальный размер ограничивающим фактором и fee/signatureCount
является ли ограничивающим фактором количество сигнатур.
КодыInChaos
Дэвид Шварц
КодыInChaos
Дэвид Шварц
Стивен Горник