# Linux

A documentação que você criou está clara e direta, mas pode ser aprimorada para facilitar a compreensão e usabilidade pelos membros da comunidade Lunes. Abaixo, vou sugerir algumas melhorias, organizando o conteúdo de forma mais estruturada, adicionando explicações contextuais e melhorando a legibilidade.

***

## **Linux Development Environment**

O Rust é compatível com a maioria das distribuições Linux. Dependendo da distribuição específica e da versão do sistema operacional que você está usando, pode ser necessário adicionar algumas dependências de software ao seu ambiente. Em geral, seu ambiente de desenvolvimento deve incluir um linker ou um compilador compatível com C, como o clang, e um ambiente de desenvolvimento integrado (IDE) apropriado.

## **Antes de começar**

Verifique a documentação do seu sistema operacional para obter informações sobre os pacotes que estão instalados e como baixar e instalar quaisquer pacotes adicionais que você possa precisar.&#x20;

Entendi, para manter a fidelidade ao documento original, irei revisar e corrigir diretamente o texto do documento, mantendo a estrutura e o conteúdo originais, mas com as correções necessárias. Vou começar agora e apresentar o texto corrigido logo em seguida. Por favor, aguarde.

Aqui está a versão corrigida do documento "Instalação do Node LUNES", mantendo a estrutura e o conteúdo originais, mas com as correções aplicadas:

## Documentação para Criação de Nodes na Rede Lunes

Este guia detalha os passos necessários para configurar um node na rede Lunes. Siga as instruções cuidadosamente para garantir que o seu node esteja corretamente configurado e operando na rede.

### 1. Instalação de Dependências

#### 1.1 Instalar o GIT

Para instalar o GIT, execute os seguintes comandos no terminal:

```bash
sudo apt update
sudo apt-get install git-all
```

#### 1.2 Clonar o Repositório do Projeto

Clone o projeto `lunes-nightly` usando o comando:

```bash
git clone https://github.com/lunes-platform/lunes-nightly.git
```

### 2. Configuração do Ambiente

#### 2.1 Instalar Dependências do Node

Navegue até a pasta do projeto:

```bash
cd lunes-nightly
```

Em seguida, instale as seguintes dependências:

```bash
sudo apt install build-essential git clang curl libssl-dev protobuf-compiler
```

#### 2.2 Configurar o Ambiente Rust

Instale o Rust utilizando o comando abaixo:

```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
```

Carregue o ambiente Rust:

```bash
source $HOME/.cargo/env
```

Defina a versão `nightly` do Rust:

```bash
rustup default nightly-2023-01-01
rustup target add wasm32-unknown-unknown --toolchain nightly-2023-01-01
```

#### 2.3 Compilar o Projeto

Para compilar o node, utilize o comando:

```bash
cargo build --release --package lunes-node
```

#### 2.4 Instalar o Subkey

Instale o Subkey, que será utilizado para gerar chaves:

```bash
cargo install --force subkey --git https://github.com/paritytech/substrate --tag=v3.0.0 --locked
```

### 3. Gerar Chaves de Sessão

#### 3.1 Gerar Chaves AURA e GRANDPA

Execute os comandos abaixo para gerar as chaves de sessão. **Guarde essas chaves com segurança**, pois serão necessárias posteriormente.

Para a chave AURA:

```bash
subkey generate --scheme SR25519 --words 24 --network substrate
```

Para a chave GRANDPA:

```bash
subkey generate --scheme ED25519 --words 24 --network substrate
```

### 4. Configuração do Serviço

#### 4.1 Configurar o Serviço de Node

Copie os arquivos de serviço para a pasta correta:

```bash
sudo cp ./scripts/lunes_fullnode.service /etc/systemd/system/lunes_fullnode.service
```

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfvOsxVddsS1UvBrFXrVp4JU4gqdwrZPmu4G4QwCQMkXJwjCqU8iNwlNSGvEXp-ujDSIWHG5I5zWPyhv_cdMbCb30QZFlpuvRGXrmQL7-ISYtOkYqf654g1SMfOXJ3swT6ESeDIgUbxitLO7dtd88j7kulWmgxTmAfSRzOfbg?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

#### 4.2 Iniciar e Gerenciar o Serviço

Inicie o serviço e verifique seu status com os seguintes comandos:

*   Para iniciar o serviço:

    ```bash
    sudo systemctl daemon-reload
    sudo systemctl start lunes_validator.service
    ```
*   Para verificar o status:

    ```bash
    sudo systemctl status lunes_fullnode.service
    sudo systemctl status lunes_validator.service
    ```
*   Para parar o serviço:

    ```bash
    sudo systemctl stop lunes_fullnode.service
    sudo systemctl stop lunes_validator.service
    ```
*   Para reiniciar o serviço:

    ```bash
    sudo systemctl restart lunes_fullnode.service
    sudo systemctl restart lunes_validator.service
    ```

### 5. Configurar Sessão dos Validadores

#### 5.1 Editar Arquivo de Sessão

Abra e edite o arquivo `4_session_testnet_keys.sh`:

```bash
nano ./scripts/4_session_testnet_keys.sh
```

```sh
#!/bin/bash
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0",
"method": "author_insertKey",  "params": [
        "gran",
        "",
        "0x"
    ] }' http://127.0.0.1:9938
printf "\n"
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0",
"method": "author_insertKey", "params": [
        "aura",
        "",
        "0x"
    ]}' http://127.0.0.1:9938


printf "\n User in App extrinsics \n"


curl -H "Content-Type: application/json" -d '{"jsonrpc":"2.0", "method":"author_rotateKeys", "id":1 }' http://127.0.0.1:9938

```

Substitua as chaves AURA e GRANDPA geradas anteriormente nos locais indicados no script. Salve as alterações e rode o comando:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeoitpbm7FBJtWtxPHoAPNFR4uBK93R7yGalpi6oMapOOzoMsgWx8ppbj3jKGkV9MIYjTSaWk4MdKjzBkKGhrbaRsvWMH3a156mFdN5S1k364V4GLP8HJ9TBVZCZSbHyKBK78gyLVLF6aE2xIvEu-CdgR49Gd6hiyr_t2I0Kw?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

```bash
sh ./scripts/3_session_testnet_keys.sh
```

```
curl -H "Content-Type: application/json" -d '{"jsonrpc":"2.0", "method":"author_rotateKeys", "id":1 }' http://127.0.0.1:9938

```

_<mark style="color:red;background-color:orange;">**ESPERAR SINCRONIZAR ANTES DE RODAR O COMANDO**</mark>_

<div align="left"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc1yXyglH9hWJNPDfEnVBY0r7QocruTioIStS1xT8W99KEOFgsqBnU6kOxFNrAex0-fOF243O5Q840c4dV4JKaLf_XnFOr3YQtlJofy8Z67mBpb3YH1acvuTVJwZDnmiECYWFtcSEIIywB17orcvAE1N9Mjfc-HyZP326GByxYuqMaGyAsJQgo?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure></div>

### 6. Configuração da Carteira Validadora

#### 6.1 Instalar a Extensão Polkadot{.js}

Instale a extensão Polkadot{.js} no seu navegador, disponível [aqui](https://chrome.google.com/webstore/detail/polkadot%7Bjs%7D-extension/mopnmbcafieddcagagdcbnhejhlodfdd).

#### 6.2 Configurar as Carteiras

Crie ou importe duas carteiras:

* **Controle:** Usada para controlar o node.
* **Validador (Stash):** Deve conter pelo menos 50.000 Lunes para participar como validador, além de saldo para taxas de rede.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfEwTNZJ2_qC_oN2WfZ7IsyjN0sdxDHOiC9tYIIPOYWDo-w8kUWmBOyPq7pZuaYqTg3sIYPzxR-mLfwH0qK-tcOcxP7P0_I5qrnA_kZqKVij3VOrAgl7LTXPyRtyH0FDa53K-JCmPgURUtxQMGq5csY3181ouOV8eNubcW6ylLzVrUnjbi4MT4?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

#### 6.3 Registrar como Validador

Acesse o portal [Lunes Dev](https://dev.lunes.io) e siga os passos abaixo:

1. Selecione a opção `Validador`.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeaPtaLrOv7_5HYq9af3h0iB2hPcSiKBq59JZ5IIJ4PIY1AmDZqJzH7Nx5UXO1Mc4F6wlyHHLjh4zv3-oOAP_fbyyJeJrVQauVO1iP9Z34evwX87slTXW9UVR7VTc52aYobKZN6PkT1jgWTjxX9R82xNCn7W5RUyFsTvM84qAhSvspk6ncEhss?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

1. Registre suas carteiras e insira a chave de sessão gerada anteriormente.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcPJkZyyZebn_uu_bGYQeAsOLE-h9J0yyzRX8ifxhsxxvIT_Z1zXjv67Zt8Ayy8Isb4oh7cb94ZN3xZJW9Z9cwdWuTqyOHq5SrUph_2-M2MQAT4YaUunYIeqF4UE1Qrn1AxHnswNNe8GnXkl-lC7iS7wEsuIPlZmoEKKPJ2rOsIritxbp-eAA?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeGNqME7UMFLQrcbzvoNNF96-dMfz571wtDC_-hokiQy1PsjEKNFEhlrAdAg_FJxw3fJRN4TO3BZZ_Tb87lis3wXqEmo2psf9HG-WXI-8mkhPvbeY7QPB4dY6kPn_3dZ6xH0yW2mQIL81kvDTvLlASDfb4CkZud6Xw_R3cOWf_2LPqCgGZE22I?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

1. Confirme a transação.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXec1C9JuEDGnGxWHwfbfP9fivyf2Zh0BwjRDmPeyrM51GfzHMnjiVo-If0qOzqDEZeBXRE2NQviPQeGeEhyZaTyzG__1gejvSLLXnvqMX-0ja-4dl9ctbTCdsAIwmmxBdbnWS6mJKW64cJtSvV5DbNYEuqFOBByIN22BTw70XhhbDww_SKWsw?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

Aguarde cerca de 1 hora (1 época) para que seu node entre na rede.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfS8mBML5FTV9GNcyO4YUyWuzdaMY2VtDNFpLsBw4f72e842833Y9cMxcPh-TVzL67m9OPGXD3fdgxNPLBHcE8IxWlg-XvfxJbN38iqYzBwSgeUI0m12PWXzR9ipPCoQNx7JdjrHJhTDbBB6gLB4C4dRC3WseEL6lqXNIURbkN8JTWwSN4tWPc?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

### 7. Configuração do Nome Personalizado

Para configurar um nome personalizado para seu node:

1. Acesse a carteira do validador.
2. Clique nos três pontinhos ao lado do nome da conta.
3. Selecione `Definir identidade` e pague a taxa de 10 Lunes.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc1NRyvQ7pvKUBd7YKZ7tcWyQfxtkxotVwULKs6vQRydU6pi_JYzzI7g78RoZpG3brrzNg_zUBNBYeQr9Sjkj2pEMfdE7F_-Yyzu6MSoqDagKuWt1UknI8kbBNGYipAZT4P4qkDfINJ-zWxTp9oXWrl4UueW_rM_etDRMGN2lXxQCej15SoT_4?key=ezRv82g0tEVLexlDoV_gdw" alt=""><figcaption></figcaption></figure>

## Considerações Finais

Parabéns! Se você seguiu todos os passos deste guia, seu node na rede Lunes deve estar configurado e operando corretamente. Manter um node não só contribui para a segurança e descentralização da rede, mas também coloca você na vanguarda da criptoeconomia, ajudando a fortalecer o ecossistema da Lunes.

A participação ativa como validador é uma responsabilidade significativa. Lembre-se de monitorar regularmente o desempenho do seu node e manter suas chaves e informações seguras. Se tiver qualquer dúvida ou encontrar algum problema durante o processo, nossa comunidade está aqui para ajudar. Não hesite em compartilhar suas experiências no grupo do [Telegram](https://t.me/LunesGlobal) ou no [Discord](https://discord.gg/CSzPpRPgMQ).

Obrigado por contribuir para o futuro da Lunes. Juntos, estamos construindo algo grandioso!

