Skip to content

Commit 5c17848

Browse files
authored
Merge pull request #402 from KoreaComK/appendix
Appendix Translated by @KoreaComK need review
2 parents fdfdac0 + 15d860a commit 5c17848

File tree

4 files changed

+406
-0
lines changed

4 files changed

+406
-0
lines changed

pt/A0_Appendices.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Apêndices
2+
3+
O foco principal deste curso sugere uma configuração bastante padrão para os testes de Bitcoin. À seguir, vamos ver alguns apêndices que irão explicar melhor dessa configuração e algumas opções alternativas.
4+
5+
## Objetivos desta Seção
6+
7+
Depois de trabalhar nestes apêndices, um desenvolvedor será capaz de:
8+
9+
* Decidir entre vários métodos de como criar uma blockchain do Bitcoin.
10+
11+
Os objetivos secundários do apêndice incluem a capacidade de:
12+
13+
* Compreender a configuração do Bitcoin Standup;
14+
* Fazer uma compilação de Bitcoin à mão;
15+
* Compreender o poder do Regtest;
16+
* Use um ambiente Regtest.
17+
18+
## Tabela de Conteúdo
19+
20+
* [Apêndice 1: Compreendendo o Bitcoin Standup](A1_0_Understanding_Bitcoin_Standup.md)
21+
* [Apêndice 2: Compilando Bitcoin da Fonte](A2_0_Compiling_Bitcoin_from_Source.md)
22+
* [Apêndice 3: Usando o Regtest do Bitcoin](A3_0_Using_Bitcoin_Regtest.md)
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Apêndice 1: Compreendendo o Bitcoin Standup
2+
3+
Na seção [§2.1: Configurando um Bitcoin Core VPS com StackScript](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md) explicamos o processo de criação de um node de Bitcoin usando [Bitcoin-Standup-Scripts](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts). O apêndice à seguir explica o que as principais seções do script fazem. Podemos acompanhar em [Linode Standup](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts/blob/master/Scripts/LinodeStandUp.sh) em outra janela.
4+
5+
## Etapa 1: Nome do Host
6+
7+
O nome do seu host é armazenado em `/etc/hostname` e definido com o comando `hostname`. Ele também aparece em `/etc/hosts`.
8+
9+
## Etapa 2: Fuso Horário
10+
11+
O fuso horário do nosso host é armazenado em `/etc/timezone`, então um arquivo apropriado do `/usr/share/zoneinfo/` é copiado para o `/etc/localtime`.
12+
13+
## Etapa 3: Atualizando o Debian
14+
15+
O gerenciador de pacotes `apt-get` é usado para deixar nossa máquina atualizada e instalar o `gnupg`, o gerador de números aleatórios `haveged`, e o firewall simples `ufw`.
16+
17+
Nossa máquina está configurada para se manter automaticamente atualizada com o `echo "unattended-upgrades unattended-upgrades / enable_auto_updates boolean true "| debconf-set-selections`.
18+
19+
## Etapa 4: Configurando um Usuário
20+
21+
Um usuário `standup` é criado, o qual será usado para nossas aplicações do Bitcoin. Ele também tem permissões `sudo`, permitindo que executemos ações privilegiadas com este usuário.
22+
23+
Se fornecemos uma chave SSH, ela permitirá o acesso a esta conta (caso contrário, devemos usar a senha criada na configuração).
24+
25+
Se fornecemos um endereço IP, o acesso `ssh` será limitado a esse endereço, de acordo com `/etc/hosts.allow`.
26+
27+
## Etapa 5: Configurando o Tor
28+
29+
O Tor é instalado para fornecer serviços protegidos (ocultos) para acessar os comandos RPC do Bitcoin através do nosso servidor. Podemos consultar a seção [§14.1: Verificando a Configuração do Tor](14_1_Verifying_Your_Tor_Setup.md) para obter mais informações sobre a configuração do Tor.
30+
31+
Se criarmos um cliente autorizado para os serviços ocultos, o acesso será limitado a essa chave, que está em `/var/lib/tor/standup/authorized_clients`. Caso contrário, na seção [§14.2](14_2_Changing_Your_Bitcoin_Hidden_Services.md) explicamos como podemos fazê-la depois.
32+
33+
## Etapa 6: Instalando o Bitcoin
34+
35+
Bitcoin é instalado no `~standup/.bitcoin`. Nossa configuração é armazenada no `~standup/.bitcoin/bitcoin.conf`.
36+
37+
Precisamos nos certificar de que as somas de verificação (checksum) foram analisadas de acordo com a seção [§2.1](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md), caso contrário, podemos estar expostos a um ataque de cadeia de produção.
38+
39+
## Etapa 7: Instalando o Codificador QR
40+
41+
Para manter tudo compatível com [GordianSystem](https://github.com/BlockchainCommons/GordianSystem), um código QR é criado e está em `/qrcode.png`. Isso pode ser lido em um cliente QuickConnect como [GordianWallet](https://github.com/BlockchainCommons/GordianWallet-iOS).
42+
43+
## Conclusão - Compreendendo o Bitcoin Standup
44+
45+
O Bitcoin Standup usa scripts para tentar combinar muitas das funcionalidades de um [GordianNode](https://github.com/BlockchainCommons/GordianNode-macOS). Ele deve fornecer a nós um ambiente Bitcoin seguro construído em uma base de Bitcoin Core com Tor para nos comunicarmos com o RPC.
46+
47+
## O Que Vem Depois?
48+
49+
Se estivermos no processo de criação de um node Bitcoin para o uso neste curso, devemos voltar para a seção [§2.1](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md).
50+
51+
Se estivermos lendo os apêndices, podemos continuar no [Apêndice 2: Compilando Bitcoin da Fonte](A2_0_Compiling_Bitcoin_from_Source.md).
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Apêndice 2: Compilando Bitcoin da Fonte
2+
3+
Este curso presume o uso de um script para criar um ambiente Bitcoin, seja usando o Bitcoin Standup do Linode de acordo com o especificado na seção [§2.1](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md), ou por algum outro meio de acordo com a seção [§2.2](02_2_Setting_Up_Bitcoin_Core_Other.md). No entanto, podemos querer compilar o Bitcoin manualmente.
4+
5+
Isso tem os seguintes benefícios:
6+
7+
1. Sempre estará atualizado com a versão mais recente. Mas atenção! Estar sempre atualizado não é necessário para o Bitcoin Core, pois o software é sempre compatível com versões anteriores, o que significa que uma versão antiga do Bitcoin Core ainda poderá participar da rede Bitcoin, embora possamos não ter os recursos mais recentes. Devemos sempre verificar os recursos de uma nova versão antes de atualizarmos.
8+
2. Não precisaremos depender de binários do Bitcoin Core pré-compilados. Isso requer menos confiança. Mesmo que os mantenedores do Bitcoin Core façam um ótimo trabalho em manter a integridade do código, algumas etapas do código-fonte são removidas de um binário pré-compilado. Quando compilamos a partir do código-fonte, o código pode ser inspecionado antes da compilação.
9+
3. Podemos personalizar a construção, fazendo coisas como desabilitar a carteira ou a GUI.
10+
11+
## Preparando Nosso Ambiente
12+
13+
Este tutorial usa o sistema operacional Debian 10.4.kv0 em uma arquitetura amd64 (computadores de 64 bits), mas podemos usar este tutorial em qualquer sistema baseado no Debian (por exemplo, Ubuntu, Mint, etc). Para outros sistemas Linux, podemos adaptar as etapas a seguir com o gerenciador de pacotes do sistema.
14+
15+
Podemos ter pouca ou nenhuma familiaridade com a linha de comando, desde que tenhamos vontade de aprender. O terminal é o nosso aliado mais poderoso, e não algo a ser temido. Podemos simplesmente copiar e colar os seguintes comandos para compilar o Bitcoin. Um comando com um "$" é um comando do usuário normal e um com um "#" é um comando de super usuário/root.
16+
17+
Se o nosso usuário não estiver na lista dos super usuários, podemos o seguinte:
18+
19+
```
20+
$ su root
21+
<escreva a senha root>
22+
# apt-get install sudo
23+
# usermod -aG sudo <nome do usuário>
24+
# reboot
25+
```
26+
27+
## Instalando o Bitcoin
28+
29+
### Etapa 1: Atualizando Nosso Sistema
30+
31+
Primeiro, vamos atualizar o sistema usando:
32+
```
33+
$ sudo apt-get update
34+
```
35+
36+
### Etapa 2: Instalando o Git e as Dependências
37+
38+
Vamos instalar o `git`, que permitirá que baixemos o código-fonte, e o `build-essential`, que compila o código:
39+
```
40+
$ sudo apt-get install git build-essential -y
41+
```
42+
43+
Depois, vamos instalar as dependências restantes:
44+
```
45+
$ sudo apt-get install libtool autotools-dev automake pkg-config bsdmainutils python3 libssl-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libminiupnpc-dev libzmq3-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler ccache -y
46+
```
47+
48+
### Etapa 3: Baixando o Código-Fonte
49+
50+
Assim que as dependências forem instaladas, baixamos o repositório (repo) que contém o código-fonte do Bitcoin no github:
51+
```
52+
$ git clone https://github.com/bitcoin/bitcoin.git
53+
```
54+
Vamos verificar o conteúdo do repo:
55+
```
56+
$ ls bitcoin
57+
```
58+
Devemos corresponder aproximadamente ao seguinte conteúdo:
59+
60+
![clonando o repo](./public/LBftCLI-compiling_bitcoin-git.png)
61+
62+
### Etapa 4: Instalando o Berkley DB v4.8
63+
64+
1. Vamos entrar no diretório `contrib`:`$ cd bitcoin/contrib/`;
65+
2. Vamos executar o seguinte comando: ```$ ./install_db4.sh `pwd` ```.
66+
67+
Depois de fazer o download, veremos o seguinte retorno. Devemos observar bem este retorno, porque o usaremos para configurar o bitcoin durante o build:
68+
69+
![db4](./public/LBftCLI-compiling_bitcoin-db4.png)
70+
71+
### Etapa 5: Compilando o Bitcoin Core
72+
73+
É recomendado que compilemos a partir de um branch com tag, que é mais estável, a menos que queiramos experimentar as últimas novidades do desenvolvimento do bitcoin. Vamos executar o seguinte comando para obter a lista de tags, ordenada a partir das mais recentes:
74+
```
75+
$ git tag -n | sort -V
76+
```
77+
Em seguida, vamos escolha uma tag, por exemplo a `v0.20.0`:
78+
```
79+
$ git checkout <TAG>
80+
```
81+
82+
Depois de selecionar um ramo da tag, vamos executar o seguinte, dentro do diretório `bitcoin`. O `<PATH-TO>` deve ser o retorno do script `install_db4.sh`.
83+
84+
```
85+
$ ./autogen.sh
86+
$ export BDB_PREFIX='<PATH-TO>/db4'
87+
$ ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include"
88+
$ make # build bitcoin core
89+
```
90+
91+
### Etapa 6: Testando o Build
92+
93+
Se quisermos verificar nossa compilação (o que é uma boa ideia), podemos executar os seguintes testes:
94+
95+
1. `$ make check` irá executar os Testes de Unidade (unit tests), que devem retornar `PASS`;
96+
2. `$ test/functional/test_runner.py --extended` executará os testes funcionais estendidos. Podemos retirar a sinalização `--extended` se quisermos pular alguns testes. Isso vai demorar um pouco.
97+
98+
### Etapa 7: Executando ou Instalando o Bitcoin Core
99+
100+
Agora que compilamos o Bitcoin Core a partir da fonte, podemos começar a usá-lo ou instalá-lo.
101+
102+
#### Executando o Bitcoin Core sem Instalar
103+
104+
Para executar o Bitcoin Core:
105+
106+
`$ src/qt/bitcoin-qt` para iniciar a GUI;
107+
`$ src/bitcoind` para executar bitcoin na linha de comando.
108+
109+
### Instalando o Bitcoin Core
110+
111+
Para instalar:
112+
113+
`$ sudo make install` irá instalar o Bitcoin Core globalmente. Uma vez instalado, podemos executar o bitcoin de qualquer lugar usando a linha de comando, assim como qualquer outro software, como: `$ bitcoin-qt` para a GUI ou `bitcoind` e então `bitcoin-cli` para a linha de comando.
114+
115+
## Finalizando Nosso Sistema
116+
117+
Ao compilar Bitcoin a partir da fonte, aumentamos a confiança que temos em nossa configuração. No entanto, estamos muito aquém de toda a segurança adicional fornecida por uma configuração Bitcoin Standup. Para resolver isso, podemos percorrer todo o [Linode Stackscript](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts/blob/master/Scripts/LinodeStandUp.sh) e executar passo a passo todos os comandos. O único lugar que precisamos ter cuidado é na Etapa 6, que instala o Bitcoin, pulando o ponto onde já verificamos os binários e continando a partir daí.
118+
119+
## Resumo: Compilando Bitcoin da Fonte
120+
121+
Se quisermos aumentar a segurança da instalação do Bitcoin a partir da fonte, agora sabemos fazê-lo. Felizmente, também passamos pelo Linode Stackscript para configurar um servidor mais seguro.
122+
123+
## O Que Vem Depois?
124+
125+
Se estávamos no processo de criação de um node de Bitcoin para usar neste curso, devemos continuar com o [Capítulo 3: Compreendendo Sua Configuração do Bitcoin](03_0_Understanding_Your_Bitcoin_Setup.md).
126+
127+
Se estivermos lendo os apêndices, vamos continuar com o [Apêndice 3: Usando o Bitcoin Regtest](A3_0_Using_Bitcoin_Regtest.md).

0 commit comments

Comments
 (0)