You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pt/17_4_Using_PSBTs_in_Libwally.md
+20-22Lines changed: 20 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
-
# 16.4: Usando o PSBTs na Libwally
1
+
# 17.4: Usando PSBTs na Libwally
2
2
3
3
> :information_source:**NOTA:** Esta seção foi adicionada recentemente ao curso e é um rascunho inicial que ainda pode estar aguardando revisão.
4
4
5
-
Nós aprendemos tudo sobre as transações do Bitcoin parcialmente assinadas (PSBTs) na seção [§7.1](07_1_Creating_a_Partially_Signed_Bitcoin_Transaction.md) e na [§7.2](07_2_Using_a_Partially_Signed_Bitcoin_Transaction.md), e como vimos na [§7.3: Integrando com Hardware Wallets](/github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/07_3_Integrating_with_Hardware_Wallets.md), uma das nossas principais vantagens é a capacidade de integração com nodes offline, como Hardware Wallets. O HWI permitiu que passassemos comandos para uma carteira de hardware, mas o que a própria carteira usa para gerenciar os PSBTs? Por acaso, podemos usar algo na Libwally, como esta seção irá demonstrar.
5
+
Nós aprendemos tudo sobre as transações parcialmente assinadas no Bitcoin (PSBTs) na seção [§7.1](07_1_Creating_a_Partially_Signed_Bitcoin_Transaction.md) e na [§7.2](07_2_Using_a_Partially_Signed_Bitcoin_Transaction.md), e como vimos na [§7.3: Integrando com Hardware Wallets](/github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/blob/master/07_3_Integrating_with_Hardware_Wallets.md), uma das nossas principais vantagens é a capacidade de integração com nodes offline, como Hardware Wallets. O HWI permitiu que passássemos comandos para uma carteira de hardware, mas o que a própria carteira usa para gerenciar os PSBTs? Por acaso, podemos usar algo na Libwally, como esta seção irá demonstrar.
6
6
7
-
Basicamente, a Libwally tem todas as funcionalidades PSBT, então se há algo que podemos fazer com o `bitcoind`, também podemos fazer usando a Libwally, mesmo se nosso dispositivo estiver offline. O que se iremos fazer agora, é a introdução a um tópico bem complexo.
7
+
Basicamente, a Libwally tem todas as funcionalidades PSBT, então se há algo que podemos fazer com o `bitcoind`, também podemos fazer usando a Libwally, mesmo se nosso dispositivo estiver offline. O que segue é uma introdução básica a um tópico bem complexo.
8
8
9
9
## Convertendo um PSBT
10
10
@@ -14,7 +14,6 @@ Converter um PSBT na estrutura interna da Libwally é incrivelmente fácil, bast
14
14
15
15
No entanto, é um pouco mais difícil de lidar com o resultado, porque a Libwally o converte em uma estrutura `wally_psbt` muito complexa.
16
16
17
-
Here's how it's defined in `/usr/include/wally_psbt.h`:
18
17
Veja como é definido no arquivo `/usr/include/wally_psbt.h`:
19
18
```
20
19
struct wally_psbt {
@@ -77,9 +76,9 @@ struct wally_tx_output {
77
76
```
78
77
Tem muita coisa aí! Embora muito disso deva ser familiar dos capítulos anteriores, é um pouco intimidador ver tudo disposto em estruturas C.
79
78
80
-
## Lendo um PSBT convertido
79
+
## Lendo um PSBT Convertido
81
80
82
-
Obviamente, podemos ler qualquer coisa de uma estrutura PSBT chamando os elementos individuais das várias subestruturas. A seguir, uma breve visão geral que mostra como captar alguns dos elementos.
81
+
Obviamente, podemos ler qualquer coisa de uma estrutura PSBT chamando os elementos individuais das várias subestruturas. A seguir, veja uma breve visão geral que mostra como captar alguns dos elementos.
83
82
84
83
Aqui está um exemplo de recuperação dos valores e os `scriptPubKeys` das entradas:
85
84
```
@@ -111,13 +110,13 @@ Aqui está um exemplo semelhante para as saídas:
111
110
wally_free_string(pubkey_hex);
112
111
}
113
112
```
114
-
Obviamente, há muito mais coisas que poderemos observar nos PSBTs. Na verdade, olhar é o ponto principal de um PSBT: Podemos verificar entradas e saídas de um computador offline.
113
+
Obviamente, há muito mais coisas que poderemos observar nos PSBTs. Na verdade, olhar é o ponto principal de um PSBT: podemos verificar entradas e saídas de um computador offline.
115
114
116
-
> :warning:**AVISO:** Estas funções de leitura são _muito_ rudimentares e não funcionarão corretamente para situações extremamente normais como uma entrada ou saída que ainda está vazia ou que inclui um `non_witness_utxo`. Eles darão um segfault se não forem entregues um PSBT precisamente esperado. Um verdadeiro leitor precisaria ser consideravelmente mais robusto, para cobrir todas as situações possíveis, mas vamos deixar isso para o leitor.
115
+
> :warning:**AVISO:** Estas funções de leitura são _muito_ rudimentares e não funcionarão corretamente para situações extremamente normais como uma entrada ou saída que ainda está vazia ou que inclui um `non_witness_utxo`. Elas darão um segfault se não forem entregues um PSBT precisamente esperado. Um leitor de verdade precisaria ser consideravelmente mais robusto, para cobrir todas as situações possíveis, mas vamos deixar isso como um exercício para o leitor.
117
116
118
-
### Testando nosso leitor PSBT
117
+
### Testando Nosso Leitor PSBT
119
118
120
-
Novamente, o código para este leitor PSBT (extremamente rudimentar e específico) está no [diretório src/](src/16_4_examinepsbt.c).
119
+
Novamente, o código para este leitor PSBT (extremamente rudimentar e específico) está no [diretório src/](src/17_4_examinepsbt.c).
Podemos ver a entrada de satoshis e o `scriptPubKey` claramente listadas nos `inputs` e a nova `scriptPubKey` no `vout` do `tx`.
265
+
Podemos ver a entrada de satoshis e o `scriptPubKey` claramente listadOs nos `inputs` e a nova `scriptPubKey` no `vout` do `tx`.
268
266
269
267
Então, está tudo lá para utilizarmos!
270
268
271
269
## Criando um PSBT
272
270
273
-
Conforme observado no início desta seção, todas as funções necessárias para criar e processar os PSBTs estão disponíveis em Libwally. Na verdade, percorrer todo o processo para fazer isso é complexo o suficiente para estar além do escopo desta seção, mas aqui está um resumo rápido das funções necessárias. Observe que a [documentação](https://wally.readthedocs.io/en/latest/psbt/) está desatualizada para os PSBTs, portanto, precisaremos consultar o `/usr/include/wally_psbt.h` para obter as informações completas.
271
+
Conforme observado no início desta seção, todas as funções necessárias para criar e processar os PSBTs estão disponíveis na Libwally. Na verdade, percorrer todo o processo para fazer isso é tão complexo que foge do escopo desta seção, mas aqui está um resumo rápido das funções necessárias. Observe que a [documentação](https://wally.readthedocs.io/en/latest/psbt/) está desatualizada para os PSBTs, portanto, precisaremos consultar o `/usr/include/wally_psbt.h` para obter as informações completas.
274
272
275
-
Conforme discutido na seção [§7.1](07_1_Creating_a_Partially_Signed_Bitcoin_Transaction.md), existem várias funções envolvidas na criação dos PSBTs.
273
+
Conforme discutido na seção [§7.1](07_1_Creating_a_Partially_Signed_Bitcoin_Transaction.md), existem várias funções envolvidas na criação de PSBTs.
276
274
277
-
### Assumindo o papel de criador
275
+
### Assumindo o Papel de Criador
278
276
279
277
A função de criador tem a tarefa de criar um PSBT com pelo menos uma entrada.
280
278
@@ -289,9 +287,9 @@ Mas o que temos ainda não é um PSBT legal, por falta de entradas. Podemos cri
289
287
lw_response = wally_tx_init_alloc(0,0,1,1,>x);
290
288
lw_response = wally_psbt_set_global_tx(psbt,gtx);
291
289
```
292
-
### Testando nosso PSBT criado
290
+
### Testando nosso PSBT Criado
293
291
294
-
Neste ponto, devemos ter um PSBT vazio, mas funcionando, que pode ser visto compilando e executando [o programa](src/16_4_createemptypsbt.c).
292
+
Neste ponto, devemos ter um PSBT vazio, mas funcionando, que pode ser visto compilando e executando [o programa](src/17_4_createemptypsbt.c).
295
293
```
296
294
$ cc createemptypsbt.c -lwallycore -o createemptypsbt
Assim como na leitura de PSBT, estamos introduzindo o conceito de criação do PSBT e, em seguida, deixando o resto como um exercício para o leitor.
330
328
@@ -367,12 +365,12 @@ A seguir está uma lista aproximada de funções para cada papel. Mais funções
367
365
368
366
* wally_psbt_extract
369
367
370
-
## Resumo: Usando o PSBTs na Libwally
368
+
## Resumo: Usando PSBTs na Libwally
371
369
372
370
Esta seção poderia ser um capítulo inteiro, já que trabalhar com os PSBTs em um nível baixo é um trabalho muito intenso que requer uma manipulação muito mais intensiva de entradas e saídas como foi o caso do [Capítulo 7](07_0_Expanding_Bitcoin_Transactions_PSBTs.md). Ao invés disso, esta seção mostra o básico: como extrair informações de um PSBT e como começar a criar um.
373
371
374
-
> :fire:***Qual é o poder dos PSBTs na Libwally?*** Obviamente, já podemos fazer tudo isso nos `bitcoin-cli`, e é mais simples porque o Bitcoin Core gerencia muito do penoso trabalho. A vantagem de usar o Libwally é que ele pode ser executado offline, então pode ser a Libwally que está do outro lado de um dispositivo de hardware com o qual nosso `bitcoin-cli` está se comunicando com o HWI. Este é, de fato, um dos principais pontos dos PSBTs: ser capaz de manipular transações parcialmente assinadas sem a necessidade de um node completo. A Libwally permite isso.
372
+
> :fire:***Qual é o poder dos PSBTs na Libwally?*** Obviamente, já podemos fazer tudo isso nos `bitcoin-cli`, e é mais simples porque o Bitcoin Core gerencia muito do trabalho penoso. A vantagem de usar a Libwally é que ela pode ser executada offline, então pode ser a Libwally que está do outro lado de um dispositivo de hardware com o qual nosso `bitcoin-cli` está se comunicando com o HWI. Este é, de fato, um dos principais pontos dos PSBTs: ser capaz de manipular transações parcialmente assinadas sem a necessidade de um node completo. A Libwally permite isso.
375
373
376
374
## O Que Vem Depois?
377
375
378
-
Vamos aprender mais sobre "Programando o Bitcoind usando o Libwally" na seção [§16.5: Usando Scripts no Libwally](16_5_Using_Scripts_in_Libwally.md).
376
+
Vamos aprender mais sobre "Programando Bitcoin com Libwally" na seção [§17.5: Usando Scripts na Libwally](17_5_Using_Scripts_in_Libwally.md).
0 commit comments