# Executar um Nó de Validador

## O que é um nó de validador?

Para se tornar um validador da Chiliz Chain, é necessário ter uma configuração de hardware específica e ser capaz de executar um nó de Validador. Um nó é um sistema de computador configurado especificamente para validar transações antes de comprometê-las na Chiliz Chain.

## Lançando o nó de Validador

Para executar um nó de Validador, você precisa definir os seguintes parâmetros:

*TL;DR você precisa executar o seguinte comando (certifique-se de atualizar o parâmetro `nodekeyhex`!)*

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--mine \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
--datadir=/datadir \
--password=/datadir/password.txt \
--allow-insecure-unlock \
--unlock=f9100d364b45a8fdbd178ed1edfe632cc7eb2ecc \
--syncmode=full \
--gcmode=archive \
--miner.etherbase=REPLACE_WITH_VALIDATOR_ADDRESS \
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 \
--nat=extip:140.250.140.250 \ # Este é apenas um exemplo.
--verbosity=4
```

## Pré-requisitos

Para executar o nó de validador da Chiliz Chain, você deve ter o Docker Engine instalado em sua máquina ou servidor.

Portanto, conclua a instalação do Docker antes de prosseguir.

### Requisitos do sistema

Você precisará de um servidor dedicado para executar seu nó de validador. Este servidor deve ter pelo menos 4GB de RAM, 2 núcleos de CPU e um disco de estado sólido (SSD) para desempenho ideal. Recomenda-se ter pelo menos 300 GB de espaço livre em disco para sincronizar com a cadeia. Você pode usar um provedor de nuvem como Amazon Web Services, Google Cloud Platform ou Microsoft Azure, ou pode configurar seu próprio servidor.

## Imagens Docker pré-construídas

Veja ou use as imagens Docker pré-construídas do repositório público Chiliz Chain 2.0 no Docker hub.

## Lançando um nó de Validador e iniciando a sincronização

O ponto de partida recomendado para executar um nó de validador da Chiliz Chain é com o volume de dados montado. Se este método for usado para recriar um contêiner Docker, os dados serão armazenados no diretório e podem ser facilmente reutilizados ou clonados para outro validador.

### Criar o endereço do validador

Crie o nó de validador com o seguinte comando:

```sh
docker run --rm -ti \
-v $(pwd)/keystore:/root/.ethereum/keystore/ \
chilizchain/ccv2-geth:latest \
--chiliz \  # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
account new

```

Você precisará digitar uma senha para o arquivo da chave secreta.

* **Endereço público da chave**: Ao executar o validador, este endereço será usado para definir o parâmetro --unlock.

```sh
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 # Este é apenas um exemplo.
...
```

* **Caminho do arquivo de chave secreta**: Este arquivo precisa ser movido para o diretório "keystore" dentro do datadir $(pwd)/my-datadir que você criou nos passos anteriores, então o caminho final do arquivo será "$(pwd)/my-datadir/keystore/UTC–(TIMESTAMP)-(ADDRESS)". NÃO altere o nome do arquivo.
* **Senha**: A senha que você digitou durante a execução do comando anterior precisa ser armazenada em um arquivo: $(pwd)/my-datadir/password.txt Este arquivo será usado para definir o parâmetro --password ao executar o nó de validador. Não se esqueça de que todos os arquivos no caminho do host $(pwd)/my-datadir estarão localizados no contêiner no diretório /datadir, por isso o parâmetro de senha deve ser definido como no exemplo a seguir:

```sh
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--password=/datadir/password.txt
...

```

É muito importante ter as seguintes recomendações em mente:

* Você pode compartilhar seu endereço público com qualquer pessoa. Outros precisam dele para interagir com você.
* Você NUNCA deve compartilhar a chave secreta com ninguém! A chave controla o acesso aos seus fundos!
* Você deve FAZER BACKUP do seu arquivo de chave! Sem a chave, é impossível acessar os fundos da conta!
* Você deve LEMBRAR da sua senha! Sem a senha, é impossível descriptografar a chave!

### Gerar a chave do nó de validador

*Esta seção é opcional.*

Recomenda-se gerar uma string hexadecimal aleatória para o nó.

Isso é útil para rastreabilidade nos logs e para evitar problemas de conexão com a cadeia.

Para isso, você pode usar <https://www.browserling.com/tools/random-hex> e gerar uma chave hexadecimal com 64 caracteres por nó.

Ao executar um nó de validador, você pode definir --nodekeyhex com esse valor. Isso garantirá que, ao reiniciar o nó, ele tenha o mesmo endereço de nó (chamado "endereço enode") e permitirá uma depuração futura mais fácil.

```sh
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 # Este é apenas um exemplo.
...

```

## Definir o mecanismo de mapeamento de porta NAT

De acordo com a documentação do Geth, o parâmetro --nat tem diferentes opções: any, none, upnp, pmp e extip:\<IP>. O padrão é any. Recomendamos usar extip:\<IP>, onde IP é o IPv4 público onde o validador está sendo lançado.

```sh
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--nat=extip:140.250.140.250 # Este é apenas um exemplo.
...

```

## Definir a verbosidade

Para uma depuração mais profunda, a verbosidade de log pode ser definida como:

* 0=silent
* 1=error
* 2=warn
* 3=info
* 4=debug
* 5=detail

O valor padrão para o parâmetro --verbosity é 3. Recomendamos usar 4.

```sh
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
...
--verbosity=4 # Este é apenas um exemplo.
...

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chiliz.com/pt-br/aprender/torne-se-um-validador/executar-um-no-de-validador.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
