Como criar uma transação
3 respostas
- votos
-
- 2019-02-07
Existem várias referências on-line quefornecemmaterialparaentender asetapasenvolvidasnisso. Vocêpode verificar ou que . Algunselementostambém sãofornecidosneste outro pergunta
.Basicamente asetapas são
- .
- obter dependências
- hash de ramificação:
/cadeias/main/blocks/head/hash
- contador:
/cadeias/main/blocos/cabeça/contexto/contratos/& lt; source_pkh >/counter
- hash de ramificação:
- protocolo hash:
/protocolos
- Forge Operation (
/Correntes/Main/Blocks/Head/Ajudados/Forge/Operações
) Observe que se éfácil replicaresta lógicafora do clientenativo,embora - bytes de sinal (
bytes de sinal de Tezos-Cliente
) - reaplique a operação (
/cadeias/blocos/blocos/cabeça/ajudantes/reaplicar/operações/)
- decodifica a assinatura doformato hexadecimal
- injetar operação (
/injetar/operação
)
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
ajudantes/scripts/run_operation
é útilpara simular uma operação sem assiná-lo (vocêpode usar zerobytespara a assinatura),afim deestimar os requisitos degáse armazenamento.Você veráTezos-Cliente -L Configuração Gas_limite Storage_limitpara os valoresmáximos aquie,em seguida,usando o resultadopara definir o real Gas_limite Storage_limit (sujeito aomáximo storage_limit do usuário,chamado "-Burn-Cap "). Para saber como a operação é codificadaem binário,vocêpode ver
Tezos-Cliente descrever operaçãonão assinada
.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
.-
Notei queminha respostanãoexplicapor que a reprepreso énecessária.Por quenão apenas run_operation?I noticed my answer does not explain why preapply is needed. Why not just run_operation?
- 0
- 2019-03-02
- Tom
-
- 2019-02-07
maisfácilestaria checando comoe.
EZTZ
Implementa Transferências .Então veja como as operações detransferência sãoforjadas aqui >.
e finalmente como a operaçãoforjada éinjetada Aqui >.
Pela aparência,parece que o EZTZ's
Forge
éfeito remotamentepor/Ajuda/Forge/Operations . 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
.-
Na verdade,a Eztzforja localmente,masporenquanto usamos o Forge remoto como umamaneira de verificarnovamente o queforjamos localmente correspondências.Nofuturo,vamos remover o cheque deforja remoto :-)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
Estoutentandoentender os diferentespassosenvolvidosna criação de uma operação detransação.
Tezos-client -l
Mostra uma série de chamadas RPC,entreelas:O quefazer
run_operation
epreapply
e por que os dois sãonecessários?Além disso,a operação a serinjetada é codificadabinária,que codificação é usada?(Pode-se obter a codificação usando o
/chains/main/blocks/head/helpers/forge/operations
,maseugostaria de codificar a operaçãoeumesmo).