Как tezos-client рассчитывает комиссию за транзакцию?
-
-
Вы также можете взглянуть на этот https://tezos.stackexchange.com/q/106/118You can also have a look at this one https://tezos.stackexchange.com/q/106/118
- 0
- 2019-02-14
- Ezy
-
1 ответ
- голосов
-
- 2019-02-14
Расчет комиссии осуществляется следующим образом: формула .
Единственная тонкость здесь заключается в том,что сама комиссия может влиять на размер операции в двоичном формате. Обычно это не имеет значения,но для обработки общего случая клиент в настоящее время выполняет цикл:
- Начните с черновой операции с нулевой комиссией (с соответствующими значениямиgas_limit и storage_limit).
- Измерьте размер операции в двоичном формате и вычислите требуемую комиссию по формуле. (Если это первая/единственная операция в пакете,добавьте фиксированные накладные расходы для пакета операций и здесь.)
- Если плата за операцию достаточно высока,мы закончили. В противном случае обновите плату в операции и перейдите к пункту 2.
The fee computation follows the formula.
The only subtle thing here is that the fee itself can affect the size of the operation in binary. This usually doesn't matter, but to handle the general case, the client currently loops:
- Start with the draft op with fee set to zero (with its gas_limit and storage_limit chosen appropriately).
- Measure the op size in binary and compute the required fee according to the formula. (If this is the first/only op in a batch, add the fixed overhead for a batch of operations here too.)
- If the fee in the op is big enough, we're done. Otherwise, update the fee in the op, and go to #2.
This happens in patch_fee in injection.ml.
-
Я не уверен,что он использует этот код.Вместо этого я думаю,что он вызывает узел через RPC,это объясняется в сообщении блога,цитируемом в моем ответе.I am not sure it uses this code. Instead, I think it calls the node through RPCs, this is explained in the blog post cited by my reply.
- 0
- 2019-02-14
- lefessan
-
RPC действительно используются для оценки использования газа,хранилища и многого другого,но нет RPC для расчета минимальной платы.Используется связанный мной код.RPCs are indeed used to estimate gas and storage usage, and more, but there is no RPC for calculating the minimum fee. The code I linked is used.
- 0
- 2019-02-14
- Tom
-
(Чтобы увидеть,как это происходит,попробуйте `tezos-client -l` без указания комиссии,как в сообщении в блоге. Вы заметите,что run_operation вызывается с нулевой комиссией,а затем`preapply` таинственным образом вызывается с правильнымминимальная комиссия,которая еще не возвращается ни одним RPC,но рассчитывается клиентом после `run_operation`.)(To see this happening, try `tezos-client -l` without specifying a fee, as in the blog post. You will notice that the `run_operation` is called with 0 fee, and then `preapply` is mysteriously called with the correct minimal fee, not returned yet by any RPC, but calculated by the client after `run_operation`.)
- 1
- 2019-02-14
- Tom
-
О да,я думал,что дело в газе и ожоге.Я удалю свой ответ.Oh yes, I thought it was about gas and burn. I will delete my answer.
- 0
- 2019-02-14
- lefessan
При выполнении транзакции,такой как
tezos-client transfer 1 from alice to bob
,как клиент вычисляет комиссию за транзакцию?