Farcaster — это экспериментальный протокол децентрализованных социальных сетей, который разрабатывается для создания более свободных и безопасных онлайн-сообществ. Его основная цель — предоставить пользователям контроль над своими данными и взаимодействиями, снизив зависимость от централизованных платформ и их ограничений.

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

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

Арендуем сервер

Я взял на XorekCloud VPS в Германии, тариф DE-i9-16 за 1400 руб, с таким конфигом: 8 vCPU, 16Gb RAM, 240Gb NVMe. Рекомендую диск брать от 200Gb, не смотря на то, что в оф доках пишут про 40Gb, которых нифига не хватает на данные, подтягиваемые нодой.

При установке выбираем Ubuntu 22, конечно же.

Регаем свои RPC

Заходим на Alchemy и регаемся. После этого переходим в свой аккаунт и слева в меню выбираем раздел «Apps», далее «Create new app». Там задаём любое название и сохраняем.

После создания приложения, заходим внутрь и выбираем вкладку «Networks». Там нам понадобятся RPC сетей Ethereum и Optimism.

Пока оставляем вкладку открытой, мы к ней ещё обратимся.

Копируем Farcaster ID

Либо с телефона в приложении, либо с компа на Warpcast заходим в «Profile», далее вверху "..." и во всплывашке жмём «About».

Оттуда нам скоро понадобится скопировать FID.

Разворачиваем ноду

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

Заходим через терминал по протоколу SSH и выполняем команды по очереди:
sudo apt update -y && sudo apt install -y screen git zip unzip mc nano htop cron libyaml-dev iptables-persistent && dpkg -L iptables-persistent
В процессе спросит два вопроса про сохранение IPv4 и IPv6 правил. Говорим «Yes».

После этого сразу открываем порты 2281, 2282 и 2283 для доступа входящих и исходящих соединений:
sudo iptables -A INPUT -p tcp --dport 2281 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2282 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2283 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables -L -v -n

После этого выполняем команду установки самой ноды:
curl -sSL https://download.thehubble.xyz/bootstrap.sh | bash
При установке будут три вопроса, в поле первого копируем из Alchemy наш Ethereum RPC, во второй – Optimism RPC, в третий Farcaster ID (FID из Warpcast).

После успешной установки приложение выдаст логи:
Можно выйти комбинацией клавиш Ctrl+C, приложение при этом не завершится.

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

Следим за нодой

Для того, чтобы отслеживать работу ноды, можно перейти в браузере по IP вашего сервера, подставив 3000 порт. Будет выглядеть так:
http://SERVER_IP:3000

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

Обновить ноду:
cd ~/hubble && ./hubble.sh upgrade

Проверить место занятое докером:
docker system df

Очистить место занятое докером впустую:
docker image prune -f && docker volume prune -f && docker container prune -f && docker system prune -f && docker volume rm $(docker volume ls -q) && docker image rm $(docker image ls -f dangling=true -q)

Просмотреть логи:
docker logs hubble-hubble-1 --since 1m -f

Удалить ноду:
rm -rf /root/hubble && docker container stop $(docker container ls -aq) && docker container rm -f $(docker container ls -aq) && docker image rm $(docker image ls -q) && service docker restart

Возможные ошибки

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

Статус «Starting up… Please wait» на дашборде

На дашборде Grafana по адресу http://SERVER_IP:3000 многие блоки показывают статус «Starting up… Please wait». Можно попробовать запустить команду обновления ноды:
cd ~/hubble && ./hubble.sh upgrade
Это должно помочь решить проблему.