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_5_Accessing_Bitcoind_with_Rust.md
+33-33Lines changed: 33 additions & 33 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.5: Acessando o Bitcoind com Rust
1
+
# 18.5: Acessando o Bitcoind com Rust
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
@@ -23,9 +23,9 @@ $ source $HOME/.cargo/env
23
23
24
24
### Configurando o `bitcoincore-rpc`
25
25
26
-
Para a maioria das linguagens de programação, precisamos instalar uma biblioteca Bitcoin RPC antes de criar nosso primeiro projeto, mas aqui iremos fazer como parte da criação do nosso projeto.
26
+
Para a maioria das linguagens de programação, precisamos instalar uma biblioteca Bitcoin RPC antes de criar nosso primeiro projeto, mas aqui iremos fazê-lo como parte da criação do nosso projeto.
27
27
28
-
### Criando um projeto`bitcoincore-rpc`
28
+
### Criando um Projeto`bitcoincore-rpc`
29
29
30
30
Podemos criar um novo projeto usando `cargo new btc_test`:
31
31
@@ -49,7 +49,7 @@ Hello, world!
49
49
> :information_source:**NOTA:** se encontrarmos o erro `linker‘ cc ’not found`, teremos que instalar um
50
50
Compilador C. Se estivermos no Linux, podemos instalar com as [ferramentas de desenvolvimento](https://www.ostechnix.com/install-development-tools-linux/).
51
51
52
-
Para acessar o crate (biblioteca) `bitcoincore-rpc`, devemos adicioná-la ao nosso arquivo `Cargo.toml` na seção `dependencies`:
52
+
Para acessar o crate (biblioteca) `bitcoincore-rpc`, devemos adicioná-lo ao nosso arquivo `Cargo.toml` na seção `dependencies`:
53
53
54
54
```rust
55
55
[dependencies]
@@ -70,12 +70,12 @@ $ cargo run
70
70
Hello, world!
71
71
```
72
72
73
-
Quando estiver usando o `bitcoin-rpc`, normalmente precisaremos incluir o seguinte:
73
+
Quando estivermos usando o `bitcoin-rpc`, normalmente precisaremos incluir o seguinte:
74
74
```
75
75
use bitcoincore_rpc::{Auth, Client, RpcApi};
76
76
```
77
77
78
-
## Construindo nossa conexão
78
+
## Construindo Nossa Conexão
79
79
80
80
Para criarmos um `RPC client` do Bitcoin, vamos modificar o `src/main.rs`:
81
81
@@ -94,16 +94,16 @@ fn main() {
94
94
95
95
Como de costume, vamos nos certificar de inserir nosso nome de usuário e senha corretos no `~/.bitcoin/bitcoin.conf`. Aqui, eles serão usados como argumentos para `Auth :: UserPass`.
96
96
97
-
> :link:**TESTNET vs MAINNET:** E, como de costume, vamos usar a porta 8332 para a Mainnet.
97
+
> :link:**TESTNET vs MAINNET:** E, como de costume, use a porta 8332 para a Mainnet.
98
98
99
-
Quando terminar, também deve fechar nossa conexão:
99
+
Quando terminarmos, também devemos fechar nossa conexão:
100
100
```rust
101
101
let_=rpc.stop().unwrap();
102
102
```
103
103
104
104
O `cargo run` deve compilar e executar o exemplo com sucesso com um aviso `warning: unused variable: rpc`
105
105
106
-
### Fazendo uma chamada RPC
106
+
### Fazendo uma Chamada RPC
107
107
108
108
As chamadas RPC são feitas usando o `rpc Client` que criamos:
Geralmente, as palavras na chamada RPC são separadas por `_`s. Uma lista completa está disponível na [documentação do crate](https://crates.io/crates/bitcoincore-rpc).
115
115
116
-
### Fazendo uma chamada RPC com argumentos
116
+
### Fazendo uma Chamada RPC com Argumentos
117
117
118
118
O envio de uma chamada RPC com argumentos usando Rust requer apenas o conhecimento de como a função é apresentada. Por exemplo, a função `get_block` é definida da seguinte forma na [documentação](https://docs.rs/bitcoincore-rpc/0.11.0/bitcoincore_rpc/trait.RpcApi.html#method.get_block):
119
119
@@ -130,11 +130,11 @@ Aqui está o código completo para recuperar um hash de bloco, transformando-o e
130
130
println!("{:?}", block);
131
131
```
132
132
133
-
> **NOTA:** Outra chamada possível que consideramos para esta seção é a `get_address_info`, mas, infelizmente, no momento em que este livro foi escrito, a função `bitcoincore-rpc` não funciona com versões recentes do Bitcoin Core devido ao crate não abordar as mais recentes mudanças de API no Bitcoin Core. Esperamos que isso seja resolvido no próximo lançamento do crate, mas enquanto isso, damos essa atenção ao programador.
133
+
> **NOTA:** Outra chamada possível que consideramos para esta seção é a `get_address_info`, mas, infelizmente, no momento de escrita, a função `bitcoincore-rpc` não funciona com versões recentes do Bitcoin Core devido ao crate não abordar as mais recentes mudanças de API no Bitcoin Core. Esperamos que isso seja resolvido no próximo lançamento do crate, mas, enquanto issoprogramador, _cuidado_.
134
134
135
-
### Executando nosso código
135
+
### Executando Nosso Código
136
136
137
-
Podemos acessar o [código src](src/17_5_main-getinfo.rs) e executá-lo. Infelizmente, a informação do "Block" sairá um pouco feia porque este exemplo não inclui uma biblioteca para embelezá-la.
137
+
Podemos acessar o [código src](src/18_5_main-getinfo.rs) e executá-lo. Infelizmente, a informação do "Block" sairá um pouco feia porque este exemplo não inclui uma biblioteca para embelezá-la.
Podemos procurar fundos sem argumentos opcionais usando a função `get_balance`:
160
160
@@ -167,12 +167,12 @@ Conforme mostrado, a função `as_btc()` ajuda a gerar o saldo em um formato leg
167
167
Balance: 3433.71692741 BTC
168
168
```
169
169
170
-
## Criando um endereço
170
+
## Criando um Endereço
171
171
172
172
A criação de um endereço demonstra como fazer uma chamada RPC com vários argumentos opcionais especificados (por exemplo, um rótulo e um tipo de endereço).
Isso exigirá trazer mais estruturas para o escopo:
221
+
Isso nos exigirá trazer mais estruturas para o escopo:
222
222
223
223
```rust
224
224
usebitcoincore_rpc::bitcoin::{Address, Amount};
225
225
```
226
226
227
227
Podemos observar que estamos passando cinco variáveis ao comando `list_unspent`. Os primeiros quatro (`minconf`,` maxconf`, `address` e `include_unsafe`) não são usados aqui. O quinto é o `query_options`, que não usamos antes, mas temos algumas opções de filtragem poderosas, incluindo a capacidade de olhar apenas para os UTXOs com um certo valor, mínimo ou máximo.
228
228
229
-
### 2. Preenchendo as variáveis
229
+
### 2. Preenchendo as Variáveis
230
230
231
231
Para começar a preencher as variáveis que precisaremos para criar uma nova transação, criamos a entrada do `txid` e do `vout` ao UTXO que selecionamos:
232
232
```rust
@@ -237,35 +237,35 @@ let selected_utxos = json::CreateRawTransactionInput {
237
237
};
238
238
```
239
239
Em seguida, podemos calcular a quantia que vamos gastar subtraindo uma taxa de mineração dos fundos no UTXO:
240
-
```
241
-
// send all bitcoin in the UTXO except a minor value which will be paid to miners
240
+
```rust
241
+
//enviar todo o bitcoin no UTXO exceto um valor pequeno que será pago aos mineradores
O `bitcoincore-rpc` é um crate simples e robusto que permitirá que possamos interagir com o Bitcoin RPC usando Rust. No entanto, no momento em que este livro foi escrito, ele ficou para trás no Bitcoin Core, o que pode causar alguns problemas de uso.
358
+
O `bitcoincore-rpc` é um crate simples e robusto que nos permitirá interagir com o Bitcoin RPC usando Rust. No entanto, no momento em que este livro foi escrito, ele ficou para trás no Bitcoin Core, o que pode causar alguns problemas de uso.
359
359
360
360
## O Que Vem Depois?
361
361
362
-
Vamos aprender mais sobre "Conversando com o Bitcoind com Outras Linguagens" na seção [§17.6: Acessando o Bitcoind com Swift](17_6_Accessing_Bitcoind_with_Swift.md).
362
+
Vamos aprender mais sobre "Conversando com o Bitcoind com Outras Linguagens" na seção [§18.6: Acessando o Bitcoind com Swift](18_6_Accessing_Bitcoind_with_Swift.md).
0 commit comments