> For the complete documentation index, see [llms.txt](https://minanode.staketab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://minanode.staketab.com/russian/varianty-zapuska-nody/zapusk-coda-s-docker.md).

# Запуск Mina с Докером

## 1. Подготовка к запуску

### 1.1 Настройка Ubuntu

Обновляем пакеты на сервере до новейших версий:

```
sudo apt update && sudo apt upgrade -y
```

Установим и активируем Докер:

```
sudo apt install docker.io curl -y \
&& sudo systemctl start docker \
&& sudo systemctl enable docker
```

### 1.2 Настройка Фаервола

{% hint style="info" %}
Если на вашем VPS сервере есть встроенный Фаервол, то следует там открыть порты 8302 и 8303.\
\
Если же его нет, то следуйте командам ниже:
{% endhint %}

Открываем порты 8302 и 8303:

```
sudo iptables -A INPUT -p tcp --dport 8302:8303 -j ACCEPT
```

## 2. Варианты запуска ноды

{% hint style="warning" %}
Выберите только один вариант запуска из 2-х предложенных ниже (пункт 2.1 или 2.2).
{% endhint %}

### 2.1 Запуск только Производителя блоков (Block Producer):

Описание изменяемых переменных:

`--name mina` - имя для контейнера можно использовать любое, либо оставить так, как есть;\
`--env MINA_PRIVKEY_PASS='YOUR PASS'` - вместо `YOUR PASS` укажите пароль от вашего ключа.\
`--env UPTIME_PRIVKEY_PASS='YOUR PASS'` - вместо `YOUR PASS` укажите пароль от вашего ключа для программы делегации.\
`$KEYPATH` - путь к файлу с приватным ключем `my-wallet`. \
\
! Обязательно:\
`--coinbase-receiver B62qp...` - флаг перенаправления награды за блок на другой адрес.

```
sudo docker run --name mina -d \
--restart always \
-p 8302:8302 \
-p 127.0.0.1:3085:3085 \
-v $(pwd)/keys:/root/keys:ro \
-v $(pwd)/.mina-config:/root/.mina-config \
--env MINA_PRIVKEY_PASS='YOUR PASS' \
--env UPTIME_PRIVKEY_PASS='YOUR PASS' \
minaprotocol/mina-daemon:1.3.1.1-f361ba1-bionic-mainnet daemon \
--block-producer-key $KEYPATH \
--coinbase-receiver $YOUR_ADDRESS \
--peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt \
--uptime-submitter-key $KEYPATH \
--uptime-url https://uptime-backend.minaprotocol.com/v1/submit \
--insecure-rest-server \
--open-limited-graphql-port \
--limited-graphql-port 3095 \
--file-log-level Debug \
-log-level Info
```

### 2.1.1 Запуск Снарк Воркера (Snark Worker) к Производителю Блоков:

{% hint style="warning" %}
Если вы не хотите запускать Snark Worker вместе с Производителем Блоков. Вы можете сразу перейти к шагу 3.
{% endhint %}

Установим комиссию Воркера:\
`set-snark-work-fee 0.025` - значение комиссии `0.025` можно сменить на любое другое.

```
sudo docker exec -it mina mina client set-snark-work-fee 0.025
```

Запустим Воркер:

```
sudo docker exec -it mina mina client set-snark-worker -address $MINA_PUBLIC_KEY
```

{% hint style="info" %}
Для работы одновременно Производителя блоков (Block Producer) и Снарк Воркера (Snark Worker) можно настраивать Снарк Стоппер. Чтобы ненадолго останавливать Воркера во время производства блока.

Перейдите по ссылке ниже, чтобы настроить Снарк Стоппер.
{% endhint %}

{% content-ref url="/pages/-MH7JtIQH\_Rkp4cXEkA9" %}
[Настройка Снарк Стоппера](/russian/nastroika-snark-stoppera.md)
{% endcontent-ref %}

### 2.2 Запуск только Снарк Воркера (без Производителя Блоков)

Описание изменяемых переменных:

`--name mina` - имя для контейнера можно использовать любое, либо оставить так, как есть;

По умолчанию `-work-selection` для Снарк Воркера является случайным `rand`.\
Вы можете изменить это, добавив флаг `-work-selection seq` в конец команды запуска, которая будет работать с заданиями в том порядке, в котором они должны быть включены из состояния сканирования и скорее всего приведет к включению ваших снарков без потенциально длительной задержки;

`set-snark-work-fee 0.025` - значение комиссии Воркера `0.025` можно сменить на любое другое.

```
sudo docker run --name mina -d \
--restart always \
-p 8302:8302 \
-p 127.0.0.1:3085:3085 \
-v $(pwd)/keys:/root/keys:ro \
-v $(pwd)/.mina-config:/root/.mina-config \
minaprotocol/mina-daemon:1.3.1.1-f361ba1-bionic-mainnet daemon \
--peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt \
--snark-worker-fee 0.025 \
--run-snark-worker $MINA_PUBLIC_KEY \
--insecure-rest-server \
--file-log-level Debug \
-log-level Info
```

## 3. Просмотр логов

Посмотреть запущенные контейнеры:

```
sudo docker ps -a
```

Логи контейнера с нодой:

```
sudo docker logs --follow mina -f --tail 1000
```

Статус ноды:

```
sudo docker exec -it mina mina client status
```

### 3.1 Альтернативный вывод логов

```
sudo docker exec -it mina mina client status | grep "Block producers"
```

Вывод покажет только строку с запущенным производителем блоков. Пример ниже:

{% code title="#ПРИМЕР" %}

```
root@Mina:~# sudo docker exec -it mina mina client status | grep "Block producers"
Block producers running:         1 (B62qpSphT9prqYrJFio82WmV3u29DkbzGprLAM3pZQM2ZEaiiBmyY82)
```

{% endcode %}

![](/files/-MGxJtwv19_xI6CuqnlT)

## 4. Команды Докера

Остановка контейнера осуществляется командой:

```
sudo docker stop mina
```

Рестарт контейнера

```
sudo docker restart mina
```

Удаление контейнера:

```
sudo docker rm mina
```

Удаление запущенного контейнера:

```
sudo docker rm -f mina
```

## 5. Разное

Удаление папки с конфигом:

```
rm -rf $HOME/.mina-config
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://minanode.staketab.com/russian/varianty-zapuska-nody/zapusk-coda-s-docker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
