May 16, 2022

KYVE Network - гайд по тестнету

Участвуем в вознаграждаемом тестнете KYVE Network.

СОДЕРЖАНИЕ

ОПИСАНИЕ ПРОЕКТА

KYVE - децентрализованный протокол архивирования данных. Это протокол нового поколения, который стандартизирует, валидирует и хранит потоки данных.

Основная проблема текущих блокчейнов - постоянно растущее количество информации. Чем больше информации хранится в блокчейне, тем дороже и сложнее с ней взаимодействовать. KYVE позволяет хранить и доставать информацию из блокчейнов моментально. А это, в свою очередь, помогает и упрощает работу приложениям при взаимодействии с данными блокчейнов.

Платформа сжимает любой настраиваемый поток данных в легко извлекаемые "моментальные снимки". В тандеме с Arweave для создания постоянных резервных копий, KYVE обеспечивает долговечность этих данных с течением времени.

Благодаря своей масштабируемости, постоянности и доступности, Arweave является идеальным решением для хранения данных.

Тем не менее, доступность данных не равнозначна достоверности данных.
Поэтому мы рассматриваем KYVE и Arweave как связку: в то время как KYVE обеспечивает надежную достоверность данных, Arweave, напротив, фокусируется на доступности данных (воспроизводимости).

Когда блокчейн создает блок, эта информация является общедоступной. KYVE извлекает эти данные через узлы блокчейна, валидирует (проверяет достоверность) и сохраняет информацию с помощью Arweave.

Архитектура KYVE полностью децентрализована и состоит из двух основных компонентов: пулы и загрузчики с валидаторами.


Пулы. Пул - этоавтономная система управления, которая занимается проверкой "качества работы загрузчиков и валидаторов" или "нарушениями контракта”.

Пулы можно описать как отдельные объекты, расположенные вокруг определенных источников данных. Они могут быть созданы кем угодно, настроены для извлечения данных из любого места и организации повседневных операций между участниками сети.

Перед пулом стоит 2 задачи: получить информацию из источника (в нашем случае, из блокчейна) и проверить информацию на достоверность.

Функциональность управления обеспечивается путем размещения токена $KYVE, гарантируя, что участники ведут себя в соответствии с целями сети.


Валидаторы и загрузчики. Это вычислительный уровень, который позволяет участникам запускать настраиваемые узлы. В обмен на $KYVE узлы выполняют различные задачи. Эти узлы проверяют, стандартизируют и архивируют потоки данных.

Загрузчик (Uploader): Для каждого пула выбирается только один загрузчик.
Загрузчики извлекают данные из источника, выполняют инструкции, которые могут включать вычислительный этап, и записывают эти данные в Arweave.

Если валидаторы обнаружат, что загрузчик нарушает их условия, доля загрузчика уменьшается - происходит слешинг и на место загрузчика выбирается валидатор.
То же самое произойдёт, если узел загрузчика по какой-либо причине был отключен.

Валидатор (Validator): проверяет информацию, загруженную загрузчиком на достоверность.

Когда информация получена и проверена, на арену выходит Arweave, который обеспечивает безопасное и надёжное хранение данных, а также моментальный доступ к информации.


Каждый пул принимает форму децентрализованной автономной организации (DAO), которая работает на SmartWeave, языке смарт-контрактов Arweave.

Операторы узлов являются синонимами участников пула, которые организованы в получение потоков данных, выполнение вычислений на них и запись результатов в Arweave.

Если соблюдены определенные критерии, пулы также распределяют токены $KYVE среди назначенных загрузчиков и валидаторов.

Теперь узлы, желающие присоединиться к сети блокчейна и синхронизироваться с ее последним состоянием, могут сделать это на порядок быстрее, чем раньше.

Операторам больше не нужно извлекать блоки один за другим; вместо этого потоки данных сокращаются в моментальные снимки с гарантированной доступностью.


Backers: Coinbase, CMS, Mechanism, Distributed Global, Solana, Hypersphere, Permanent, 4SV, Volt, Compute, Ternary, Avalanche, Zee Prime, Mina, Moonbeam, Near, Interchain, Ava и ещё 7 "скрытых" инвесторов.


Roadmap:
Q2 2022 - вознаграждаемый тестнет, больше интеграций;
Q3/Q4 2022 - TGE и... БОЛЬШЕ ИНТЕГРАЦИЙ.

Blog | Docs | GitHub | WebSite | Twitter | Discord | Telegram | Chat_RU

ДЕТАЛИ ИВЕНТА

Тестнет начался 2 мая 2022 года и продлится 2 месяца. Ориентировочная дата окончания ивента - 2 июля 2022 года.

Активности разделены на 3 группы: Design, Community, Engineering. Выполняя задания из каждого раздела мы зарабатываем очки, points. По окончанию тестнета пул наград будет распределён между TOP-10000 рейтинга в зависимости от вашей позиции в лидерборде.


Список всех активностей:

Design:

  • Создать видео-туториал (max 2 how-to ролика на участника),
    1500 points per video;
  • Создать видео-интро (max 2 intro ролика на участника),
    1500 points per video;
  • Создать забавный контент (max 5 memes на участника),
    150 points per content;
  • Создать обучающий контент (max 2 explaining items на участника),
    500 points per content.

Community:

  • Подписаться на твиттер KYVENetwork,
    100 points total;
  • Сделать ретвит последнего твита,
    40 points per retweet;
  • Лайкнуть последний пост,
    40 points per like;
  • Клейм тестовых токенов KYVE с помощью Korellia Wheel (1 раз в сутки),
    1/5/10 points per spin;
  • Клейм тестовых токенов KYVE с помощью Twitter ,
    150 points total;
  • Клейм тестовых токенов KYVE с помощью Discord (1 раз в сутки),
    20 points per claim.

Engineering:

  • Проголосовать в пропозале ,
    10 points per vote;
  • Делегировать токены через DApp ,
    150 points max;
  • Спонсировать пул,
    50 points max;
  • Стейкать токены с помощью ноды ,
    130 points max;
  • Быть выбранным загрузчиком (только для нод, зависит от удачи),
    50 points per bundle;
  • Голосовать, будучи валидатором (только для нод, зависит от кривоты рук),
    1 point per correct vote.

Bug-hunting:

  • Находить баги и сообщать о них команде в дискорде,
    Нет определённой награды, зависит от веса ошибки.

Теперь про награды.

Существуют 2 пула: пул А и пул B.

  1. Пул А разделят TOP-5000 лидерборда (от 1-го до 5000-го места);
  2. Пул B разделят TOP-10000 лидерборда (от 1-го до 10000-го места).

Награда будет зависеть от вашего положения в рейтинге, очевидно.

От общего предложения токенов выделено 2% (20кк токенов).

Из этих 20 миллионов токенов: по 5кк поделят пулы А и B, а оставшиеся 10кк токенов команда делегирует TOP-2500 или TOP-5000 в майннете.

То есть, будучи 187-м в таблице рейтинга вы получите часть награды из пула А, часть награды из пула В и ещё делегацию в майннете. Заняв 6537 место — только несколько токенов из пула В.

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

УЧАСТИЕ

Community

Первым делом, мы, конечно, должны привязать кошелёк к app.kyve.network. Открываем DApp, чтобы подключить свой Keplr к сайту и начать зарабатывать очки:

Разрешаем сайту получить доступ к кошельку и добавить в него сеть Korellia, кликнув на Approve:

Отлично, кошелёк подключился.

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

Первым делом я предлагаю запросить тестовые токены в кране, которые нам в будущем в любом случае понадобятся, чтобы получить первые очки.

Краны работают почти стабильно. Иногда токены доходят долго, иногда не доходят. Наберитесь терпения и не спамьте в чатах и дискордах.

Нажимаем на Share on twitter, твиттер сразу предложит отправить твит:

После отправки твита, копируем ссылку на свой пост и вставляем её в соответствующее поле на сайте. Нажимаем Claim your tokens и решаем капчу:

Теперь открываем Keplr и выбираем сеть Korellia, которая была добавлена автоматически:

И наблюдаем наш баланс:

Ещё можно запросить токены с дискорда, в ветке #faucet:

Ну и закончим мы колесом фортуны, где заработаем от 1 до 10 поинтов и токенов:

Активности в твиттере по типу лайков и ретвитов будут засчитываться автоматически. Когда вы в первый раз запросили токены с крана через твиттер, вы уже привязали свою учётную запись к кошельку. Дополнительных действий производить не нужно.

Автоматический подсчёт происходит с задержкой и постоянно дорабатывается. Наберитесь терпения и не спамьте в чатах и дискордах.

DESIGN

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

Помимо создания контента, его ещё нужно сабмитить, как выполненное задание.
Сабмитить активность мы будем в разделе своего профиля:

В этом же разделе можно лицезреть свои награды за early-birds. Чтобы получить любой из этих значков, нужно было присоединиться к тестнету до начала инсентивайза.

Наблюдаются некоторые проблемы с отображением бейджиков, об этом знают и исправляют. Каждый получит то, что заслужил. Наберитесь терпения и не спамьте в чатах и дискордах.

Спускаемся ниже и видим пока пустой список выполненных заданий:

Жмём на Submit task и выбираем свой раздел:

Так как я очень смешной, выбираю пункт "смешной мем", вставляю ссылку на пост в твиттере с моим мемом, сабмитю, решаю капчу и что-то подписываю.

После чего я могу видеть, что моя задача отправилась команде на проверку и висит в статусе Pending:

Теперь мне остаётся ждать, пока команда либо примет моё чувство юмора, либо отклонит.

Таким образом можно сабмитить любую контрибуцию, которая подходит под раздел Community.

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

Спустя несколько часов я получил апрув и 150 поинтов за мемасик:

ENGINEERING

Первой активностью в разделе инженерии представлено голосование в пропозале. Переходим на вкладку Governance и ожидаем активного пропозала.

Когда будет создано новое предложение и его статус станет Voting - можно голосовать. Такие пропозалы запускают не часто, поэтому нужно мониторить.

Мне улыбнулась удача и я заметил открытый к голосованию пропозал:

Открываю его и читаю, чего такого интересного нам предлагают:

Прошу читать пропозалы, а не клацать потому что клацается. Хоть это и тестнет, развивайте в себе ответственность к таким вещам. Это касается всех сетей и всех голосований.

Пропозал - это возможность выразить свою гражданскую позицию.
Цените это право, иногда его у нас отбирают.

Мне попалось безумно занимательное предложение, поэтому я предпочту "воздержаться". Да, это тоже голос, как ни странно:

Также можно создать пропозал при наличии 5000 монет KYVE - это первичный депозит.

В случае, если пропозал принимается, токены возвращаются на баланс. Если предложение отвергается - токены сгорают.

Такая система работает во многих сетях с целью предотвращения спама и генерации бесполезных пропозалов. Гайд по созданию пропозала.

ДЕЛЕГИРОВАНИЕ

Следующая возможность заработать очки - делегирование токенов на валидатора.

Чтобы делегировать свои тестовые токены какому-либо валидатору, переходим на сайт, выбираем пул и переходим во вкладку Delegation. Буду показывать на примере аваланча.

Внизу страницы находится список активных валидаторов, выбираем любого (или конкретного, если знаете чей-то адрес), нажимаем Become a delegator и прокликиваем Continue:

Вводим желаемое количество токенов для делегации и подтверждаем транзакцию в Keplr.

Не забывайте хотя бы раз в неделю заходит в раздел User и ределегировать стейк с неактивных валидаторов на активных, чтобы токены не лежали на выключенных нодах, а работали:

FUNDING

Ещё одна возможность проявить себя - фундинг пула.

Funding или спонсирование пула - это депозит ваших тестовых токенов на счёт пула. Система, в свою очередь, начисляет награды всем активным валидаторам конкретного пула и выплачивает им таким образом зарплату за отличную работу из этого самого резерва.

Заработать фантиков с помощью фундирования пула не выйдет. Их можно лишь отдать на благотворительность, но заработав при этом некоторое количество поинтов.

Открываем любой пул, переходим во вкладку Funding и нажимаем Become a funder:

Прокликиваем Continue и вносим желаемое количество токенов:

Задепозиченные средства можно вытащить из пула в любой момент с помощью Manage Funds:

Там же можно и докинуть депозит, если желается.

Имейте в виду, что сет активных фундеров тоже ограничен. Ваш депозит должен быть больше, чем у 50-го фундера:

НОДА

Ну и переходим к самому интересному - к ноде.

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

По факту, это одно задание: быть активным валидатором. Никаких дополнительных действий не требуется. Голосование и загрузка данных выполняются сами собой во время валидирования.

Валидатором можно стать, запустив ноду и застейкав на себя токены.

Имейте в виду, что для того, чтобы быть активным валидатором и получать очки за ноду, необходимо быть в ТОР-50 по стейку в своём пуле.

Если ваш стейк перестал входить в ТОР-50, ваши токены возвращаются на баланс и нода перестаёт голосовать и получать за это очки.


One more thing: нам нужно несколько десятых токена AR и arweave.json. Это файл, содержащий приватные ключи от кошелька Arweave.

Если до сих пор у вас нет arweave-кошелька, то переходим на сайт, где мы сгенерируем аккаунт и сразу запросим на него пару копеек.

Кран работает с перебоями, поэтому я просто купил пару копеек AR на бинансе (список бирж) и скинул их на кошелёк, но можно попробовать запросить AR с крана.

Нажимаем Continue:

И скачиваем ключи. Сохраните arweave.json в надёжное место, этот файл нам ещё понадобится:

Нажимаем Open tweet pop-up, чтобы запросить токены и отправляем твит:

Итого у вас должно быть:

  • Токены KYVE на кошельке Keplr и мнемоника от этого кошелька;
  • Токены AR на кошельке Arweave и файл с ключами от этого кошелька.

Требования по железу:

Официальные требования: 1 CPU x 4 GB RAM x 20 GB SSD - Ubuntu 20.04.
Субъективные наблюдения: 1 CPU x 2 GB RAM x 20 GB SSD - Ubuntu 20.04.

УСТАНОВКА

# обновляем 'базу данных', обновляем дистрибутив
sudo apt-get update && \
sudo apt-get upgrade -y
# скачиваем 'wget' и 'uznip', если вдруг
sudo apt-get install wget unzip jq -y
# создаём каталог 'kyve'
mkdir $HOME/kyve; \
cd $HOME/kyve

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

Пул может выходить в статус Paused. Такое происходит, когда в коде находятся ошибки и недоработки, это нормально для тестнета.

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

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

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

# moonbeam
POOL=0 && \
NAME="evm" && \
BIN="kyve-evm" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# avalanche
POOL=1 && \
NAME="evm" && \
BIN="kyve-evm" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# stacks /
POOL=2 && \
NAME="stacks" && \
BIN="kyve-stx" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/$NAME-linux.zip && \
unzip $NAME-linux.zip && \
rm -Rvf $NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv $NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# bitcoin /
POOL=3 && \
NAME="bitcoin" && \
BIN="kyve-btc" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv $NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# solana
POOL=4 && \
NAME="solana" && \
BIN="kyve-sol" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# zilliqa
POOL=5 && \
NAME="zilliqa" && \
BIN="kyve-zil" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# near
POOL=6 && \
NAME="near" && \
BIN="kyve-near" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# celo
POOL=7 && \
NAME="celo" && \
BIN="kyve-celo" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# evmos evm
POOL=8 && \
NAME="evm" && \
BIN="kyve-evm" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# cosmos
POOL=9 && \
NAME="cosmos" && \
BIN="kyve-cosmos" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# injective
POOL=10 && \
NAME="cosmos" && \
BIN="kyve-cosmos" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# evmos cosmos
POOL=11 && \
NAME="cosmos" && \
BIN="kyve-cosmos" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# axelar
POOL=12 && \
NAME="cosmos" && \
BIN="kyve-cosmos" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# aurora
POOL=13 && \
NAME="evm" && \
BIN="kyve-evm" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"
# cronos
POOL=14 && \
NAME="cosmos" && \
BIN="kyve-cosmos" && \
VER=$(wget -qO- https://api.github.com/repos/kyve-org/$NAME/releases/latest | jq -r ".tag_name") && \
wget https://github.com/kyve-org/$NAME/releases/download/$VER/kyve-$NAME-linux.zip && \
unzip kyve-$NAME-linux.zip && \
rm -Rvf kyve-$NAME-linux.zip __MACOSX && \
chmod u+x * && \
mv kyve-$NAME-linux /usr/bin/$BIN && \
printf "\n$BIN version: $($BIN --version), pool id: $POOL.\n\n"


Отлично. Теперь нам нужно загрузить arweave.json на сервер, желательно в каталог /root/.

Обязательно переименуйте файл arweave-key-7qiuaiF3.json в arweave.json.

Можно загрузить с помощью инструментов Mobaxterm, но я воспользуюсь SCP:

# выполняем команду на локальном пк
scp path/myfile [email protected]:/full/path/to/new/location/
# в моём случае команда выглядит так
scp /Users/cyberomanov/Downloads/arweave.json [email protected]:/root/

В этом пункте нам необходимо создать 2 переменные:

  • MNEMONIC: мнемоника от кошелька Keplr;
  • STAKE: количество токенов, которое хотите использовать в качестве селф-стейка.
# мой пример, подставляйте свои значения переменных
MNEMONIC="try to keep calm and do not war please"
STAKE=7777

В следующей команде ничего не трогаем, мы задали все переменные раннее. Просто выполняем одну большую команду.

# создаём файл сервиса для запуска ноды
sudo tee <<EOF >/dev/null /etc/systemd/system/kyved.service
[Unit]
Description=Kyve Node
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which $BIN) \\
--poolId $POOL \\
--mnemonic "$MNEMONIC" \\
--initialStake $STAKE \\
--keyfile /root/arweave.json \\
--network korellia \\
--space 10000000000 \\
--verbose
Restart=on-failure
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
# запускаем ноду
sudo systemctl daemon-reload && \
sudo systemctl enable kyved && \
sudo systemctl restart kyved
# проверяем логи
sudo journalctl -u kyved -f -o cat

Отлично, всё сработало.


Теперь, если вернуться на страницу пула, можно будет лицезреть свой стейк:

Мы можем докидывать в наш стейк монеты через сайт.
Для этого жмём Manage stake, вводим количество и подписываем транзакцию:

Вот и всё. Теперь главное не вылететь из сета активных валидаторов.

Можно настроить моникер и процент комиссии у валидатора (я пока не вижу этому применение, но да ладно). Для этого переходим во вкладку Validators и нажимаем Manage metadata:

Если появилось желание сменить пул, то делаем анстейк через DApp, который занимает 24 часа, меняем в сервиснике айди пула, бинарник и перезапускаем сервис. Вот так всё просто.

ПОЛЕЗНЫЕ КОМАНДЫ

# пезапуск сервиса
sudo systemctl restart kyved
# остановка сервиса
sudo systemctl stop kyved
# проверка лога
sudo journalctl -u kyved -f -o cat

УДАЛЕНИЕ

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

Это сработает, если на сервере нет других важных нод. В случае, если вы хотите оставить сервер, но удалить конкретную ноду - приступаем к её удалению:

# останавливаем сервис
sudo systemctl stop kyved && \
sudo systemctl disable kyved
# удаляем остаточные файлы
rm -Rvf /usr/bin/kyve* $HOME/kyve
# удаляем файл сервиса и перезагружаем демона одной командой
sudo rm -v /etc/systemd/system/kyved.service && \
sudo systemctl daemon-reload

ОБНОВЛЕНИЕ

Для обновления ноды, просто выполняем установку с самого начала.