KYVE /// v1.0

Устанавливаем ноду KYVE для участия в пока невознаграждаемом тестнете.

Если вы не знаете, что такое нода — читаем статью.
Если вы не знаете, где арендовать сервер для ноды — читаем статью.
Если вы не знаете, как подключиться к серверу — читаем статью.
Если вы всё знаете — открываем MobaXterm и создаём сессию.

    • Кран: запрашиваем тестовые токены.
    • Нода: устанавливаем программное обеспечение.
    • Делегация: делегируем токены через интерфейс.
    • Ределегация: выводим реварды за стейкинг и ределегируем их.
Содержание

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

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

Arweave решение обеспечивает масштабируемость, неизменность и доступность этих ресурсов в течении неограниченного времени.

Сеть работает благодаря uploaders и validators. Эти ноды находятся в пулах, каждый из которых предназначен для архивирования определённого потока данных.

KYVE уже поддерживает такие сети, как:

  • Avalanche;
  • Cosmos;
  • Polkadot;
  • SmartWeave;
  • Solana;
  • Zilliqa.

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

Благодаря недавнему переходу от SmartWeave к смарт-контрактам Moonbeam, KYVE теперь совместим с EVM.

В проект на 2-ом раунде инвестировали такие фонды как: Coinbase Ventures, Permanent Ventures, Hypersphere Ventures, Volt Capital, Mechanism Capital, Mina Foundation, Moonbeam Foundation и др.


На данный момент тестнет, как ивент, не запущен. Просто открытый тест.


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

Содержание

Официальные требования: не нашёл.

Субъективные наблюдения: 1 CPU x 2 GB RAM x 40 GB SSD - Ubuntu 20.04.

Содержание

Для тестирования платформы нам понадобятся токены KYVE и DEV, а также кошелёк Metamask.

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

Открываем метамаск, добавляем новую сеть: Moonbase Alpha.

Network Name: Moonbase Alpha
RPC URL: https://rpc.testnet.moonbeam.network
ChainID: 1287
Symbol: DEV
Block Explorer: https://moonbase-blockscout.testnet.moonbeam.network

Рандомная статья про добавление новой сети в Метамаск.

Затем добавляем токен KYVE по контракту:

0x3cf97096ccdb7c3a1d741973e351cb97a2ede2c1

У вас должна быть настроена сеть Moonbase Alpha и отображаться 2 токена:
DEV и KYVE.

Теперь открываем сайт, коннектим метамаск и нажимаем Faucet:

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

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

В правом нижнем углу экрана выскочит оповещение:

Буквально через несколько секунд в моём кошельке появились 0.01 DEV и 1000 KYVE:

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

Но 0.01 DEV нам не хватит для запуска ноды, нужно зайти в дискорд мунбима и во вкладке #moonbase-faucet запросить токены на кошелёк командой:

Содержание

На данный момент доступно 5 пулов: Avalanche, Moonriver, Cosmos, Celo и Solana.

Пулы постоянно обновляются и добавляются.

Следите за актуальными на сайте.

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

Например, чтобы стать активным валидатором в пуле Avalanche, нужно иметь стейк больше, чем 2000 токенов.

Аналогичные минимальные значения можно узнать на сайте, на странице конкретного пула.

Возникает вопрос, а что делать, если кран выдаёт только 1000 монет? Как попасть в активные валидаторы и получать награду за валидирование?

Варианта два:

  1. Никак.
  2. Создать несколько аккаунтов Twitter, запросить токены с большого количества аккаунтов и скинуть затем всё на один основной адрес.

Второй вариант я не рекомендую. И вот почему: так вы обманываете систему. Система не любит, когда её обманывают. Система может наказать вас, задетектив подозрительную активность и лишив любых наград (имею в виду награды, которые будут в будущем, за следующие тестнеты). Вполне вероятен так называемый blacklist адресов, которые нарушали правила. Не нарушайте правила.

К тому же, "высасывая" токены из крана, вы мешаете тестировать платформу обычным работягам. Из-за таких "абузеров" мы вынуждены ждать по несколько часов токены с крана. Не надо так.

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

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

А что делать, если нет друзей и я играю в соло? Выбор у законопослушного нодера один: делегировать свои токены, полученные с крана, в любую активную ноду и получать награды с делегации своего стейка, а не с валидирования.

Напомню, что любые награды в тестнете - фантики. Ничего не стоят. Это тестовые награды. Награждаемый тестнет ещё не начался, ждём анонсов.

И что, получается, что нода не нужна? Да, скорее всего так.

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

Разумеется, в будущем, могут (и должны) увеличить количество активных валидаторов, чтобы был практический смысл запускать своего валидатора и помогать децентрализации сети. Но на данный момент количество ограниченно 20-ю участниками.

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

Рекомендую закинуть часть монет в стейк (делегировать) через сайт, а часть оставить для создания валидатора.

Потестить платформу на 100%, так сказать.

Приступим к установке ноды.

# обновляем 'базу данных', обновляем дистрибутив
$ sudo apt-get update && sudo apt-get upgrade -y
# скачиваем докер одной командой
$ sudo apt-get install curl gnupg apt-transport-https ca-certificates \
lsb-release -y && curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt-get update && \
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
# если не работает команда, гуглите 'how to install docker on ubuntu'
# включаем 'docker'
$ sudo systemctl start docker && sudo systemctl enable docker
# запуск 'avalanche'
$ docker pull kyve/evm:latest && \
docker stop kyve-avalanche-node 2>/dev/null; \
docker container rm kyve-avalanche-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-avalanche-node kyve/evm:latest \
--pool 0x464200b29738367366FDb4c45f3b8fb582AE0Bf8 \
--private-key <PK> \
--stake <amount>
# запуск 'moonriver'
$ docker pull kyve/evm:latest && \
docker stop kyve-moonriver-node 2>/dev/null; \
docker container rm kyve-moonriver-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-moonriver-node kyve/evm:latest \
--pool 0x610D55fA573Bce4D2d36e8ADAAee517B785a69dF \
--private-key <PK> \
--stake <amount>
# запуск 'cosmos'
$ docker pull kyve/cosmos:latest && \
docker stop kyve-cosmos-node 2>/dev/null; \
docker container rm kyve-cosmos-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-cosmos-node kyve/cosmos:latest \
--pool 0x7Bb18C81BBA6B8dE8C17B97d78B65327024F681f \
--private-key <PK> \
--stake <amount>
# запуск 'celo'
$ docker pull kyve/celo:latest && \
docker stop kyve-celo-node 2>/dev/null; \
docker container rm kyve-celo-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-celo-node kyve/celo:latest \
--pool 0x1588fd93715Aa08d67c32C6dF96fC730B15E1E1A \
--private-key <PK> \
--stake <amount>
# запуск 'solana'
$ docker pull kyve/solana-snapshots:latest && \
docker stop kyve-solana-node 2>/dev/null; \
docker container rm kyve-solana-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-solana-node kyve/solana-snapshots:latest \
--pool 0x3124375cA4de5FE5afD672EF2775c6bdcA1Cfdcc \
--private-key <PK> \
--stake <amount>
# запуск 'evmos_evm'
$ docker pull kyve/evm:latest && \
docker stop kyve-evmos_evm-node 2>/dev/null; \
docker container rm kyve-evmos_evm-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-evmos_evm-node kyve/evm:latest \
--pool 0x24E7b48c3a6E40ea0e50764E617906c9B7cf9F21 \
--private-key <PK> \
--stake <amount>
# запуск 'evmos_tendermint'
$ docker pull kyve/cosmos:latest && \
docker stop kyve-evmos_tendermint-node 2>/dev/null; \
docker container rm kyve-evmos_tendermint-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-evmos_tendermint-node kyve/cosmos:latest \
--pool 0xAa3337d1f8F72D544f3843B2089d2DA02BBcbD28 \
--private-key <PK> \
--stake <amount>

В командах выше необходимо заменить 2 переменные:

<PK> - на приватный ключ из метамаска (куда запрашивали DEV и KYVE);
<amount> - на желаемое количество токенов (рекомендую от 11 до 990, меньшее или большее число может вызвать ошибку).

Не забываем раскрывать кавычки. Пример правильно заполненной команды на скриншоте.

<foo> - лишь обозначение необходимой замены.

Скриншот из статьи: Как вытащить Private Key из Metamask.

Проверяем логи контейнеров.

# проверяем логи докеров
$ docker logs kyve-avalanche-node --follow --tail=100
$ docker logs kyve-moonriver-node --follow --tail=100
$ docker logs kyve-cosmos-node --follow --tail=100
$ docker logs kyve-celo-node --follow --tail=100
$ docker logs kyve-solana-node --follow --tail=100
$ docker logs kyve-evmos_evm-node --follow --tail=100
$ docker logs kyve-evmos_tendermint-node --follow --tail=100

Через несколько минут ожидания нода найдёт коннект и застейкает токены. Побегут логи.

Если в логах увидите такие ошибки:

Просто сделайте ребилд докера (из полезных команд).

Приведённые выше скриншоты - частые ошибки.

Больше частых ошибок вы найдёте в закреплённых сообщениях нашего чата.

Посмотреть, отправились ли токены в пулы, можно на сайте, на странице конкретного пула:

Через определённое время начнут начислять награды, если нода попала в активные валидаторы.

Содержание

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

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

Напомню, что я уже делегировал 333 токена на свою же ноду, которую запустил в прошлом пункте.

С этих 333 токенов я не получаю награду, потому что стейка на ноде не хватает, чтобы стать активным валидатором.

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

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

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

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

Я лично просто добавляю по одному нулю в каждое из полей. Да, переплачиваю, но токены же бесплатные, фантики. Чего экономить?

После того, как транзакция обработана блокчейном, увидим новое окно.

Его можно закрыть и включить ползунок Only show nodes I delegated to.

В моём случае отображается 2 валидатора.

  1. Мой личный, который я запустил своими руками;
  2. Тот, куда я только что делегировал токены.

В портфолио значение тоже обновится.

Через какое-то время вы получите первые награды.

Напомню, что пока валидатор не является активным, он не получает наград. А за тот стейк, который мы делегировали уже активному валидатору, мы получим какие-то фантики в течение пары часов, может, дней.

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

Содержание

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

Для этого переходим на страницу пула, куда стейкали токены, во вкладку Nodes.

Выбираем валидатора, с которого хотите снять реварды и нажимаем Delegate.

Обращаю внимание, что к сайту должен быть подключён и разблокирован правильный кошелёк (имею в виду кошелёк, с которого и производился стейкинг) и должна быть выбрана сеть Moonbase Alpha. Иначе выведет ошибку.

На данный момент нельзя просто вывести награды.

Вместе с наградами выведется и ваш стейк.

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

Нажимаем Undelegate and claim и подтверждаем транзакцию в метамаске.

Ждём её обработки. После чего на балансе отобразятся наши награды:

Затем заново выбираем валидатора и делегируем свои токены. Всё просто.

Содержание

Универсальные команды ребилда или обновления контейнеров:

# ребилд 'avalanche'
$ docker pull kyve/evm:latest && \
docker stop kyve-avalanche-node 2>/dev/null; \
docker container rm kyve-avalanche-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-avalanche-node kyve/evm:latest \
--pool 0x464200b29738367366FDb4c45f3b8fb582AE0Bf8 \
--private-key <PK> \
--stake <amount> && \
docker logs kyve-avalanche-node --follow --tail=100
# ребилд 'moonriver'
$ docker pull kyve/evm:latest && \
docker stop kyve-moonriver-node 2>/dev/null; \
docker container rm kyve-moonriver-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-moonriver-node kyve/evm:latest \
--pool 0x610D55fA573Bce4D2d36e8ADAAee517B785a69dF \
--private-key <PK> \
--stake <amount> && \
docker logs kyve-moonriver-node --follow --tail=100
# ребилд 'cosmos'
$ docker pull kyve/cosmos:latest && \
docker stop kyve-cosmos-node 2>/dev/null; \
docker container rm kyve-cosmos-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-cosmos-node kyve/cosmos:latest \
--pool 0x7Bb18C81BBA6B8dE8C17B97d78B65327024F681f \
--private-key <PK> \
--stake <amount> && \
docker logs kyve-cosmos-node --follow --tail=100
# ребилд 'celo'
$ docker pull kyve/celo:latest && \
docker stop kyve-celo-node 2>/dev/null; \
docker container rm kyve-celo-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-celo-node kyve/celo:latest \
--pool 0x1588fd93715Aa08d67c32C6dF96fC730B15E1E1A \
--private-key <PK> \
--stake <amount> && \
docker logs kyve-celo-node --follow --tail=100
# ребилд 'solana'
$ docker pull kyve/solana-snapshots:latest && \
docker stop kyve-solana-node 2>/dev/null; \
docker container rm kyve-solana-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-solana-node kyve/solana-snapshots:latest \
--pool 0x3124375cA4de5FE5afD672EF2775c6bdcA1Cfdcc \
--private-key <PK> \
--stake <amount> && \
docker logs kyve-solana-node --follow --tail=100
# ребилд 'evmos_evm'
$ docker pull kyve/evm:latest && \
docker stop kyve-evmos_evm-node 2>/dev/null; \
docker container rm kyve-evmos_evm-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-evmos_evm-node kyve/evm:latest \
--pool 0x24E7b48c3a6E40ea0e50764E617906c9B7cf9F21 \
--private-key <PK> \
--stake <amount> && \
docker logs kyve-evmos_evm-node --follow --tail=100
# ребилд 'evmos_tendermint'
$ docker pull kyve/cosmos:latest && \
docker stop kyve-evmos_tendermint-node 2>/dev/null; \
docker container rm kyve-evmos_tendermint-node 2>/dev/null; \
docker run -d -it --restart=always \
--name kyve-evmos_tendermint-node kyve/cosmos:latest \
--pool 0xAa3337d1f8F72D544f3843B2089d2DA02BBcbD28 \
--private-key <PK> \
--stake <amount> && \
docker logs kyve-evmos_tendermint-node --follow --tail=100

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

# команда остановки контейнера, если потребуется
$ docker stop kyve-avalanche-node
$ docker stop kyve-moonriver-node
$ docker stop kyve-cosmos-node
$ docker stop kyve-celo-node
$ docker stop kyve-solana-node
$ docker stop kyve-evmos_evm-node
$ docker stop kyve-evmos_tendermint-node
# рестарт контейнера
$ docker restart kyve-avalanche-node
$ docker restart kyve-moonriver-node
$ docker restart kyve-cosmos-node
$ docker restart kyve-celo-node
$ docker restart kyve-solana-node
$ docker restart kyve-evmos_evm-node
$ docker restart kyve-evmos_tendermint-node
# посмотреть логи контейнера
$ docker logs kyve-avalanche-node --follow --tail=100
$ docker logs kyve-moonriver-node --follow --tail=100
$ docker logs kyve-cosmos-node --follow --tail=100
$ docker logs kyve-celo-node --follow --tail=100
$ docker logs kyve-solana-node --follow --tail=100
$ docker logs kyve-evmos_evm-node --follow --tail=100
$ docker logs kyve-evmos_tendermint-node --follow --tail=100
Содержание

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

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

# останавливаем контейнеры
$ docker stop kyve-avalanche-node
$ docker stop kyve-moonriver-node
$ docker stop kyve-cosmos-node
$ docker stop kyve-celo-node
$ docker stop kyve-solana-node
$ docker stop kyve-evmos_evm-node
$ docker stop kyve-evmos_tendermint-node
# удаляем выключенные контейнеры
# используем, если нам не пригодятся выключенные контейнеры в будущем
$ docker container prune
# выводим список образов
$ docker images
# вручную удаляем образы по 'IMAGE ID'
$ docker rmi <IMAGE_ID>
# убедитесь, что контейнеры выключены
# можно перечислить все через запятую, например
$ docker rmi 6db6e0316950 72f8b654e6a3
Содержание

мамичу за то, что родила такого гения.

@saltedsanya за помощь в обновлении гайда.

Содержание

@how_to_node - канал, где я выкладываю свои гайды.

Полезные ресурсы.

Крипто-кошельки автора гайда.