Actual Events
May 10, 2022

Bundlr /// Testnet I

Изучаем Bundlr Network, Arweave и участвуем в первом невознаграждаемом тестнете.

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

СОДЕРЖАНИЕ

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

Содержание

Введение в Bundlr Network

Bundlr - это layer 2 сеть над Arweave, которая позволяет записывать любые данные в децентрализованное хранилище в тысячи раз быстрее, дешевле и удобнее.

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

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

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

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

Ключевые особенности в подходе Bundlr к хранению данных:

  • Данные не хранятся в одном месте, где они подвержены взломам и вредоносным атакам;
  • Данные не принадлежат одному объекту, поэтому нет единого органа, который мог бы изменить данные или заблокировать вам доступ к ним;
  • Данные хранятся вечно, поэтому не могут быть потеряны;
  • Данные, загруженные в Bundlr, доступны мгновенно и в любой момент времени;
  • Инфраструктура проста и интуитивно понятна в своём использовании;
  • Bundlr позволяет оплачивать комиссии за транзакции в разных криптовалютах.

Решение Bundlr бесконечно масштабируемо и уже поддерживает такие сети, как: Solana, Ethereum, Polygon и Avalanche.

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

Отличия в методике хранения данных между Arweave, IPFS и AWS.

Amazon Web Services (AWS) - облачная платформа, насчитывающая миллионы клиентов, включая самые быстрорастущие стартапы, крупнейшие предприятия и ведущие государственные учреждения.

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

Главная проблема AWS в том, что данные могут быть навсегда потеряны: специально (если не оплачивать подписку) или случайно (в случае выхода оборудования из строя).


InterPlanetary File System (IPFS) - одноранговая децентрализованная файловая система с открытым исходным кодом.

Вроде бы всё хорошо: децентрализация и безопасность. Но и такая система не безупречна. IPFS не хранит информацию вечно.

Ноды, хранящие данные, не заинтересованы в вечном хранении данных и в конечном итоге сталкиваются с ограничением в пропускной способности: заканчивается место на жёстком диске. Запускается процесс, так называемый Garbage Collection (Сборкой Мусора), в процессе которого удаляются данные, которые система считает не такими уж и важными.

Один из популярных среди нодраннеров сервисов, использующих и предоставляющих доступ к ETH и IPFS, является Infura.

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


Arweave - единственное децентрализованное решение для вечного хранения данных.

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

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

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

Этот способ так же не бесплатен. Если вы хотите загрузить данные в Arweave и сохранить их навсегда, вам потребуется заплатить комиссию за транзакцию.

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

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

One-time-payment и ваши данные никогда не будут удалены или утеряны, но всегда будут доступны в любой момент времени.

Зачем нужен Bundlr и как он работает?

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

Это позволяет пользователям оплачивать загрузку данных различными токенами, такими как ETH, SOL, MATIC, DOT и многими другими.

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

Уже сейчас Bundlr обрабатывает более 90% всех загрузок данных в Arweave.


Сеть состоит из:

- Bundlers: ноды-работяги, которые собирают несколько транзакций на layer 2 в одну большую транзакцию (bundle) и записывают метод оплаты комиссии (SOL, MATIC, BNB и другие);

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

- Bundles: пакеты транзакций на layer 2, которые были собраны бандлером и должны быть отправлены в основную сеть;

Каждый бандл собирается в течение 2 минут, после чего улетает в Arweave.

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

- Validators: ноды-наблюдатели, которые следят за тем, чтобы каждая транзакция из бандла успешно и в срок достигла основной сети;

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

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

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

Хоть чек и подписывается тремя валидаторами, для подтверждения транзакции достаточно согласия одного.

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

Партнёры, бэкеры и активности

Плотная разработка проекта началась в мае 2021 года в сотрудничестве с Arweave.

Менее чем за год Bundlr заключила партнерские отношения с ведущими сетями, такими как Polygon, Boba Network, Arbitrum, ZKSynk, Avalanche, Ethereum, Binance SC, Polkadot, Solana, чтобы предложить разработчикам легкий доступ к Arweave.

Проект также сотрудничает с ведущими рынками NFT, такими как Metaplex и Salsa, чтобы они могли хранить важные данные, такие как метаданные NFT, в Arweave, а также с Ethsign, Mintbase, Olta, FormFunction и KYVE.

“Цель Bundler - реализовать масс-адопшн Arweave. Технология Arweave потрясающая, но ей нужно стать более удобной в использовании. С помощью нашей технологии, мы позволяем этому сбыться. Существует так много возможностей для вечного хранения данных в Web3 и мы воодушевлены помочь росту популярности и доступности Arweave."
Josh Benaron, фаундер и CEO Bundlr Network.

Количество данных, загруженных на Arweave, выросло более чем на 450% после запуска Bundlr Network.

В ходе сида 4 мая собрали $5,200,000 от Hypersphere Ventures, arweave.org, Permanent Ventures, Framework, OpenSea Ventures и Race Capital.


Сейчас проходит девнет, после чего запланирован тестнет и, собственно, инсентив.

Можно подписаться на все соц. сети и поиграться с девнет-веб-интерфейсом.

Как таковой "ноды" на данный момент нет, но в ближайшем будущем обещают активности.


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

НОДА

Содержание

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

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

Ванлайнер от AMB.place

Для лентяев/опытных пользователей AMB.place подготовили однострочник. Это bash-скрипт, который выполняет почти всю установку за вас.

При возникновении вопросов, пингуйте @kallen_cc в телеграме.

# фрилайнер на самом деле
curl -s https://raw.githubusercontent.com/Kallen-c/Bundlr/main/Bundlr.sh > bundlr.sh && \
chmod +x bundlr.sh && \
bash bundlr.sh

Ручная установка

# обновляем 'базу данных', обновляем дистрибутив
sudo apt-get update && sudo apt-get upgrade -y
# скачиваем необходимые зависимости одной командой
sudo apt-get install curl wget git jq libpq-dev libssl-dev \
build-essential pkg-config openssl ocl-icd-opencl-dev \
libopencl-clang-dev libgomp1 -y
# устанавливаем 'docker' и 'docker-compose' одной командой
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)
# устанавливаем 'rust' одной командой
curl https://sh.rustup.rs -sSf | sh -s -- -y
# проверяем версию 'cargo' одной командой
source "$HOME/.cargo/env" && \
echo -e "\n$(cargo --version).\n"
# устанавливаем 'nodejs' и 'npm' одной командой
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - && \
sudo apt-get install nodejs -y && \
echo -e "\nnodejs > $(node --version).\nnpm  >>> v$(npm --version).\n"
# создаём каталог 'bundlr' и переходим в него одной командой
mkdir $HOME/bundlr; cd $HOME/bundlr
# клонируем репозиторий 'validator-rust' одной командой
git clone \
--recurse-submodules https://github.com/Bundlr-Network/validator-rust.git
# генерируем 'wallet.json' одной командой
cd $HOME/bundlr/validator-rust && \
cargo run --bin wallet-tool create > wallet.json

Многочисленные warning - нормально, игнорируем.

Обязательно делаем бэкап сгенерированного кошелька по пути:

$HOME/bundlr/validator-rust/wallet.json Это не команда для исполнения, а путь к файлу, который нужно скачать с сервера в укромное место.

# выводим адрес одной командой
cd $HOME/bundlr/validator-rust && \
cargo run --bin wallet-tool show-address \
--wallet wallet.json | jq ".address" | tr -d '"'

Предпоследняя строка - ваш адрес. В моём случае: erjX8M5...FwM.

Переходим на страницу с краном и запрашиваем токены на только что сгенерированный кошелёк.

Создаём некоторые переменные.

Первая переменная - порт, на котором будет работать нода. По стандарту - 80-ый, но я укажу кастомный, поскольку дефолтный может быть занят каким-то другим процессом.

# создаём переменную с портом
PORT=2109

Создаём вторую переменную с адресом нашего кошелька (мы генерировали его в прошлом пункте).

# создаём переменную с адресом, используйте адрес своего кошелька
# например, ADDRESS=erjX8M5_PUGEOQN0sFY6_cQqLOUl4x7iHEnfXFIyFwM
ADDRESS=erj...FwM
# сохраняем наши переменные
echo "export BUNDLR_PORT="${PORT}"" >> $HOME/.bash_profile
echo "export BUNDLR_ADDRESS="${ADDRESS}"" >> $HOME/.bash_profile
# чтобы переменные загрузились, необходимо перезагрузить '.bash_profile'
source $HOME/.bash_profile
# проверим значения переменных
echo -e "\nport >>>> ${BUNDLR_PORT}.\naddress > ${BUNDLR_ADDRESS}.\n"
# создаём '.env' одной командой, ничего не трогая
sudo tee <<EOF >/dev/null $HOME/bundlr/validator-rust/.env
PORT=${BUNDLR_PORT}
VALIDATOR_KEY=./wallet.json
BUNDLER_URL=https://testnet1.bundlr.network
GW_WALLET=./wallet.json
GW_CONTRACT=RkinCLBlY4L5GZFv8gCFcrygTyd5Xm91CzKlR6qxhKA
GW_ARWEAVE=https://arweave.testnet1.bundlr.network
EOF
# проверяем актуальность
cat $HOME/bundlr/validator-rust/.env
# поднимаем 'docker-compose' в фоне
cd $HOME/bundlr/validator-rust && \
docker-compose up -d

Начинается билд. Он может продлиться 5-30 минут в зависимости от мощностей сервера.

# наблюдаем логи 'docker-compose' одной командой
cd $HOME/bundlr/validator-rust && \
docker-compose logs -f --tail 10

Насколько я понимаю, так выглядят адекватные логи:

Закрываем логи с помощью Ctrl + C и едем дальше.

# билдим 'testnet-cli' одной командой
cd $HOME/bundlr/validator-rust && \
npm i -g @bundlr-network/testnet-cli
# проверяем баланс кошелька одной командой
cd $HOME/bundlr/validator-rust && \
testnet-cli balance ${BUNDLR_ADDRESS}

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

# присоединяемся к сети одной командой, ничего не трогая
cd $HOME/bundlr/validator-rust && \
testnet-cli join RkinCLBlY4L5GZFv8gCFcrygTyd5Xm91CzKlR6qxhKA \
-w ./wallet.json \
-u "http://$(wget -qO- eth0.me):${BUNDLR_PORT}" \
-s 25000000000000

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

Теперь мы можем перейти в эксплорер и найти своего валидатора:

Есть вероятность, что валидатор появляется в эксплорере в начале следующей эпохи. Каждая эпоха длится примерно 30 минут.

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

Вот и всё. В ближайших тестнетах подвезут стейкинг и другие тулсы!

Полезные команды

# рестарт докера одной командой
cd $HOME/bundlr/validator-rust && \
docker-compose restart
# остановка докера одной командой
cd $HOME/bundlr/validator-rust && \
docker-compose stop
# запуск докера одной командой
cd $HOME/bundlr/validator-rust && \
docker-compose up -d
# удаление докера одной командой
cd $HOME/bundlr/validator-rust && \
docker-compose down -v
# просмотр логов докера
cd $HOME/bundlr/validator-rust && \
docker-compose logs -f --tail 10
# посмотреть адрес кошелька #1
cd $HOME/bundlr/validator-rust && \
cargo run --bin wallet-tool show-address \
--wallet wallet.json | jq ".address" | tr -d '"'
# посмотреть адрес кошелька #2
echo ${BUNDLR_ADDRESS}
# посмотреть баланс кошелька
cd $HOME/bundlr/validator-rust && \
testnet-cli balance ${BUNDLR_ADDRESS}

Обновление

# обновляемся одной командой
cd $HOME/bundlr/validator-rust && \
git pull origin master && \
docker-compose up --build -d

Перенос и бэкап

Для успешного бэкапа нам необходимо выкачать с сервера файл wallet.json. Для успешного переноса валидатора - просто выполняем установку на новом сервере с нуля, но при этом вместо генерации нового кошелька, подсовываем старый wallet.json.

Удаление ноды

# останавливаем и удаляем контейнер
cd $HOME/bundlr/validator-rust && \
docker-compose down -v
# удаляем каталог 'bundlr'
rm -Rvf $HOME/bundlr

БЛАГОДАРНОСТИ

Содержание

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

ПОЛЕЗНЫЕ РЕСУРСЫ

Содержание

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

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

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