# Executar um Nó da Chiliz Chain

Executar seu próprio nó da Chiliz Chain oferece controle, privacidade e confiabilidade aprimorados, mas requer mais conhecimento técnico e recursos em comparação com o uso de um endpoint RPC existente.

Isso permite que você transacione e se comunique com contratos inteligentes na Chiliz Chain.

## Pré-requisitos

Para executar o nó da Chiliz Chain, você deve ter o [Docker](https://www.docker.com/) instalado, seja na sua máquina ou no seu servidor. Portanto, conclua a [instalação do Docker](https://docs.docker.com/engine/install/) antes de prosseguir.

### Imagens Docker pré-construídas

Você pode usar as imagens Docker pré-construídas do repositório público Chiliz Chain 2.0 no [Docker hub para a Chiliz Chain 2.0](https://hub.docker.com/repository/docker/chilizchain/ccv2-geth).

## Lançar um nó e iniciar a sincronização

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

### Passo 1: Criar um diretório

Crie um diretório e aponte para ele no parâmetro -v no comando a seguir:

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

### Passo 2: Conectar Cliente

Para conectar um cliente com um nó, você deve habilitar servidores RPC HTTP e/ou WebSocket especificando os grupos de parâmetros --http e/ou --ws respectivamente.

Por exemplo:

```shell
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 8545:8545 \
-p 8546:8546 \
chilizchain/ccv2-geth:latest \
--chiliz \ # para Chiliz Mainnet. Use --spicy para Spicy Testnet.
--datadir=/datadir \
--ipcdisable \
--http \
--http.addr=0.0.0.0 \
--http.api=eth,net,web3,debug,txpool \
--http.port=8545 \
--http.corsdomain="*" \
--http.vhosts="*" \
--ws \
--ws.addr=0.0.0.0 \
--ws.api=eth,net,web3,debug,txpool \
--ws.port=8546 \
--ws.origins="*"
```

{% hint style="info" %}
CUIDADO

Por razões de segurança, certifique-se de definir valores apropriados para os seguintes parâmetros:

\--http.corsdomain --http.vhosts --ws.origins
{% endhint %}

## Informações de manutenção do nó

### Alterar a verbosidade ao depurar

Em alguns casos, você pode querer aumentar a verbosidade do nó, por exemplo, quando precisar depurar o próprio nó ou o cliente conectado.

Para fazer isso, você pode definir um parâmetro --verbosity. Ele pode aceitar as seguintes opções (o padrão é 3):

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

### Parar o nó e limpar

Se você iniciou o nó usando um dos comandos acima, então seu processo de nó continuará em execução em primeiro plano. Para parar esse processo, pressione CTRL+C.

Execute o seguinte comando para remover o contêiner Docker:

```shell
docker rm ccv2-node
```

### Excluir o diretório

Execute o seguinte comando para excluir um diretório:

```shell
rm -r my-datadir
```

## Atualizando seu nó

A equipe da Chiliz Chain se esforça para manter a Chiliz Chain segura e moderna, e, portanto, faremos hard forks de tempos em tempos, como o hard fork Dragon8.

No caso de um hard fork, seu nó ficará fora de sincronia com a rede. Portanto, é importante acompanhar nossos anúncios e atualizar seu nó.

Para manter seu nó atualizado, você pode seguir os seguintes passos.

**Se você usar Docker:**

1. Certifique-se de parar e excluir seu contêiner Docker existente, preservando os volumes que contêm seu banco de dados.
2. Inicie seu nó usando a imagem Docker pré-construída mais recente disponível: <https://hub.docker.com/repository/docker/chilizchain/ccv2-geth>

Se você usar seu próprio binário:

1. Baixe a versão mais recente do nosso repositório GitHub: <https://github.com/chiliz-chain/v2/releases>
2. Construa a partir daí com seu conjunto de ferramentas.

## Informações adicionais sobre Geth

Visite as opções de [linha de comando](https://geth.ethereum.org/docs/fundamentals/command-line-options) do Geth para ver a lista completa de parâmetros disponíveis do Geth.
