KYVE /// v2.0
Участвуем в публичном тестнете KYVE Network.
Если вы не знаете, что такое нода — читаем статью.
Если вы не знаете, где арендовать сервер для ноды — читаем статью.
Если вы не знаете, как подключиться к серверу — читаем статью.
Если вы всё знаете — открываем MobaXterm и создаём сессию.
СОДЕРЖАНИЕ
ОПИСАНИЕ ПРОЕКТА
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 "скрытых" инвесторов.
Blog | Docs | GitHub | WebSite | Twitter | Discord | Telegram | Chat_RU
Первым делом, мы, конечно, должны привязать кошелёк к app.kyve.network. Открываем DApp, чтобы подключить свой Keplr:
Разрешаем сайту получить доступ к кошельку и добавить в него сеть Kaon/Korellia, кликнув на Approve:
Предлагаю запросить тестовые токены в кране, которые нам в будущем в любом случае понадобятся.
Краны работают почти стабильно. Иногда токены доходят долго, иногда не доходят. Наберитесь терпения и не спамьте в чатах и дискордах.
Нажимаем на Share on twitter, твиттер сразу предложит отправить твит:
После отправки твита, копируем ссылку на свой пост и вставляем её в соответствующее поле на сайте. Нажимаем Claim your tokens и решаем капчу:
Теперь открываем Keplr и выбираем сеть Korellia, которая была добавлена автоматически:
Ещё можно воспользоваться колесом фортуны, где заработаем от 1 до 10 токенов:
One more thing: нам нужно несколько десятых токена AR и arweave.json. Это файл, содержащий приватные ключи от кошелька Arweave.
Если до сих пор у вас нет arweave-кошелька, то переходим на сайт, где мы сгенерируем аккаунт и сразу запросим на него пару копеек.
Кран работает с перебоями, поэтому я просто купил пару копеек AR на бинансе (список бирж) и скинул их на кошелёк, но можно попробовать запросить AR с крана.
И скачиваем ключи. Сохраните arweave.json в надёжное место, этот файл нам ещё понадобится:
Нажимаем Open tweet pop-up, чтобы запросить токены и отправляем твит:
- Токены KYVE на кошельке Keplr и мнемоника от этого кошелька;
- Токены AR на кошельке Arweave и файл с ключами от этого кошелька.
НОДА
Валидатором можно стать, запустив ноду и застейкав на себя токены.
Имейте в виду, что для того, чтобы быть активным валидатором, необходимо быть в ТОР-50 по стейку в своём пуле.
То же касается и регистрации валидатора. Вы не сможете его создать, если селфстейк будет меньше, чем у ТОР-50 валидатора в конкретном пуле.
Если ваш стейк перестал входить в ТОР-50, ваши токены возвращаются на баланс и нода перестаёт голосовать.
Официальные требования: 1 CPU x 4 GB RAM x 20 GB SSD - Ubuntu 20.04.
Субъективные наблюдения: 1 CPU x 2 GB RAM x 40 GB SSD - Ubuntu 20.04.
Самое время выбрать пул, в котором вы хотите стать валидатором. Список пулов доступен в разделе Pools:
Пул может выходить в статус Paused. Такое происходит, когда в коде находятся ошибки и недоработки, это нормально для тестнета.
В случае, если ваш пул ушёл на паузу, вы можете перепрыгнуть в другой пул, либо ожидать, пока включат ваш.
# обновляем 'базу данных' sudo apt-get update && sudo apt-get upgrade -y
# скачиваем необходимые пакеты sudo apt-get install curl build-essential git jq unzip -y
# скачиваем 'kysor' wget https://github.com/KYVENetwork/kyvejs/releases/download/%40kyve%2Fkysor%401.0.0-beta.7/kysor-linux-x64.zip && \ unzip kysor-linux-x64.zip && \ mv kysor-linux-x64 kysor && \ chmod +x kysor && \ mv kysor /usr/bin/kysor && \ rm kysor-linux-x64.zip*
# инициализируем 'kysor' kysor init -d \ --chain-id korellia \ --rpc "https://rpc.korellia.kyve.network" \ --rest "https://api.korellia.kyve.network"
Теперь нам нужно загрузить arweave.json (мы генерировали его здесь) на сервер, в каталог $HOME/.kysor/
.
Обязательно переименуйте файл arweave-key-8qi2faiF4.json в arweave.json.
Можно отправить файл на сервер с помощью инструментов программы Mobaxterm/Termius, но я воспользуюсь SCP:
# выполняем команду на локальном пк scp path/myfile user@8.8.8.8:/full/path/to/new/location/
# в моём случае команда выглядит так scp /Users/cyber/Downloads/arweave.json root@8.8.8.8:/root/.kysor/
Если у вас уже имеется файл в каталоге $HOME/, его можно просто переместить в нужную директорию следующей командой:
mv $HOME/arweave.json $HOME/.kysor/
Сейчас нужно создать valaccount - это кошелёк, на котором нужно хранить несколько десятков $KYVE для оплаты комиссий за транзакции валидатора.
Этот valaccount будет храниться на сервере и подписывать транзакции.
Если раньше мы валидировали и стейкали с одного кошелька, то теперь эти функции разделены, чтобы на сервере не хранить мнемонику с миллионами токенов.
Стейкать мы будем из "браузера" и хранить средства на отдельном кошельке, который не будет задействоваться на сервере.
Если вы знакомы с полькадот-экосистемой, то можно провести аналогию со стэшем и контроллером:
- Стэш - основной адрес, который не участвует в валидировании -> не хранится на сервере;
- Контроллер - дополнительный кошелёк, который чисто подписывает транзакции -> хранится на сервере.
# создаём 'valaccount' kysor valaccounts create \ --name <pool_name> \ --pool <N> \ --storage-priv "$(cat ~/.kysor/arweave.json)" \ --metrics
Если вы переносите ноду с сервера на сервер, то восстанавливаем раннее сгенерированный valaccount следующей командой:
# восстанавливаем 'valaccount' kysor valaccounts create \ --name <pool_name> \ --pool <N> \ --storage-priv "$(cat ~/.kysor/arweave.json)" \ --recover
После чего вводим мнемонику. Если ставите в первый раз - выполняем команду без флага --recover.
<pool_name> - название будущего valaccount. рекомендуется называть так же, как и называется пул, для простоты понимания;
<N> - номер пула, который можно найти на странице конкретного пула в адресной строке браузера или в описанных параметрах.
То есть, если я хочу запустить протокольную ноду биткоина, то для меня команда будет выглядеть следующим образом:
# создаём 'valaccount' kysor valaccounts create \ --name bitcoin \ --pool 3 \ --storage-priv "$(cat ~/.kysor/arweave.json)" \ --metrics
Теперь поменяем порт, на котором лежат метрики ноды, чтобы на всякий случай:
# идём в каталог с конфигами cd ~/.kysor/valaccounts/
# выводим на экран все конфиги ls
В моём случае конфиг называется bitcoin.toml. Открываем файл и редактируем порт:
nano bitcoin.toml
Я выбрал значение 10001. Можете выбрать любой порт из возможных и открытых. В случае, если я захочу поставить на этот же сервер вторую протокольную ноду, скажем, Avalanche, я установлю её на 10002 порт и так далее.
Неплохо было бы сохранить мнемонику только что сгенерированного valaccount. Её можно увидеть в том же config.toml файле, где меняем порт.
# создаём файл сервиса для запуска 'kysor' tee <<EOF > /dev/null /etc/systemd/system/bitcoind.service [Unit] Description=KYVE Protocol After=network-online.target [Service] User=$USER ExecStart=$(which kysor) start \\ --valaccount bitcoin Restart=always RestartSec=3 LimitNOFILE=infinity [Install] WantedBy=multi-user.target EOF
# запускаем ноду со своим названием сервисного файла sudo systemctl daemon-reload && \ sudo systemctl enable bitcoind && \ sudo systemctl restart bitcoind
# проверяем логи sudo journalctl -u bitcoind -f -o cat
Если вчитаться, то логи сервиса просят нас присоединиться к пулу, поскольку мы этого ещё не сделали. Приступим.
Открываем app.kyve.network, убеждаемся, что включен мод эксперта:
Переходим на страницу валидаторов и нажимаем на Become a validator:
Прокликиваем и читаем предложенный нам текст:
Вписываем желаемое количество токенов, которое хотите внести в качестве селф-стейка:
Подписываем транзакцию и попадаем в личный кабинет нашего валидатора:
В разделе Manage Validator можно отредактировать комиссию и описание валидатора:
После того, как нарядили своего валидатора, можно присоединиться к пулу:
Как только мы подписали транзакцию после нажатия Join pool, начали бежать логи:
Вот и всё. Мы создали и запустили валидатора.
Следите за балансом valaccount и вовремя пополняйте его, чтобы не угодить в jail:
Если вы хотите запустить несколько протокольных нод с одного сервера и с одного "мастер-адреса", просто повторяем все действия с создания valaccount:
- Создаём valaccount;
- Меняем порт, на котором висят метрики в новом конфиге;
- Создаём новый сервис с новым названием;
- Присоединяемся к новому пулу через сайт.
ПОЛЕЗНЫЕ КОМАНДЫ
# пезапуск сервиса sudo systemctl restart bitcoind
# остановка сервиса sudo systemctl stop bitcoind
# проверка лога sudo journalctl -u bitcoind -f -o cat
УДАЛЕНИЕ
Если вы вдруг разочаровались в проекте и хотите удалить его с сервера, то можно просто разрушить/удалить сервер из личного кабинета хостинга.
Это сработает, если на сервере нет других важных нод. В случае, если вы хотите оставить сервер, но удалить конкретную ноду - приступаем к её удалению:
# останавливаем сервис sudo systemctl stop bitcoind && \ sudo systemctl disable bitcoind
# удаляем остаточные файлы rm -Rvf /usr/bin/kysor* $HOME/.kysor
# удаляем файл сервиса и перезагружаем демона одной командой sudo rm -v /etc/systemd/system/bitcoind.service; \ sudo systemctl daemon-reload
БЛАГОДАРНОСТИ
мамичу за то, что родила такого гения.
ПОЛЕЗНЫЕ РЕСУРСЫ
@kyvecheckerbot - бот для слежения за нодой.
@KyveProposals - канал с уведомлениями о пропозалах.
@how_to_node - канал, где я выкладываю свои гайды.