Завершённые
October 21, 2021

Zeitgeist | 0.3.2

Let's Node!

⠀Zeitgeist — развивающийся блокчейн для рынков предсказаний и футархии. Основные функции: методы создания, заключения пари и расчета рынков прогнозов.


Содержание


Информация о проекте

К содержанию

Описание

⠀Развивающийся блокчейн для рынков предсказаний и футархии. Основные функции сети Zeitgeist включают методы создания, заключения пари и расчета рынков прогнозов. Однако, проект также состоит из протокола управления, который влияет на направление сети, децентрализованного суда для разрешения споров и утилит для работы футархических организаций. Zeitgeist создан для экосистемы Polkadot и Kusama и позиционирует себя как центр рынков прогнозирования в Web3.

⠀Название имеет немецкие корни и переводится на русский как «Дух времени»:

  • Zeit — время, момент;
  • Geist — дух, призрак.

Фазы

⠀Фазы пока неизвестны.

Награды

⠀Да, мы планируем вознаграждать операторов узлов. У нас обязательно будет какая-то форма вознаграждения для коллаторов, и мы обсуждаем дополнительные варианты. Владельцы нод, которые принимали участие в предыдущих месяцах, получат приоритетное право становления коллаторами. Более подробную информацию мы сообщим в ближайшем будущем.

Требования к серверу

К содержанию

По документации (VPS/VDS/DS):
Ryzen 5 3600 (6C/12T), 16 GB RAM, SSD

⠀Подходит (VPS/VDS/DS):
4 CPU, 8 GB RAM, 400 GB SSD

⠀Подходящие сервера:


Запуск

К содержанию

⠀Каждый подраздел — отдельный вид установки, нужно выбрать один из них.

Linux (ручной)

Для новичков

⠀Обновить пакеты

sudo apt update && sudo apt upgrade -y

⠀Установить необходимые пакеты

sudo apt install wget jq build-essential pkg-config libssl-dev -y

⠀Создать пользователя

sudo useradd -M zeitgeist
sudo usermod zeitgeist -s /sbin/nologin

⠀Создать папки для ноды

sudo mkdir -p /services/zeitgeist/bin /services/zeitgeist/battery_station

⠀Скачать необходимые файлы

cd; \
zeitgeist_version=`wget -qO- https://api.github.com/repos/zeitgeistpm/zeitgeist/releases/latest | jq -r ".tag_name"`; \
wget -qO /services/zeitgeist/bin/zeitgeist "https://github.com/zeitgeistpm/zeitgeist/releases/download/${zeitgeist_version}/zeitgeist_parachain"; \
wget -qO /services/zeitgeist/battery_station/battery-station-relay.json "https://raw.githubusercontent.com/zeitgeistpm/polkadot/battery-station-relay/node/service/res/battery-station-relay.json"; \
chmod +x /services/zeitgeist/bin/zeitgeist; \
cp /services/zeitgeist/bin/zeitgeist /usr/bin/

⠀Назначить владельца папки

sudo chown -R zeitgeist:zeitgeist /services/zeitgeist

⠀Придумать название ноды, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n zeitgeist_moniker

⠀Открыть используемые порты

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) 30333 9933 9944 30334 9934 9945

⠀Создать сервисный файл

sudo tee <<EOF >/dev/null /etc/systemd/system/zeitgeistd.service
[Unit]
Description=Zeitgeist node
After=network.target
Requires=network.target

[Service]
User=zeitgeist
Group=zeitgeist
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
ExecStart=/services/zeitgeist/bin/zeitgeist \\
    --base-path /services/zeitgeist/battery_station \\
    --chain battery_station \\
    --name "$zeitgeist_moniker" \\
    --port 30333 \\
    --rpc-port 9933 \\
    --ws-port 9944 \\
    --rpc-external \\
    --ws-external \\
    --rpc-cors all \\
    --pruning archive \\
    -- \\
    --port 30334 \\
    --rpc-port 9934 \\
    --ws-port 9945

[Install]
WantedBy=multi-user.target
EOF

⠀Запустить сервисный файл

sudo systemctl daemon-reload
sudo systemctl enable zeitgeistd
sudo systemctl restart zeitgeistd

⠀Добавить команду для просмотра лога ноды в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n zeitgeist_log -v "sudo journalctl -fn 100 -u zeitgeistd" -a

Сохранить файл в надёжном месте (команда отображает путь)

echo /services/zeitgeist/battery_station/chains/battery_station_mainnet/network/secret_ed25519

Docker

Для любителей прекрасного

⠀Прочитать статью «Знакомство с Docker».

⠀Установить Docker

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)

⠀Скачать образ

docker pull zeitgeistpm/zeitgeist-node-parachain:latest

⠀Создать папку для ноды

mkdir $HOME/zeitgeist

⠀Скачать необходимые файлы

zeitgeist_version=`wget -qO- https://api.github.com/repos/zeitgeistpm/zeitgeist/releases/latest | jq -r ".tag_name"`; \
wget -qO $HOME/zeitgeist/battery-station-relay.json "https://github.com/zeitgeistpm/zeitgeist/releases/download/${zeitgeist_version}/battery-station-relay.json"

⠀Придумать название ноды, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n zeitgeist_moniker

⠀Открыть используемые порты

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) 30333 9933 9944

⠀Добавить команды в систему в виде переменных:

  • Просмотр лога ноды;
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n zeitgeist_log -v "docker logs zeitgeist_node -fn 100" -a

Если участвовали в более ранних этапах проекта

⠀Перейти к разделу «Восстановление».

Если только присоединились

⠀Запустить контейнер

docker run -dit \
    -v $HOME/.zeitgeist:/zeitgeist/data \
    -u $(id -u ${USER}):$(id -g ${USER}) \
    --name zeitgeist_node \
    --restart always \
    -p 30333:30333 \
    -p 9933:9933 \
    -p 9944:9944 \
    zeitgeistpm/zeitgeist-node-parachain:sha-b6d3a33 \
    --base-path /zeitgeist/data \
    --chain battery_station \
    --name "$zeitgeist_moniker" \
    --pruning archive

Сохранить файл в надёжном месте (выполнять как одну команду, вторая отображает путь)

docker cp zeitgeist_node:/zeitgeist/data/chains/battery_station_mainnet/network/secret_ed25519 $HOME/secret_ed25519; \
echo $HOME/secret_ed25519

Проверка работы

К содержанию

⠀Открыть лог

zeitgeist_log

⠀Лог рабочей ноды ниже

⠀Перейти в Explorer, ввести название ноды и удостовериться, что она есть в списке

⠀Ноды в списке может не быть, потому что у Explorer’а ограничение на показ 1000 штук. Нода может появиться в списке позже.


Восстановление

К содержанию

Подготовка

В частности рекомендуется тем, кто участвовал в более ранних этапах

⠀Если стоит старая нода и ещё не сохранён файл secret_ed25519, то сохранить его (команда начнёт поиск файла по серверу)

find / -name secret_ed25519

Linux

Запустить ноду

⠀Скинуть сохранённый в более ранних этапах файл secret_ed25519 в папку /services/zeitgeist/

⠀Изменить права на файл

chmod +x /services/zeitgeist/secret_ed25519

⠀Изменить сервисный файл

sudo tee <<EOF >/dev/null /etc/systemd/system/zeitgeistd.service
[Unit]
Description=Zeitgeist node
After=network.target
Requires=network.target

[Service]
User=zeitgeist
Group=zeitgeist
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
ExecStart=/services/zeitgeist/bin/zeitgeist \\
    --base-path /services/zeitgeist/battery_station \\
    --node-key-file /services/zeitgeist/secret_ed25519 \\
    --chain battery_station \\
    --name "$zeitgeist_moniker" \\
    --port 30333 \\
    --rpc-port 9933 \\
    --ws-port 9944 \\
    --rpc-external \\
    --ws-external \\
    --rpc-cors all \\
    --pruning archive \\
    -- \\
    --port 30334 \\
    --rpc-port 9934 \\
    --ws-port 9945

[Install]
WantedBy=multi-user.target
EOF

⠀Перезапустить сервисный файл

sudo systemctl daemon-reload
sudo systemctl enable zeitgeistd
sudo systemctl restart zeitgeistd

⠀Удостовериться, что нода использует восстановленный ID (самое нижнее значение)

journalctl -u zeitgeistd.service | grep "node id"

Docker

⠀Скинуть сохранённый в более ранних этапах файл secret_ed25519 в папку

echo $HOME/.zeitgeist/

⠀Запустить контейнер

docker run -dit \
    -v $HOME/.zeitgeist:/zeitgeist/data \
    -u $(id -u ${USER}):$(id -g ${USER}) \
    --name zeitgeist_node \
    --restart always \
    -p 30333:30333 \
    -p 9933:9933 \
    -p 9944:9944 \
    zeitgeistpm/zeitgeist-node-parachain:latest \
    --base-path /zeitgeist/data \
    --node-key-file /zeitgeist/data/secret_ed25519 \
    --chain battery_station \
    --name "$zeitgeist_moniker" \
    --pruning archive

⠀Удостовериться, что нода использует восстановленный ID (самое нижнее значение)

docker logs zeitgeist_node | grep "node id"

Обновление

К содержанию

Linux

⠀Остановить сервисный файл

systemctl stop zeitgeistd

⠀Скачать последнюю версию бинарного файла

cd; \
zeitgeist_version=`wget -qO- https://api.github.com/repos/zeitgeistpm/zeitgeist/releases/latest | jq -r ".tag_name"`; \
wget -qO /services/zeitgeist/bin/zeitgeist "https://github.com/zeitgeistpm/zeitgeist/releases/download/${zeitgeist_version}/zeitgeist_parachain"; \
wget -qO /services/zeitgeist/battery_station/battery-station-relay.json "https://raw.githubusercontent.com/zeitgeistpm/polkadot/battery-station-relay/node/service/res/battery-station-relay.json"; \
chmod +x /services/zeitgeist/bin/zeitgeist; \
cp /services/zeitgeist/bin/zeitgeist /usr/bin/

⠀Дать разрешение на его выполнение

sudo chown -R zeitgeist:zeitgeist /services/zeitgeist

⠀Запустить сервисный файл

systemctl restart zeitgeistd

⠀Проверить логи

zeitgeist_log

Docker

⠀Обновить образ

docker pull zeitgeistpm/zeitgeist-node-parachain:latest

⠀Остановить ноду

docker stop zeitgeist_node

⠀Удалить контейнер с нодой

docker rm zeitgeist_node

⠀Запустить контейнер с нодой

docker run -dit \
    --name zeitgeist_node \
    --restart always \
    -p 30333:30333 \
    -p 9933:9933 \
    -p 9944:9944 \
    -v $HOME/zeitgeist/secret_ed25519:/zeitgeist/data/secret_ed25519 \
     zeitgeistpm/zeitgeist-node-parachain:latest \
    --base-path /zeitgeist/data \
    --node-key-file /zeitgeist/data/secret_ed25519 \
    --chain battery_station \
    --name "$zeitgeist_moniker" \
    --pruning archive

Вклад сообщества

К содержанию

Наша команде не несёт ответственности за возможные негативные последствия, поскольку не может гарантировать безопасность использования представленных инструментов

Как сюда попасть?

⠀Чтобы попасть в этот почётный раздел необходимо написать SecorD’у сообщение с информацией об инструменте:

  • Название проекта;
  • Краткое название в 2-3 слова (будет использоваться как заголовок);
  • Описание, которое будет добавлено в статью (зачем нужно, функционал, как использовать, другая полезная информация, желательно со скриншотами).

⠀Что это даёт?

  • Пользу сообществу;
  • Возможность заявить о себе;
  • Дополнительную возможность представления доказательств контрибуции в различных проектах.

Полезные команды

К содержанию

⠀Доступные переменные (при использовании убрать echo)

echo $zeitgeist_moniker

⠀Посмотреть лог ноды

zeitgeist_log
sudo journalctl -fn 100 -u zeitgeistd
docker logs zeitgeist_node -fn 100

⠀Узнать ID ноды (самое нижнее значение)

journalctl -u zeitgeistd.service | grep "node id"
docker logs zeitgeist_node | grep "node id"

⠀Перезапустить ноду

sudo systemctl restart zeitgeistd
docker restart zeitgeist_node

Полезные ссылки

К содержанию

Официальный сайт проекта | Официальная группа Telegram

Русскоязычная группа Telegram | Discord General | Discord Seer | Twitter

GitHub | Официальная документация | Explorer | Blog


Благодарности

К содержанию

Команда Let’s Node! — изучение проекта, написание статьи

Выразить благодарность