Как определить комиссию за транзакцию автоматически?

Когда я отправляю биткойны через Electrum, я просто плачу ту комиссию за транзакцию, которую рекомендует программное обеспечение. Сейчас пишу программу, которая должна будет на лету определять размер комиссии за транзакцию.

Как это вычисляется? Похоже, что Electrum постоянно рекомендует 0,0002 BTC для каждой транзакции, но я читал в другом месте, что сумма комиссии зависит от размера транзакции. В крайнем примере, если бы я хотел выкупить 15 крошечных неизрасходованных выходов и отправить их по 2 адресатам (получатель + мой адрес изменения), оправдает ли необычно большое количество входов для новой транзакции большую комиссию за транзакцию? Если да, то насколько больше?

Ответы (1)

Как это вычисляется?

Bitcoin Core предлагает то, что называется оценкой комиссии, где вы можете оценить сумму комиссии, которая, вероятно, необходима для перевода транзакции в следующий блок. Он возвращает плату за килобайт за попадание в один из следующих nблоков, предполагая, что майнеры, производящие их, имеют те же правила принятия транзакций, что и предыдущие.

1 confirmation 0.00026816 BTC
2 confirmation 0.00011483 BTC
3 confirmation 0.00002048 BTC
4 confirmation 0.00001255 BTC
5 confirmation 0.00001255 BTC
6 confirmation 0.00001255 BTC

Эмуляция этого без запуска полностью проверяющего узла, который может оценивать свой пул памяти в течение длительного периода времени, вероятно, в настоящее время не особенно выполнима. Централизованные кошельки, такие как Mycelium, совершают HTTP-запросы к своей конечной точке, которая возвращает эту информацию от их имени. Вероятно, в будущем для этого будет больше конечных точек, учитывая сложность оценки комиссий для кошельков, не прошедших полную проверку.

оправдывает ли необычно большое количество входных данных для новой транзакции более высокую комиссию за транзакцию? Если да, то насколько больше?

Плата за транзакцию указана за килобайт. Для добавления дополнительных входных данных требуется как открытый ключ для адреса, так и подпись, а также должны быть включены некоторые дополнительные накладные расходы. Часто это будет около ста байтов на vin, но это зависит от того, является ли ввод P2SH или нет, и были ли используемые ключи сжаты или нет. Как правило, если вход меньше 0,00005 BTC, вероятно, стоимость комиссии будет больше, чем ее стоимость.

Эта транзакция в мейннете по размеру аналогична описанной вами, у нее 16 vin, 2 vout, при общем размере 2291 байт. Ключ для 1FkiXxeKektpHVjvfknVvC6eQmjM9DEu9D сжат (начинается с 02 и имеет длину всего 33 байта), что способствовало небольшому размеру транзакции.