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/18_4_Accessing_Bitcoind_with_Python.md
+36-36Lines changed: 36 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# 17.4: Acessando o Bitcoind com Python
1
+
# 18.4: Acessando o Bitcoind com Python
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
@@ -13,7 +13,7 @@ Podemos verificar isso executando:
13
13
14
14
Se ele retornar um número de versão (por exemplo, `3.7.3` ou `3.8.3`), então temos o python3 instalado.
15
15
16
-
No entanto, se não tivermos o Python instalado, precisaremos compilá-lo a partir do código-fonte. Podemos consultar como fazer isso, como mostrado no ["Construindo Python a partir da fonte"](17_4_Accessing_Bitcoind_with_Python.md # variant-build-python-from-source) antes de continuarmos.
16
+
No entanto, se não tivermos o Python instalado, precisaremos compilá-lo a partir do código-fonte. Devemos consultar como fazer isso em ["Construindo Python da Fonte"](18_4_Accessing_Bitcoind_with_Python.md#variant-build-python-from-source) antes de continuarmos.
17
17
18
18
### Configurando o BitcoinRPC
19
19
@@ -22,13 +22,13 @@ Quer tenhamos usado um Python existente ou compilado a partir da fonte, agora es
22
22
```
23
23
$ pip3 install python-bitcoinrpc
24
24
```
25
-
Se você não instalamos o `pip`, precisaremos executar o seguinte:
25
+
Se não instalamos o `pip`, precisaremos executar o seguinte:
26
26
```
27
27
$ sudo apt install python3-pip
28
28
```
29
29
Em seguida, vamos repetir o comando `pip3 install python-bitcoinrpc`.
30
30
31
-
### Criar um projeto BitcoinRPC
31
+
### Criando um Projeto BitcoinRPC
32
32
33
33
Geralmente, precisaremos incluir declarações apropriadas do `bitcoinrpc` em nosso projetos Bitcoin usando o Python. O seguinte fornecerá acesso aos comandos baseados em RPC:
34
34
```py
@@ -43,14 +43,14 @@ O `pprint` irá imprimir a resposta `json` do `bitcoind`.
43
43
44
44
O `logging` irá imprimir a chamada que fizemos para o respose do `bitcoind` e o próprio `bitcoind`, o que é útil quando fazemos um monte de chamadas juntas. Se não quisermos um retorno muito grande no terminal, podemos comentar o bloco `logging`.
45
45
46
-
## Construindo a nossa conexão
46
+
## Construindo a Nossa Conexão
47
47
48
48
Agora estamos prontos para começar a interagir com o `bitcoind` estabelecendo uma conexão. Vamos criar um arquivo chamado `btcrpc.py` e digitar o seguinte:
Os argumentos na URL são `<rpc_username>:<rpc_password>@<host_IP_address>:<port>`. Como de costume, o `user` e o `pass` são encontrados no arquivo `~/.bitcoin/bitcoin.conf`, enquanto o `host` é o nosso localhost, e a porta é `18332` para Testnet. O argumento `timeout` é especificado desde o tempo limite dos sockets sob grande demanda na rede principal. Se obtivermos a resposta `socket.timeout: timed out`, precisamos ser pacientes e aumentar o` timeout`.
61
61
62
-
> :link:**MAINNET VS TESTNET:** A porta seria 8332 para uma configuração na Mainnet.
62
+
> :link:**MAINNET VS TESTNET:** A porta seria 8332 para uma configuração na Mainnet.
63
63
64
-
### Fazendo uma chamada RPC
64
+
### Fazendo uma Chamada RPC
65
65
66
66
Se o `rpc_client` for inicializado com sucesso, seremos capazes de enviar comandos RPC para o nosso node do Bitcoin.
Neste exemplo, usamos comando `getnewaddress` junto com um argumento: o rótulo `Learning-Bitcoin-from-the-Command-Line`.
348
+
Neste exemplo, usamos o comando `getnewaddress` junto com um argumento: o rótulo `Learning-Bitcoin-from-the-Command-Line`.
349
349
350
-
## Enviando uma transação
350
+
## Enviando uma Transação
351
351
352
352
A criação de uma transação no Python 3 requer a combinação de alguns dos exemplos anteriores, de criação de endereços e de recuperação de UTXOs, com alguns comandos novos do RPC para criar, assinar e enviar uma transação, da mesma forma que fizemos anteriormente na linha de comando.
353
353
@@ -359,13 +359,13 @@ Existem cinco etapas:
359
359
3. Assinar a transação bruta com a chave privada do UTXO;
360
360
4. Transmitir a transação na Testnet do bitcoin.
361
361
362
-
### 1. Selecionando o UTXO e definindo os detalhes da transação
362
+
### 1. Selecionando o UTXO e Definindo os Detalhes da Transação
363
363
364
364
No trecho de código a seguir, primeiro selecionaremos o UTXO que gostaríamos de gastar. Em seguida, iremos obter o endereço, id da transação e o índice vetorial da saída.
365
365
366
366
```py
367
367
utxos = rpc_client.listunspent()
368
-
selected_utxo = utxos[0] #again, selecting the first utxo here
368
+
selected_utxo = utxos[0] #novamente, selecionando o primeiro utxo aqui
369
369
utxo_address = selected_utxo['address']
370
370
utxo_txid = selected_utxo['txid']
371
371
utxo_vout = selected_utxo['vout']
@@ -375,17 +375,17 @@ Em seguida, também recuperamos o endereço do destinatário para o qual desejam
375
375
376
376
```py
377
377
recipient_address = new_address
378
-
recipient_amt = utxo_amt /2#sending half coins to recipient
379
-
miner_fee =0.00000300#choose appropriate fee based on your tx size
378
+
recipient_amt = utxo_amt /2#enviando metade das moedas para o recebedor
379
+
miner_fee =0.00000300#escolha uma taxa apropriada baseada no tamanho da sua transação
> :warning:**AVISO:** Obviamente, um programa real faria escolhas mais sofisticadas sobre qual UTXO usar, o que fazer com os fundos e que taxa de mineração pagar.
384
+
> :warning:**AVISO:** Obviamente, um programa real faria escolhas mais sofisticadas sobre qual UTXO usar, o que fazer com os fundos e qual taxa de mineração pagar.
385
385
386
-
### 2. Criando uma transação bruta
386
+
### 2. Criando uma Transação Bruta
387
387
388
-
Agora temos todas as informações para enviar uma transação, mas antes de enviá-la, devemos criar uma transação.
388
+
Agora temos todas as informações para enviar uma transação, mas antes de enviá-la, devemos criá-la.
O `txids_vouts` é, portanto, uma lista e o `address_amts` é um dicionário python, para combinar com o formato de `createrawtransaction`.
399
+
O `txids_vouts` é, portanto, uma lista, e o `address_amts` é um dicionário python, para combinar com o formato de `createrawtransaction`.
400
400
401
401
Se quisermos ver mais sobre os detalhes da transação que criamos, podemos usar `decoderawtransaction`, tanto no Python 3 quanto com `bitcoin-cli`.
402
402
403
-
### 3. Assinar transação bruta
403
+
### 3. Assinar Transação Bruta
404
404
405
-
Assinar uma transação geralmente é a parte mais complicada do envio de uma transação, quando olhamos a parte de programação. Aqui recuperamos uma chave privada de um endereço com `dumpprivkey` e a coloca em uma matriz:
405
+
Assinar uma transação geralmente é a parte mais complicada do envio de uma transação, quando olhamos a parte de programação. Aqui recuperamos uma chave privada de um endereço com `dumpprivkey` e a colocamos em uma matriz:
406
406
```py
407
407
address_priv_key = [] # list of priv keys of each utxo
[Este código](src/17_4_sendtx.py) está cheio de instruções com `print` para demonstrar todos os dados disponíveis em cada momento:
425
+
[Este código](src/18_4_sendtx.py) está cheio de instruções com `print` para demonstrar todos os dados disponíveis a cada momento:
426
426
```
427
427
$ python3 sendtx.py
428
428
Creating a Transaction
@@ -457,34 +457,34 @@ TXID of sent transaction: 187f8baa222f9f37841d966b6bad59b8131cfacca861cbe9bfc86
457
457
458
458
## Resumo: Acessando o Bitcoind com Python
459
459
460
-
Acessar Bitcoind com Python é muito fácil usando uma biblioteca `python-bitcoinrpc`. A primeira coisa a se fazer, é estabelecer uma conexão com nossa instância `bitcoind`, então podemos fazer todas as chamadas API bitcoin conforme descrito nos documentos do Bitcoin Core. Isso torna mais fácil criar programas pequenos ou grandes para gerenciar nosso próprio node, verificando saldos ou criando aplicações interessantes, conforme acessamos todo o poder do `bitcoin-cli`.
460
+
Acessar Bitcoind com Python é muito fácil usando a biblioteca `python-bitcoinrpc`. A primeira coisa a se fazer é estabelecer uma conexão com nossa instância `bitcoind`, então podemos fazer todas as chamadas da API do Bitcoin conforme descrito nos documentos do Bitcoin Core. Isso torna mais fácil criar programas pequenos ou grandes para gerenciar nosso próprio node, verificando saldos ou criando aplicações interessantes, conforme acessamos todo o poder do `bitcoin-cli`.
461
461
462
462
## O Que Vem Depois?
463
463
464
-
Vamos aprender mais sobre "Conversando com o Bitcoind com Outras Linguagens" na seção [§17.5: Acessando o Bitcoind com Rust](17_5_Accessing_Bitcoind_with_Rust.md).
464
+
Vamos aprender mais sobre "Conversando com o Bitcoind com Outras Linguagens" na seção [§18.5: Acessando o Bitcoind com Rust](18_5_Accessing_Bitcoind_with_Rust.md).
465
465
466
-
## Variante: Construindo o Python a partir do código-fonte
466
+
## Variante: Construindo Python da Fonte
467
467
468
-
Se precisarmos instalar o Python 3 a partir do código-fonte, precisaremos seguir estas instruções e continuar da parte ["Criando um projeto BitcoinRPC"](17_4_Accessing_Bitcoind_with_Python.md#Creating-a-bitcoinrpc-project).
468
+
Se precisarmos instalar o Python 3 a partir do código-fonte, precisaremos seguir estas instruções, e então continuar com ["Criando um projeto BitcoinRPC"](18_4_Accessing_Bitcoind_with_Python.md#creating-a-bitcoinrpc-project).
0 commit comments