Помощь с необработанной комиссией за транзакцию - абсурдно высокая комиссия

Я уже некоторое время работаю над своим кошельком Litecoin. Но я не могу контролировать комиссию за транзакцию, когда делаю необработанные транзакции.

Я знаю, как отправлять транзакции с помощью графического интерфейса Litecoin-Qt: https://live.blockcypher.com/ltc/tx/2b2f0aab9d2661840a60b172dcda24f359e85b7dbd0810e7afb2d3a6c0b8e59c/

С этим проблем не было, комиссия составила 0,00017 LTC ​​и была включена в следующий блок. Этот vsizeTX = 170, что объясняет комиссию в размере 0,00017 LTC.

Но я также работаю над своим собственным кошельком на своем VPS с помощью Litecoin-CLI. Я сделал необработанный TX, подписал его и отправил. Это произошло: https://live.blockcypher.com/ltc/tx/32ceefc7f377ad53c91922dffe62e6fd19e48a46d6afb4d610c2c090646404dc/

Комиссия за транзакцию 0.1 LTC!!! А vsizeвсего 192.

Я вернулся к файлу litecoin.conf, и в нем есть paytxfee=0.001параметр. Это означает, что это будет стоить мне 0,001 LTC/КБ. maxtxfeeеще не был включен, но теперь он имеет значение 0,001. Когда я пытаюсь отправить сейчас, он просто предлагает мне: "error":{"code":-26,"message":"256: absurdly-high-fee"}.

Что я делаю не так?

(Да, я тестирую свой кошелек в основной сети, я тупой)

Ответы (2)

Комиссия за транзакцию — это просто разница между входной и выходной стоимостью. Во второй опубликованной вами транзакции входное значение составляло 0,25 LTC, а выходное значение — 0,15 LTC, поэтому вы заплатили комиссию в размере 0,1 LTC (0,25–0,15), как вы говорите. Если вы выберете ввод, который больше, чем вывод, который вы хотите отправить, а также комиссию, вам необходимо создать вывод сдачи, чтобы отправить остальную часть обратно в ваш кошелек, иначе все это пойдет майнерам в качестве комиссии. Например, если ваш ввод был 0,25 LTC, и вы хотели отправить 0,15 LTC и заплатить только комиссию 0,01 LTC, ваша транзакция должна иметь два выхода: один для 0,15 LTC и один для 0,09 LTC обратно на адрес, которым вы владеете. так что общая комиссия составляет всего (0,25-(0,15+0,9) = 0,01)

Я столкнулся с fundrawtransactionтем, что сделал это действительно легко.

Похоже, вы создаете транзакцию вручную с помощью createrawtransactionкоманды RPC. createrawtransactionвообще не зависит ни от каких команд или параметров платы за транзакцию. При этом вам нужно будет установить комиссию вручную, создав при необходимости выходные данные сдачи.

Как сказал MeshCollider, комиссия за транзакцию — это разница между суммой входов и суммой выходов транзакции. Поэтому, когда вы используете createrawtransaction, вы должны убедиться, что сумма выходных данных, которые вы создаете, не слишком мала или слишком велика.

Если вы не хотите делать это вручную, вы можете использовать fundrawtransactionкоманду, которая будет выбирать входы из вашего кошелька и создавать выходы сдачи по мере необходимости. fundrawtransactionобрабатывает комиссию за транзакцию.