Battery Park

Anatoli401
10 min readOct 18, 2021

--

! 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} , потому что оно простое и понятное в использовании. Вы можете получить его по адресу:

--

--

Anatoli401

#ctsi #btc #eth #NFT #NFTCommunity #cryptotrading #nftsstories