Battery Park
! ZEITGEIST BATTERY PARK ВСЕ ЕЩЕ НАХОДИТСЯ НА СТАДИИ НЕВЫПУЩЕННОЙ АЛЬФА-ВЕРСИИ . Вы можете использовать это руководство для подключения к ней, но некоторые вещи могут не работать. Если вы хотите сообщить об ошибке, пожалуйста, напишите о проблеме в нашем репозитории GitHub. Также обратите внимание, что цепь может быть сброшена в любой момент без предупреждения.
Battery Park — это название тестовой сети Zeitgeist. Она названа в честь The Battery , красивого парка на южной оконечности острова Манхэттен с видом на Статую Свободы.
Если вы хотите поддержать и укрепить Battery Park, запустив свою собственныю сетевую ноду, перейдите в раздел Присоединиться. Если вы хотите взаимодействовать с Battery Park, перейдите в раздел Доступ к пользовательскому интерфейсу.
Get connected #
Этот раздел поможет вам настроить собственную ноду. При текущей средней нагрузке на систему ноды можно запустить на Raspberry PI 4B (собранном из исходников):
- CPU: Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
- RAM: 4 GB
- Hard drive: SSD recommended, but also works on MicroSD for low loads
Минимальные системные требования при постоянной полной загрузке системы :
- CPU: Ryzen 5 3600
- RAM: 32 GB (less should be sufficient, but was not tested)
- Hard drive: SSD
Существует два способа запустить ноду и подключиться к тестовой сети Battery Park. Один из способов — собрать код из исходников. На современном оборудовании это займет около 5–10 минут. Другой способ — использовать Docker, который не требует сборки и позволяет сразу же приступить к работе.
Примечание для пользователей Windows: Хотя этот проект можно собрать на Windows, он плохо поддерживается. Вместо этого рекомендуется собирать этот проект внутри WSL в Windows. Если вы все равно хотите собрать проект на Windows, вы можете следовать этому руководству для настройки среды сборки и после этого продолжить работу с этим руководством. Мы не тестировали сборку на Windows и не можем гарантировать, что она будет работать.
Исходный код размещен в репозитории zeitgeistpm/zeitgeist на Zeitgeist GitHub.
Для компиляции проекта на вашей системе должен быть установлен Rust. Мы рекомендуем использовать rustup для управления средами сборки rust. Эта инструкция предполагает, что у вас установлен rustup.
Вам нужно будет клонировать код локально и убедиться, что у вас установлены все зависимости. Выполните следующие команды, чтобы получить проект:
# clone the code locally
git clone https://github.com/zeitgeistpm/zeitgeist.git
# change directory
cd zeitgeist
Далее настройте rustup, на Unix вы можете выполнить следующий скрипт:
# use the initializer script
./scripts/init.sh
В противном случае настройте rustup вручную:
rustup update nightly-2021–03–10
rustup update stable
rustup target add wasm32-unknown-unknown — toolchain nightly-2021–03–10
После инициализации вы можете начать сборку с помощью команды cargo:
cargo build — release
После завершения сборки у вас будет двоичный файл zeitgeist, доступный в папке target / release . Вы можете запустить ноду для Battery Park из корня каталога следующим образом:
./target/release/zeitgeist — chain battery_park
Вы должны увидеть, как ваша нода начинает синхронизировать блоки.
Предыдущая команда сохранит данные цепочки в $ HOME / .local / share / zeitgeist / chain / battery_park . Вы можете выбрать другое местоположение, например / services / zeitgeist , используя -d параметр:
./target/release/zeitgeist -d / services / zeitgeist — chain battery_park
Убедитесь, что у вас есть права на запись пути. Если вы хотите использовать папку / services / zeitgeist в корне файловой системы, вам придется изменить владельца на пользователя, который запускает ноду Zeitgeist (здесь называется user):
chown -R user:user /services/zeitgeist
Если вы хотите получать вознаграждение от Zeitgeist за запуск узла, вы должны убедиться, что ваш идентификатор является постоянным, а ваша нода имеет большое время работы. Идентификатор вашего узла является производным от секрета, который хранится в / services / zeitgeist / chain / battery_park / network / secret_ed25519. Сначала убедитесь, что файл доступен только для чтения:
chmod 400 /services/zeitgeist/chains/battery_park/network/secret_ed25519
Затем сделайте резервную копию секретного файла , чтобы вы могли продолжать получать вознаграждение после потери данных.
Ваш идентификатор узла печатается узлом вскоре после его запуска. Это выглядит так:
Local node identity is: 12D3KooWKzzeu1thnWQv8CCWaugFfpeCXnq7jmp6GENSdXqG5xX9
Кроме того, вы должны убедиться, что ваша нода имеет максимальное время работы, поскольку от этого будет зависеть ваше вознаграждение. Для этого можно использовать службу systemd, которая автоматически запускает вашу цепочку Zeitgeist и перезапускает ее в случае ошибки. Для этого вы можете следовать руководству по Автоматическому запуску цепочки Zeitgeist как службы systemd (Linux).
Не стесняйтесь экспериментировать с другими доступными опциями, которые вы можете проверить, выполнив:
./target/release/zeitgeist — help
Автоматический запуск цепочки Zeitgeist как службы systemd (Linux) #
Чтобы автоматически запускать и перезапускать цепочку zeitgeist, вы можете использовать службу systemd. Не рекомендуется делать это с помощью docker , но для двоичного файла zeitgeist, который был собран из исходников, этого вполне достаточно.
Мы создадим непривилегированного пользователя для узла Zeitgeist, настроим структуру папок, создадим файл службы systemd, запустим службу и проверим выходные данные.
Создайте нового пользователя (без домашней папки) и отключите вход для этого пользователя (убедитесь, что скопировали и вставили обе команды последовательно, чтобы убедиться, что они будут выполнены):
sudo useradd -M zeitgeist
sudo usermod zeitgeist -s /sbin/nologin
Создайте папку, которая будет содержать данные Zeitgeist и ранее скомпилированный двоичный файл (см. Сборка из источника). Запишите, где находится ваш двоичный файл zeitgeist (он находится в исходной папке в target / release) и замените путь после команды cp, как показано ниже. В этом примере мы будем использовать / services / zeitgeist в качестве базовой папки для нашей службы, / service / zeitgeist / bin будет содержать двоичный файл zeitgeist, а вся структура папок / services / zeitgeist будет принадлежать созданному нами непривилегированному пользователю zeitgeist , которого мы создали на предыдущем шаге:
sudo mkdir -p /services/zeitgeist/bin
sudo cp /path/to/your/target/release/zeitgeist /services/zeitgeist/bin
sudo chown -R zeitgeist:zeitgeist /services/zeitgeist
Создайте служебный файл systemd. Вы можете использовать ваш любимый редактор, но в этом примере мы будем использовать nano, потому что он хорошо поддерживается.
sudo nano /etc/systemd/system/zeitgeist-node.service
Вы можете просто использовать следующий шаблон или настроить его под свои нужды:
[Unit]
Description=Zeitgeist chain node
After=network.target
Requires=network.target
[Service]
Type=simple
User=zeitgeist
Group=zeitgeist
RestartSec=5
Restart=always
Nice=0
ExecStart=/services/zeitgeist/bin/zeitgeist \
-d /services/zeitgeist \
— chain battery_park
[Install]
WantedBy=multi-user.target
Вы можете настроить значение Nice, чтобы настроить приоритет процесса, запускаемого службой. 20 — самый низкий, -20 — самый высокий приоритет.
Примечание. Если вы хотите участвовать в программе сопоставления Zeitgeist , вам также следует добавить --name your_node_name
параметр в конец аргумента ExecStart служебного файла.
Вставьте буфер копирования в nano, нажав, CTRL+SHIFT+V
и сохраните изменения, нажав CTRL+X
, y
иENTER
Включите сервис и запустите его:
sudo systemctl enable zeitgeist-node
sudo systemctl start zeitgeist-node
Проверьте, работает ли он и синхронизируется ли он с остальной сетью:
systemctl статус zeitgeist-node
Если он показывает Active ваша служба работает должным образом. Используйте следующую команду, чтобы получить идентификатор вашего узла:
journalctl -u zeitgeist-node.service | grep “идентификатор узла”
В противном случае введите следующую команду и проверьте, что пошло не так:
journalctl -u zeitgeist-node
Если у вас возникла ошибка, вы можете обратиться за помощью в наш канал Discord для операторов узлов .
Использование Docker #
Мы публикуем последнюю версию в Docker Hub, которую можно загрузить и запустить локально для подключения к сети. Для этого сначала убедитесь, что у вас установлен Docker локально.
Скачивание образа докера #
docker pull zeitgeistpm / zeitgeist-node: последний
Запуск образа докера #
Вы можете запустить образ докера с помощью следующей команды, но идентификатор узла и данные цепочки будут потеряны после закрытия контейнера докера:
docker run zeitgeistpm / zeitgeist-node: latest — chain battery_park
Чтобы сохранить данные цепочки, вам нужно будет выбрать в вашей системе папку, в которой докер будет хранить свои файлы. Убедитесь, что папка действительно существует. Предполагая, что путь, который вы хотите использовать локально, — / services / zeitgeist , команда будет выглядеть так:
docker run -v / services / zeitgeist: / zeitgeist zeitgeistpm / zeitgeist-node: latest -d / zeitgeist — chain battery_park
Убедитесь, что у вас есть права на запись для пути. Если вы хотите использовать папку / services / zeitgeist в корне файловой системы, вам придется изменить владельца на пользователя, который запускает ноду Zeitgeist ( здесь он называется user ). В системах Unix вы можете изменить владельца, используя следующую команду:
chown -R пользователь: пользователь / услуги / zeitgeist
Если вы хотите получать вознаграждение через программу Zeitgeist за запуск узла, вы должны убедиться, что ваш идентификатор узла является постоянным, а ваша нода имеет высокое время работоспособности. Идентификатор вашего узла является производным от секрета, который хранится в / services / zeitgeist / chain / battery_park / network / secret_ed25519 . Сначала убедитесь, что файл доступен только для чтения. В Unix:
chmod 400 / услуги / zeitgeist / цепи / аккумулятор_парк / сеть / secret_ed25519
В Windows (при условии, что вы выбрали путь C: \ services \ zeitgeist ):
attrib + r “C: \ services \ zeitgeist \ chain \ battery_park \ network \ secret_ed25519”
Затем сделайте резервную копию секретного файла в безопасном месте, чтобы вы могли продолжать получать вознаграждение за этот идентификатор узла после потери данных.
Ваш идентификатор узла печатается узлом вскоре после выполнения docker run
команды. Сообщение выглядит так:
Идентификатор локального узла: 12D3KooWKzzeu1thnWQv8CCWaugFfpeCXnq7jmp6GENSdXqG5xX9
Вот и все, ваша нода должна работать и синхронизироваться с другими нодами, при этом используется постоянное хранилище цепочки и идентификатор ноды. Если вы хотите участвовать в программе ,вы должны убедиться, что ваша нода имеет максимальное время безотказной работы, потому что от этого будут зависеть ваши вознаграждения. Предлагается автоматически запускать и перезапускать контейнер докеров, который запускает нолу, что объясняется в разделе «Автоматический запуск цепочки Zeitgeist в качестве службы докеров» .
Автоматический запуск сети Zeitgeist как докер-службы #
Для автоматического запуска контейнера докеров каждый раз ( в том числе после перезагрузки и ошибок), кроме случаев , когда он был явно остановлен командой Docker, добавьте -d
и --restart
флаг в docker run
команде сверху:
docker run — restart except-stop -d -v / services / zeitgeist: / zeitgeist zeitgeistpm / zeitgeist-node: latest -d / zeitgeist — chain battery_park
Примечание. Если вы хотите участвовать в программе сопоставления Zeitgeist , вам также следует добавить --name your_node_name
параметр в конце предоставленной команды.
После выполнения команды в терминале печатается одна строка, представляющая идентификатор контейнера. Это выглядит так:
1e501c25e43be3f2cecc3bade11b22f60f17839d41b37cdac9139cb8ebc8700b
Чтобы получить свой идентификатор узла, выполните следующую команду (замените container_id с контейнерным идентификатором , который был напечатан на терминал):
docker logs container_id
Предыдущая команда показывает выходные данные узла. Он должен включать одну строку, содержащую идентификатор вашего узла, которая выглядит так:
Идентификатор локального узла: 12D3KooWKzzeu1thnWQv8CCWaugFfpeCXnq7jmp6GENSdXqG5xX9
Вы также можете получить идентификатор контейнера с помощью следующей команды (возможно, вам придется заменить последнюю версию образа докера, которую вы используете):
docker ps — filter ancestor = zeitgeistpm / zeitgeist-node: latest
Убедитесь, что вы можете восстановить идентификатор вашего узла #
Для любого, кто ввел идентификатор узла в любую из наших форм, важно, чтобы вы сделали резервную копию соответствующего секрета узла после того, как вы настроили ноду, чтобы гарантировать, что вы всегда можете восстановить идентификатор узла, который вы ввели и, следовательно, всегда может продолжать собирать награды на основе этого идентификатора узла.
ID вашей ноды извлечён из секретной фразы. Если вы потеряете доступ к данным своего узла, невозможно восстановить ваш идентификатор узла, если вы не создали резервную копию, пока у вас был доступ к данным.
Резервное копирование секретного файла узла из службы Docker #
В следующих разделах объясняется, как получить путь к секрету узла в системах на базе Unix и Windows. После получения пути скопируйте файл, расположенный по пути, в безопасное место, которое не находится на том же компьютере, с которого вы скопировали файл.
В Unix #
echo “$ (CONTAINER_ROW =` docker ps | grep zeitgeistpm / zeitgeist-node` && docker inspect — format ‘{{range .Mounts}} {{println .Destination}} {{end}}’ $ {CONTAINER_ROW %% * } | sed -n ‘2p’) / цепи / battery_park / network / secret_ed25519 “
В Windows #
Сначала получите идентификатор контейнера:
docker ps | findstr “zeitgeist”
Идентификатор контейнера — это крайнее левое число в строке. Затем получите том, к которому он подключен (замените container_id на идентификатор, который вы извлекли на предыдущем шаге):
docker inspect — format ‘{{range .Mounts}} {{println .Destination}} {{end}}’ container_id
Наконец, добавьте следующую строку к последнему пути в выходных данных: \ цепочки \ battery_park \ network \ secret_ed25519 Результирующая строка — это расположение секретного файла.
Резервное копирование секретного файла узла из службы systemd #
Следующая команда напечатает местоположение секретного файла вашего узла (возможно, вам придется заменить zeitgeist-node именем вашей службы узла Zeitgeist):
SECRET_LOCATION = `journalctl -u zeitgeist-node | grep “База данных: RocksDb at” `&& echo $ {SECRET_LOCATION ## * RocksDb at} | sed ‘s / \ / db / \ / network \ / secret_ed25519 /’
Скопируйте файл в безопасное место, которое не находится на том же компьютере, с которого вы скопировали файл.
Восстановление идентификатора узла #
Перед запуском узла резервная копия секретного файла узла должна быть помещена в папку данных узла Zeitgeist. Действия по восстановлению идентификатора узла немного отличаются между docker и systemd и описаны в следующих разделах.
Сначала скопируйте файл резервной копии секрета узла secret_ed25519 в папку данных вашего узла Zeitgeist. Вы можете использовать следующую команду для получения папки данных (замените zeitgeist-node.service именем вашего файла Zeitgeist systemd):
cat /etc/systemd/system/zeitgeist-node.service | grep — “-d”
После копирования резервной копии секретного файла узла в это место добавьте следующую строку в строку, начинающуюся с ExecStart в вашем файле Zeitgeist systemd (замените / services / zeitgeist на папку данных, в которую вы поместили резервную копию):--node-key-file /services/zeitgeist/secret_ed25519
Остановите любую работающую ноду, обновите домен и снова запустите ноду (замените zeitgeist-node ):
sudo systemctl stop zeitgeist-node; sudo systemctl daemon-reload && sudo systemctl start zeitgeist-node
Наконец, убедитесь, что нода Zeitgeist действительно использует идентификатор вашей старой ноды (замените ноду zeitgeist ):
journalctl -u zeitgeist-node.service | grep “node id”
Подключение к телеметрии #
По умолчанию ваша нода будет подключаться к конечной точке телеметрии Parity, доступной по адресу https://telemetry.polkadot.io . Вы можете убедиться, что ваша нода запущена и работает, посетив эту страницу, выбрав сеть «Zeitgeist Battery Park» и выполнив поиск по имени вашей ноды (поиск можно запустить, просто введя текст на странице телеметрии).
Альтернативная телеметрия #
Поскольку мы недавно достигли предела в 500 активных узлов на сервере телеметрии Parity, мы также создали наш собственный сервер телеметрии. Теперь вы также можете увидеть, подключена ли ваша нода, посетив нашу страницу по адресу https://telemetry.zeitgeist.pm .
Доступ к пользовательскому интерфейсу #
Вы можете получить доступ к кампании, которую мы создали, чтобы отметить аукционы парачейнов в Kusama , и помочь стимулировать нашу тестовую сеть по адресу: https://proto.zeitgeist.pm/kusama-derby
Вы можете следовать нашему руководству по Kusama Derby, чтобы узнать, как с ним взаимодействовать. Это не полное приложение Zeitgeist, это всего лишь один особый случай использования. Полная версия приложения Zeitgeist будет выпущена в будущем.
Вы также можете получить доступ к (расширенному) пользовательскому интерфейсу на основе приложений по адресу: https://polkadot.js.org/apps/?rpc=wss://bp-rpc.zeitgeist.pm
Кран #
У нас есть сборщик , который можно использовать для получения собственной валюты Zeitgeist для тестовой сети Battery Park, ZBS (Zeitgeist Battery Park), которая необходима для многочисленных взаимодействий с Battery Park. Для получения ZBS вам понадобится учетная запись.
Существует множество способов создать учетную запись, но мы предлагаем использовать расширение Polkadot {.js} , потому что оно простое и понятное в использовании. Вы можете получить его по адресу: