Comment créer une transaction
3 réponses
- votes
-
- 2019-02-07
Ilexisteplusieurs référencesen ligne quifournissent dumatérielpour comprendre les étapes à suivre. Vouspouvez vérifier Ce ou que . Certains éléments sont égalementfournis dans cet autre Question
Fondamentalement,les étapes sont
- obtenir des dépendances
- Branch hachage:
/chaînes/principaux/blocs/tête/hachage
- Compteur:
/chaînes/principaux/blocs/tête/contexte/contrats/& lt; source_pkh >/compteur
- Branch hachage:
- protocole hachage:
/protocoles
- Forge Fonctionnement (
/Chaînes/Main/Main/Helpers/Forge/Opérations/Opérations ) Notez s'ilestfacile de reproduire cette logique à l'extérieur du clientnatif,bien que
- signes d'octets (
Tezos-Client signent des octets
) - Fonctionnement de lapriorité (
/Chaînes/Main/Blocs/Tête/Aidateurs/Première/Opérations/)
- Décodez la signature auformat hexadécimal
- Injectez lefonctionnement (
/inject/opération
)
There are multiple references online which provide material to understand the steps involved in this. You can check this or that. Some elements are also provided in this other question
Basically the steps are
- get dependencies
- branch hash:
/chains/main/blocks/head/hash
- counter:
/chains/main/blocks/head/context/contracts/<source_pkh>/counter
- protocol hash:
/protocols
- branch hash:
- forge operation (
/chains/main/blocks/head/helpers/forge/operations
) Note sure if it's easy to replicate this logic outside from the native client though - sign bytes (
tezos-client sign bytes
) - preapply operation (
/chains/main/blocks/head/helpers/preapply/operations/)
- decode signature to hexadecimal format
- inject operation (
/inject/operation
)
-
- 2019-02-07
helpers/scripts/run_operation
est utilepour simuler une opération sans la signature (vouspouvez utiliser zéro octetspour la signature) afin d'estimer lesexigences degazet de stockage.Vous verreztezos-client -l
paramètregas_limit and Storage_limit vers les valeursmaximalesici,puisen utilisant le résultatpour définir legas_limitet STANDS_LIMIT (sous réserve de stockage_limitemaximum de l'utilisateur,appelé "-Bur-Cap ").Pour savoir comment l'opérationest codéeen binaire,vouspouvez voir
tezos-client describe unsigned operation
.helpers/scripts/run_operation
is useful to simulate an operation without signing it (you may use zero bytes for the signature), in order to estimate the gas and storage requirements. You will seetezos-client -l
setting gas_limit and storage_limit to the maximum values here, and then using the result to set the actual gas_limit and storage_limit (subject to the user's maximum acceptable storage_limit, called "--burn-cap").To learn how the operation is encoded in binary, you can see
tezos-client describe unsigned operation
.-
J'ai remarqué quema réponsen'expliquepaspourquoi leprapplyestnécessaire.Pourquoipas seulement run_opératoire?I noticed my answer does not explain why preapply is needed. Why not just run_operation?
- 0
- 2019-03-02
- Tom
-
- 2019-02-07
Leplus simple vérifierait Comment E.G.
EZTZ
implémente lestransferts .puis voir comment les opérations detransfert sontforgées ici .
Etenfin comment l'opérationforgéeestinjectée ici .
Par l'apparence de celui-ci,semble être comme EzTz's
Forge
esteffectué à distancepar/Aide/Forge/Opérations
.Easiest would be checking out how e.g.
eztz
implements transfers.Then see how the transfer operations is forged here.
And finally how the forged operation is injected here.
By the looks of it, seems like eztz's
forge
is done remotely by/helpers/forge/operations
.-
Enfait,Eztzforge localement,maispour lemoment,nous utilisons leforge à distance commemoyen de vérifier que ce quenous avonsforgé des correspondances localement.À l'avenir,nous supprimerons le chèque deforge distant :-)Actually eztz forges locally, but for the time being we use the remote forge as a way to double check that what we forged locally matches. In future, we will remove the remote forge check :-)
- 1
- 2019-02-08
- Stephen Andrews
J'essaie de comprendre les différentes étapesimpliquées dans la création d'une opération detransaction.
Tezos-client -l
Affiche un certainnombre d'appels RPC,parmieux:Qu'est-ce que
run_operation
etpreapply
faitet pourquoi sont-ils les deuxnécessaires?En outre,l'opération àinjecterest codéebinaire,quel codageest utilisé?(Onpeut obtenir le codage à l'aide du
/chains/main/blocks/head/helpers/forge/operations
,maisje voudrais coder lefonctionnementmoi-même).