# Запуск валидатора используя исходные файлы

1. Клонируйте репозиторий Aptos.

```
git clone https://github.com/aptos-labs/aptos-core.git
```

2\. Выполните команду `cd` в каталоге `aptos-core` .

```
cd aptos-core
```

3\. Запустите bash-скрипт `scripts/dev_setup.sh` , как показано ниже. Это подготовит вашу среду разработчика.

```
./scripts/dev_setup.sh
```

4\. Обновите вашу текущую среду оболочки.

```
source ~/.cargo/env
```

Со средой разработки готово, теперь вы можете начать установку вашей ноды валидатора.

5\. Проверьте `testnet` branch using `git checkout --track origin/testnet`.

6\. Создайте каталог для композиции вашей Aptos ноды, например:

```
export WORKSPACE=testnet
mkdir ~/$WORKSPACE
```

7\. Сгенерируйте пары ключей (ключ владельца ноды, консенсус-ключ и сетевой ключ) в вашем рабочем каталоге.

```
cargo run --release -p aptos -- genesis generate-keys --output-dir ~/$WORKSPACE
```

Это создаст три файла: `private-keys.yaml`, `validator-identity.yaml`, `validator-full-node-identity.yaml` . **ВАЖНО:** сделайте резервную копию файлов ваших ключей в безопасном месте. Эти файлы важны для вас, чтобы установить право собственности на вашу ноду, вы также будете использовать эту информацию, чтобы позже получить свое вознаграждение, если будете соответствовать требованиям. Никогда не делитесь этими ключами с кем-либо еще.

8\. Настройте информацию о валидаторе. Вам необходимо настроить статический IP / DNS-адрес, который может использоваться узлом, а также убедиться, что сеть / брандмауэры правильно настроены для приема внешних подключений.&#x20;

Эта информация понадобится вам позже для регистрации на сайте сообщества Aptos.

{% hint style="success" %}
**ПОДСКАЗКА**

Флаг `--full-node-host` является опциональным.
{% endhint %}

```
cargo run --release -p aptos -- genesis set-validator-configuration \
    --keys-dir ~/$WORKSPACE --local-repository-dir ~/$WORKSPACE \
    --username <pick a username for your node> \
    --validator-host <Validator Node IP / DNS address>:<Port> \
    --full-node-host <Full Node IP / DNS address>:<Port>

# for example, with IP:

cargo run --release -p aptos -- genesis set-validator-configuration \
    --keys-dir ~/$WORKSPACE --local-repository-dir ~/$WORKSPACE \
    --username aptosbot \
    --validator-host 35.232.235.205:6180 \
    --full-node-host 34.135.169.144:6182

# for example, with DNS:

cargo run --release -p aptos -- genesis set-validator-configuration \
    --keys-dir ~/$WORKSPACE --local-repository-dir ~/$WORKSPACE \
    --username aptosbot \
    --validator-host bot.aptosdev.com:6180 \
    --full-node-host fn.bot.aptosdev.com:6182
```

В вашем рабочем каталоге будет создан файл YAML с вашим именем пользователя, например: `aptosbot.yaml`. Это будет выглядеть как:

```
---
account_address: 7410973313fd0b5c69560fd8cd9c4aaeef873f869d292d1bb94b1872e737d64f
consensus_key: "0x4e6323a4692866d54316f3b08493f161746fda4daaacb6f0a04ec36b6160fdce"
account_key: "0x83f090aee4525052f3b504805c2a0b1d37553d611129289ede2fc9ca5f6aed3c"
network_key: "0xa06381a17b090b8db5ffef97c6e861baad94a1b0e3210e6309de84c15337811d"
validator_host:
  host: 35.232.235.205
  port: 6180
full_node_host:
  host: 34.135.169.144
  port: 6182
stake_amount: 1
```

9\. Создайте файл макета YAML, который определяет узел в validatorSet. Для тестового режима мы можем создать генезис блоб, содержащий только одну ноду.

```
vi ~/$WORKSPACE/layout.yaml
```

Добавьте публичный ключ корневого аккаунта, имя пользователя ноды и id-цепи в файл`layout.yaml` , например:

```
---
root_key: "0x5243ca72b0766d9e9cbf2debf6153443b01a1e0e6d086c7ea206eaf6f8043956"
users:
  - <username you created in step 8>
chain_id: 23
```

Вы можете использовать корневой ключ из примера или сгенерировать новый самостоятельно, запустив  `cargo run -p aptos -- key generate --output-file <file name>`.

10\. Создайте байт-код AptosFramework Move и скопируйте в папку фреймворка.

```
cargo run --release --package framework -- --package aptos-framework --output current

mkdir ~/$WORKSPACE/framework

mv aptos-framework/releases/artifacts/current/build/**/bytecode_modules/*.mv ~/$WORKSPACE/framework/
```

У вас появится папка с именем`framework`, которая будет содержать байт-код Move в формате`.mv`.

11\. Скомпилируйте генезис блоб и путевую точку.

```
cargo run --release -p aptos -- genesis generate-genesis --local-repository-dir ~/$WORKSPACE --output-dir ~/$WORKSPACE
```

Это создаст в вашем рабочем каталоге два файла `genesis.blob` и `waypoint.txt .`

12\. Скопируйте файлы `validator.yaml`, `fullnode.yaml` в этот каталог.

```
mkdir ~/$WORKSPACE/config
cp docker/compose/aptos-node/validator.yaml ~/$WORKSPACE/validator.yaml
cp docker/compose/aptos-node/fullnode.yaml ~/$WORKSPACE/fullnode.yaml
```

Измените файл конфигурации, чтобы обновить путь к ключу, путь к файлу генезиса, путь к путевой точке.

13\. Итак, напомним, что в вашем рабочем каталоге (`~/$WORKSPACE`) должен быть список из следующих файлов:

* `validator.yaml` файл конфигурации валидатора
* `fullnode.yaml` fфайл конфигурации полной ноды
* `private-keys.yaml` персональные ключи для владельца аккаунта, консенсуса и сети
* `validator-identity.yaml` персональные ключи для настройки идентификации валидатора
* `validator-full-node-identity.yaml` персональные ключи для настройки идентификации валидатора полной ноды&#x20;
* `<username>.yaml` информация об обеих нодах валидирующей/полной
* `layout.yaml`файл макета для определения корневого ключа, пользователя валидатора и ID цепи
* `framework` папка, содержащая весь байт-код move для AptosFramework
* `waypoint.txt` путевая точка транзакции генезиса&#x20;
* `genesis.blob` бинарный генезис файл, содержащий всю информацию о фреймворке, validatorSet и многом другом.

14\. Запустите локальный валидатор, выполнив следующую команду:

```
cargo run -p aptos-node --release -- -f ~/$WORKSPACE/validator.yaml
```

Запустите полную ноду на другом терминале:

```
cargo run -p aptos-node --release -- -f ~/$WORKSPACE/fullnode.yaml
```

Вы успешно завершили настройку вашей ноды в тестовом режиме. Теперь вы можете перейти на сайт [Aptos community](https://community.aptoslabs.com/) для регистрации.
