mirror of
				https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
				synced 2025-10-31 02:17:24 +00:00 
			
		
		
		
	Merge pull request #493 from namcios/portuguese-translation
PT: Fix links to `src` files
This commit is contained in:
		
						commit
						c3be3b7825
					
				| @ -397,7 +397,7 @@ alias btcunspent="bitcoin-cli listunspent | jq -r '.[] | { txid: .txid, vout: .v | ||||
| 
 | ||||
| ## Executando o Script de Taxa de Transação | ||||
| 
 | ||||
| O [Script de Cálculo de Taxa](src/04_2_i_txfee-calc.sh) está disponível no diretório `src/`. Você pode baixá-lo e salvá-lo como ```txfee-calc.sh```. | ||||
| O [Script de Cálculo de Taxa](../src/04_2_i_txfee-calc.sh) está disponível no diretório `src/`. Você pode baixá-lo e salvá-lo como ```txfee-calc.sh```. | ||||
| 
 | ||||
| > :warning: **ATENÇÃO:** Este script não foi verificado extensivamente. Se for usá-lo para verificar as taxas de transação reais, só deve fazê-lo depois de fazer uma verificação pessoal dos valores. | ||||
| 
 | ||||
|  | ||||
| @ -68,7 +68,7 @@ Para completar nossa serialização, traduzimos o código hexadecimal em binári | ||||
| 
 | ||||
| ## Executando o Script de Conversão de Inteiros | ||||
| 
 | ||||
| Um script completo para alterar um número inteiro entre -2147483647 e 2147483647 para uma representação de magnitude assinada do tipo _little-endian_ em hexadecimal pode ser encontrado no [diretório de código src](src/10_2_integer2lehex.sh). Podemos baixar o ```integeer2lehex.sh```. | ||||
| Um script completo para alterar um número inteiro entre -2147483647 e 2147483647 para uma representação de magnitude assinada do tipo _little-endian_ em hexadecimal pode ser encontrado no [diretório de código src](../src/10_2_integer2lehex.sh). Podemos baixar o ```integeer2lehex.sh```. | ||||
| 
 | ||||
| > :warning: **AVISO:** Este script não foi verificado de forma consistente. Se formos utilizá-lo para criar scripts de bloqueio reais, precisamos nos certificar de verificar e testar os resultados. | ||||
| 
 | ||||
|  | ||||
| @ -26,7 +26,7 @@ $ sudo apt-get install git | ||||
| $ git clone https://github.com/gitmarek/libbitcoinrpc | ||||
| ``` | ||||
| 
 | ||||
| > :warning: **ATENÇÃO** Uma alteração no RPC "signrawtransaction" causou uma assinatura com ``libbitcoinrpc`` para o segfault no Bitcoin 0.17 ou superior. O [Pull Request foi submetido](https://github.com/gitmarek/libbitcoinrpc/pull/1/commits) para resolver o problema, mas se ainda não tiver sido feito o merge,  podemos simplesmente fazer uma simples mudança no código-fonte para ``src/bitcoinrpc_method.c`` antes de compilarmos. | ||||
| > :warning: **ATENÇÃO** Uma alteração no RPC "signrawtransaction" causou uma assinatura com ``libbitcoinrpc`` para o segfault no Bitcoin 0.17 ou superior. O [Pull Request foi submetido](https://github.com/gitmarek/libbitcoinrpc/pull/1/commits) para resolver o problema, mas se ainda não tiver sido feito o merge, podemos simplesmente fazer uma simples mudança no código-fonte para ``src/bitcoinrpc_method.c`` antes de compilarmos. | ||||
| 
 | ||||
| ### Compilando o libbitcoinrpc | ||||
| 
 | ||||
| @ -155,7 +155,7 @@ bitcoinrpc_global_cleanup(); | ||||
| 
 | ||||
| ### Testando o Código de Teste | ||||
| 
 | ||||
| O código de teste pode ser encontrado [no diretório src com o nome 15_1_testbitcoin.c](src/15_1_testbitcoin.c). Vamos fazer o download para a nossa máquina TestNet e depois inserir a senha correta do RPC (e alterar o usuário RPC se não tivermos criado o servidor com StandUp). | ||||
| O código de teste pode ser encontrado [no diretório src com o nome 16_1_testbitcoin.c](../src/16_1_testbitcoin.c). Vamos fazer o download para a nossa máquina TestNet e depois inserir a senha correta do RPC (e alterar o usuário RPC se não tivermos criado o servidor com StandUp). | ||||
| 
 | ||||
| Podemos compilar e executar o código da seguinte maneira: | ||||
| ``` | ||||
| @ -223,7 +223,7 @@ printf("Block Count: %d\n",blocks); | ||||
| 
 | ||||
| ### Testando o Código de Informação | ||||
| 
 | ||||
| Vamos recuperar o código de teste que está no [diretório src](15_1_GetMiningInfo.c). | ||||
| Vamos recuperar o código de teste que está no [diretório src](../src/16_1_getmininginfo.c). | ||||
| ``` | ||||
| $ cc getmininginfo.c -lbitcoinrpc -ljansson -o getmininginfo | ||||
| $ ./getmininginfo  | ||||
|  | ||||
| @ -330,7 +330,7 @@ O código inteiro, com um _pouco_ mais verificação de erros, está disponível | ||||
| 
 | ||||
| ## Testando o Código | ||||
| 
 | ||||
| O código completo pode ser encontrado no [diretório src/](src/16_2_sendtoaddress.c). | ||||
| O código completo pode ser encontrado no [diretório src/](../src/16_2_sendtoaddress.c). | ||||
| 
 | ||||
| Compile-o como de costume: | ||||
| ``` | ||||
|  | ||||
| @ -121,7 +121,7 @@ Claro, quando terminar o processo, precisamos limpar tudo: | ||||
| 
 | ||||
| ### Testando o Código de Notificação | ||||
| 
 | ||||
| O código-fonte completo está no [diretório src/](src/15_3_chainlistener.c) como de costume. Precisamos compilá-lo: | ||||
| O código-fonte completo está no [diretório src/](../src/16_3_chainlistener.c) como de costume. Precisamos compilá-lo: | ||||
| ``` | ||||
| $ cc -o chainlistener chainlistener.c -I/usr/local/include -L/usr/local/lib -lzmq -lczmq | ||||
| ``` | ||||
|  | ||||
| @ -129,7 +129,7 @@ Em ambos os casos, o argumento é para flags, mas atualmente está definido como | ||||
| 
 | ||||
| ## Testando um Programa de Teste da Libwally | ||||
| 
 | ||||
| O diretório src contém o arquivo [testwally.c](src/17_1_testwally.c), que apenas mostra como funcionam as funções de inicialização e de limpeza. | ||||
| O diretório src contém o arquivo [testwally.c](../src/17_1_testwally.c), que apenas mostra como funcionam as funções de inicialização e de limpeza. | ||||
| 
 | ||||
| Podemos compilá-lo da seguinte maneira: | ||||
| ``` | ||||
|  | ||||
| @ -82,7 +82,7 @@ Se dizermos tudo certo, devemos obter uma seed de 64 bytes. (Essa é a variável | ||||
| 
 | ||||
| ## Testando o Código Mnemônico | ||||
| 
 | ||||
| O código completo para gerar entropia, gerar um mnemônico BIP39, validar o mnemônico e gerar uma seed pode ser encontrado no [diretório src/](src/17_2_genmnemonic.c). Podemos fazer o download e compilar: | ||||
| O código completo para gerar entropia, gerar um mnemônico BIP39, validar o mnemônico e gerar uma seed pode ser encontrado no [diretório src/](../src/17_2_genmnemonic.c). Podemos fazer o download e compilar: | ||||
| ``` | ||||
| $ cc genmnemonic.c -lwallycore -lsodium -o genmnemonic | ||||
| ``` | ||||
|  | ||||
| @ -115,7 +115,7 @@ Há também uma função `wally_bip32_key_to_address`, que pode ser usada para g | ||||
| 
 | ||||
| ## Testando o Código HD | ||||
| 
 | ||||
| O código para esses exemplos HD pode, como de costume, ser encontrado no [diretório src/](src/17_3_genhd.c). | ||||
| O código para esses exemplos HD pode, como de costume, ser encontrado no [diretório src/](../src/17_3_genhd.c). | ||||
| 
 | ||||
| Podemos compilá-lo e testá-lo: | ||||
| ``` | ||||
|  | ||||
| @ -116,7 +116,7 @@ Obviamente, há muito mais coisas que poderemos observar nos PSBTs. Na verdade, | ||||
| 
 | ||||
| ### Testando Nosso Leitor PSBT | ||||
|   | ||||
| Novamente, o código para este leitor PSBT (extremamente rudimentar e específico) está no [diretório src/](src/17_4_examinepsbt.c). | ||||
| Novamente, o código para este leitor PSBT (extremamente rudimentar e específico) está no [diretório src/](../src/17_4_examinepsbt.c). | ||||
| 
 | ||||
| Podemos compilá-lo normalmente: | ||||
| ``` | ||||
| @ -289,7 +289,7 @@ Mas o que temos ainda não é um PSBT legal, por falta de entradas. Podemos cri | ||||
| ``` | ||||
| ### Testando nosso PSBT Criado | ||||
| 
 | ||||
| Neste ponto, devemos ter um PSBT vazio, mas funcionando, que pode ser visto compilando e executando [o programa](src/17_4_createemptypsbt.c). | ||||
| Neste ponto, devemos ter um PSBT vazio, mas funcionando, que pode ser visto compilando e executando [o programa](../src/17_4_createemptypsbt.c). | ||||
| ``` | ||||
| $ cc createemptypsbt.c -lwallycore -o createemptypsbt | ||||
| $ ./createemptypsbt  | ||||
|  | ||||
| @ -112,7 +112,7 @@ Mostraremos como fazer uso disso na seção §17.7. | ||||
| 
 | ||||
| ## Testando Nosso Script de Substituição | ||||
| 
 | ||||
| Podemos pegar o código de teste do [diretório src/](src/17_5_replacewithscript.c) e compilá-lo: | ||||
| Podemos pegar o código de teste do [diretório src/](../src/17_5_replacewithscript.c) e compilá-lo: | ||||
| ``` | ||||
| $  cc replacewithscript.c -lwallycore -o replacewithscript | ||||
| ``` | ||||
|  | ||||
| @ -33,7 +33,7 @@ $ utxo_vout=$(bitcoin-cli listunspent | jq -r '.[0] | .vout') | ||||
| $ recipient=tb1qycsmq3jas5wkhf8xrfn8k7438cm5pc8h9ae2k0 | ||||
| $ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.0009 }''') | ||||
| ``` | ||||
| Embora tenhamos colocado um destinatário e uma quantia na saída, isto é irrelevante, porque nós o reescreveremos. Um código mais elaborado poderia ler as informações `vout` existentes antes de reescrever, mas estamos mantendo as coisas muito próximas do nosso [código original](src/17_5_replacewithscript.c). | ||||
| Embora tenhamos colocado um destinatário e uma quantia na saída, isto é irrelevante, porque nós o reescreveremos. Um código mais elaborado poderia ler as informações `vout` existentes antes de reescrever, mas estamos mantendo as coisas muito próximas do nosso [código original](../src/17_5_replacewithscript.c). | ||||
| 
 | ||||
| Aqui está a única alteração necessária, para permitir que especifiquemos os satoshis no `vout`, sem ter que codificá-lo, como no original: | ||||
| ``` | ||||
| @ -182,7 +182,7 @@ Infelizmente, nem todas as interações entre a Libwally e o `bitcoin-cli` são | ||||
| 
 | ||||
| ## Importando Chaves Privadas | ||||
| 
 | ||||
| Felizmente, podemos fazer quase a mesma coisa importando uma chave privada gerada na Libwally. Dê uma olhada no [genhd-for-import.c](src/17_7_genhd_for_import.c), uma versão simplificada do programa `genhd` da seção [§17.3](17_3_Using_BIP32_in_Libwally.md) que também usa a biblioteca `jansson` da seção [§16.1](16_1_Accessing_Bitcoind_with_C.md) para saída regularizada. | ||||
| Felizmente, podemos fazer quase a mesma coisa importando uma chave privada gerada na Libwally. Dê uma olhada no [genhd-for-import.c](../src/17_7_genhd_for_import.c), uma versão simplificada do programa `genhd` da seção [§17.3](17_3_Using_BIP32_in_Libwally.md) que também usa a biblioteca `jansson` da seção [§16.1](16_1_Accessing_Bitcoind_with_C.md) para saída regularizada. | ||||
| 
 | ||||
| O código atualizado também contém uma alteração importante, pois ele solicita uma impressão digital da Libwally para que se possa criar um caminho de derivação de maneira adequada: | ||||
| ``` | ||||
|  | ||||
| @ -160,7 +160,7 @@ No entanto, uma peculiaridade com hashes no `rpcclient` é que normalmente eles | ||||
| 
 | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| Podemos baixar o código completo do [diretório src](src/18_1_blockinfo.go). | ||||
| Podemos baixar o código completo do [diretório src](../src/18_1_blockinfo.go). | ||||
| 
 | ||||
| Podemos então, executar: | ||||
| ``` | ||||
| @ -185,7 +185,7 @@ Devido às limitações do `btcd` no `rpcclient`, não podemos fazer uso da fun | ||||
| ``` | ||||
| O `client.GetBalance("*")` requer a entrada `"*"` devido a uma peculiaridade do `btcd`. O asterisco significa que desejamos obter o saldo de todas as nossas carteiras. | ||||
| 
 | ||||
| Se executarmos [o código src](src/18_1_getbalance.go), deveremos obter uma saída semelhante a esta: | ||||
| Se executarmos [o código src](../src/18_1_getbalance.go), deveremos obter uma saída semelhante a esta: | ||||
| ``` | ||||
| $ go run getbalance.go  | ||||
| 0.000689 BTC | ||||
| @ -281,7 +281,7 @@ Só depois disso usamos o RPC `getreceivedbyaddress` no nosso endereço decodifi | ||||
| 
 | ||||
| 	fmt.Println(wallet) | ||||
| ``` | ||||
| Ao executar [o código](src/18_1_getamountreceived.go), devemos obter uma saída semelhante a esta: | ||||
| Ao executar [o código](../src/18_1_getamountreceived.go), devemos obter uma saída semelhante a esta: | ||||
| ``` | ||||
| $ go run getamountreceived.go  | ||||
| 0.0085 BTC | ||||
| @ -333,7 +333,7 @@ func main() { | ||||
| 	fmt.Println(sent) | ||||
| } | ||||
| ``` | ||||
| Quando executamos [o código](src/18_1_sendtransaction.go), o txid da transação nos será retornado: | ||||
| Quando executamos [o código](../src/18_1_sendtransaction.go), o txid da transação nos será retornado: | ||||
| 
 | ||||
| ``` | ||||
| $ go run sendtransaction.go | ||||
| @ -382,7 +382,7 @@ func main() { | ||||
| ``` | ||||
| > **NOTA:** Novamente, vamos querer trocar o txid por um que realmente será reconhecido pelo nosso sistema. | ||||
| 
 | ||||
| Ao executar [o código](src/18_1_lookuptransaction.go), ele imprimirá os detalhes associados a uma transação, como seu valor e quantas vezes foi confirmada: | ||||
| Ao executar [o código](../src/18_1_lookuptransaction.go), ele imprimirá os detalhes associados a uma transação, como seu valor e quantas vezes foi confirmada: | ||||
| 
 | ||||
| ``` | ||||
| $ go run lookuptransaction.go | ||||
|  | ||||
| @ -154,7 +154,7 @@ PubKey: 0368d0fffa651783524f8b934d24d03b32bf8ff2c0808943a556b3d74b2e5c7d65 | ||||
| 
 | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| O código para esses exemplos pode ser encontrado no [diretório src/](src/18_2_App-getinfo.java) e deve ser instalado na estrutura de diretório padrão criada neste caso como `~/java-project/src/main/java/com/blockchaincommons/lbtc/App.java`. Ele pode então ser compilado e executado. | ||||
| O código para esses exemplos pode ser encontrado no [diretório src/](../src/18_2_App-getinfo.java) e deve ser instalado na estrutura de diretório padrão criada neste caso como `~/java-project/src/main/java/com/blockchaincommons/lbtc/App.java`. Ele pode então ser compilado e executado. | ||||
| 
 | ||||
| ``` | ||||
| $ mvn compile | ||||
| @ -277,7 +277,7 @@ System.out.println("Sent signedRawTx (txID): " + sentRawTransactionID); | ||||
| 
 | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| Agora podemos executar [o código da transação](src/18_2_App-sendtx.java) como `~/java-project/src/main/java/com/blockchaincommons/lbtc/App.java`. | ||||
| Agora podemos executar [o código da transação](../src/18_2_App-sendtx.java) como `~/java-project/src/main/java/com/blockchaincommons/lbtc/App.java`. | ||||
| 
 | ||||
| ``` | ||||
| $ mvn compile | ||||
| @ -316,7 +316,7 @@ Para fazer isso, podemos usar a classe `BitcoinAcceptor` do `JavaBitcoindRpcClie | ||||
|   acceptor.run(); | ||||
| ``` | ||||
| 
 | ||||
| Veja [o diretório src/](src/18_2_App-listen.java) para o código completo. Cada vez que uma transação é enviada ou um novo bloco é gerado, devemos ver a saída em nosso console: | ||||
| Veja [o diretório src/](../src/18_2_App-listen.java) para o código completo. Cada vez que uma transação é enviada ou um novo bloco é gerado, devemos ver a saída em nosso console: | ||||
| ``` | ||||
| Transaction: {account=Tests, address=mhopuJzgmTwhGfpNLCJ9CRknugY691oXp1, category=receive, amount=5.0E-4, label=Tests, vout=1, confirmations=0, trusted=false, txid=361e8fcff243b74ebf396e595a007636654f67c3c7b55fd2860a3d37772155eb, walletconflicts=[], time=1513132887, timereceived=1513132887, bip125-replaceable=unknown} | ||||
| 
 | ||||
|  | ||||
| @ -109,7 +109,7 @@ O resultado das funções BCRPC é um objeto JSON contendo informações sobre q | ||||
| 
 | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| Podemos encontrar o código `getinfo` no [diretório src/](src/18_3_getinfo.js). | ||||
| Podemos encontrar o código `getinfo` no [diretório src/](../src/18_3_getinfo.js). | ||||
| ``` | ||||
| $ node getinfo.js | ||||
| 1831094 | ||||
| @ -162,7 +162,7 @@ agent.getWalletInfo(function (err, walletInfo) { | ||||
| }); | ||||
| ``` | ||||
| 
 | ||||
| O código está disponível como [walletinfo.js](src/18_3_walletinfo.js). | ||||
| O código está disponível como [walletinfo.js](../src/18_3_walletinfo.js). | ||||
| ``` | ||||
| $ node walletinfo.js | ||||
| 0.008498 | ||||
| @ -260,7 +260,7 @@ Devemos obter uma saída semelhante a esta: | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| O código completo está disponível no [sendtx.js](src/18_3_sendtx.js). | ||||
| O código completo está disponível no [sendtx.js](../src/18_3_sendtx.js). | ||||
| 
 | ||||
| ## Resumo: Acessando o Bitcoind com NodeJS | ||||
| 
 | ||||
|  | ||||
| @ -128,7 +128,7 @@ print("---------------------------------------------------------------\n") | ||||
| 
 | ||||
| ### Executando nosso código | ||||
| 
 | ||||
| Podemos usar [o código que está no src/](src/18_4_getinfo.py) e executá-lo com `python3`: | ||||
| Podemos usar [o código que está no src/](../src/18_4_getinfo.py) e executá-lo com `python3`: | ||||
| 
 | ||||
| ``` | ||||
| $ python3 getinfo.py | ||||
| @ -244,7 +244,7 @@ pprint(utxo_tx_details) | ||||
| print("---------------------------------------------------------------\n") | ||||
| ``` | ||||
| 
 | ||||
| Este código está disponível no arquivo [walletinfo.py](src/18_4_walletinfo.py). | ||||
| Este código está disponível no arquivo [walletinfo.py](../src/18_4_walletinfo.py). | ||||
| ``` | ||||
| $ python3 walletinfo.py  | ||||
| --------------------------------------------------------------- | ||||
| @ -422,7 +422,7 @@ send_tx = rpc_client.sendrawtransaction(signed_tx['hex']) | ||||
| ``` | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| [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: | ||||
| [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: | ||||
| ``` | ||||
| $ python3 sendtx.py  | ||||
| Creating a Transaction | ||||
|  | ||||
| @ -134,7 +134,7 @@ Aqui está o código completo para recuperar um hash de bloco, transformando-o e | ||||
| 
 | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| 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 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. | ||||
| 
 | ||||
| ``` | ||||
| $ cargo run  | ||||
| @ -289,7 +289,7 @@ println!("{:?}", txid_sent); | ||||
| 
 | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| Agora podemos executar o código completo do [src](src/18_5_main-sendtx.rs). | ||||
| Agora podemos executar o código completo do [src](../src/18_5_main-sendtx.rs). | ||||
| 
 | ||||
| 
 | ||||
| ``` | ||||
|  | ||||
| @ -191,7 +191,7 @@ makeCommand(method: method,param: param) { result in | ||||
| 
 | ||||
| ### Executando Nosso Código | ||||
| 
 | ||||
| O código completo está disponível no [diretório src/](src/18_6_getinfo.playground). Carregue-o no playground Xcode e, em seguida, "Editor -> Executar Playground" e devemos obter resultados como: | ||||
| O código completo está disponível no [diretório src/](../src/18_6_getinfo.playground). Carregue-o no playground Xcode e, em seguida, "Editor -> Executar Playground" e devemos obter resultados como: | ||||
| ``` | ||||
| { | ||||
|     bestblockhash = 00000000000000069725608ebc5b59e520572a8088cbc57ffa5ba87b7f300ac7; | ||||
| @ -384,7 +384,7 @@ Enviar nossa transação é igualmente simples: | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| O código para este remetente de transação pode ser encontrado no [diretório src/](src/18_6_sendtx.playground). | ||||
| O código para este remetente de transação pode ser encontrado no [diretório src/](../src/18_6_sendtx.playground). | ||||
| 
 | ||||
| ## Usando o Swift de Outras Maneiras | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user