In che modo tezos-client calcola una commissione di transazione?
-
-
Puoi anche dare un'occhiata a questo 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 risposta
- voti
-
- 2019-02-14
Il calcolo dellatariffa segue laformula .
L'unica cosa sottile qui è che latariffa stessapuòinfluenzare la dimensione dell'operazionein binario. Questo di solitonon haimportanza,mapergestireil casogenerale,il client attualmenteesegue un ciclo:
- Inizia con labozza dell'operazione con la commissioneimpostata su zero (coni relativigas_limite storage_limit sceltiin modo appropriato).
- Misura la dimensione operativain formatobinarioe calcola latariffa richiestain base allaformula. (Se questa è laprima/unica operazione di unbatch,aggiungi overheadfisso per unbatch di operazioni anche qui.)
- Se latariffanell'operazione è abbastanzagrande,abbiamofinito. Altrimenti,aggiorna latariffanell'operazionee vai alpunto 2.
Ciò accadein ml .
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.
-
Non sono sicuro che utilizzi questo codice.Invece,penso che chiamiilnodotramite RPC,questo è spiegatonelpost delblog citato dallamia risposta.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
-
Gli RPC vengonoeffettivamente utilizzatiper stimare l'utilizzo digase stoccaggioe altro ancora,manonesiste un RPCperil calcolo dellatariffaminima.Viene utilizzatoil codice che ho collegato.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
-
(Per vedere ciò che accade,prova `tezos-client -l` senza specificare unatariffa,comenelpost delblog. Noterai che` run_operation` è chiamata contariffa 0,e quindi `preapply` èmisteriosamente chiamata con la correttatariffaminima,non ancora restituita da alcun RPC,ma calcolata dal client dopo `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 sì,pensavo sitrattasse digase bruciature.Eliminerò lamia risposta.Oh yes, I thought it was about gas and burn. I will delete my answer.
- 0
- 2019-02-14
- lefessan
Quando siesegue unatransazione come
tezos-client transfer 1 from alice to bob
,come calcolail cliente la commissione ditransazione?