IPFS. Реализация kubo
2026-03-26
·
3 мин. для прочтения
IPFS. Реализация kubo.
Содержание
1 Общая информация
- Репозитоирий: https://github.com/ipfs/kubo
2 Установка
2.1 Gentoo
- В portage присутствует реализация kubo:
emerge net-p2p/kubo
3 Каталоги
- Каталог по умолчанию для системного демона:
/var/lib/ipfs/.ipfs - Конфигурационный файл:
$IPFS_PATH/config - Конфигурационный файл для системного демона:
/var/lib/ipfs/.ipfs/config - Конфигурационный файл для пользовательского демона:
~/.ipfs/config
4 Права доступа
- Добавьте пользователя в группу
ipfs:sudo gpasswd -a <user> ipfs
5 Web-консоль
- Подключиться к web-консоли:
http://localhost:5001/webui/ - Настройки IPFS можно менять в webui.
- Локальный IPFS-шлюз:
http://localhost:8080/ipfs/
6 Команды
6.1 Редактирование настроек
- Общая команда редактирования:
ipfs config edit
7 Системные настройки
7.1 Размеры UDP-буферов
- https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes
- Увеличить максимальный размер буфера:
sysctl -w net.core.rmem_max=7500000
sysctl -w net.core.wmem_max=7500000
- Добавить в файл конфигурации, чтобы сохранялось при перезагрузке:
sudo cat << EOF >> sysctl.conf ## ipfs UDP buffer sizes net.core.rmem_max = 7500000 net.core.wmem_max = 7500000 EOF
8 Запуск
8.1 Системный демон
- Инициализируйте файловую систему ipfs:
su -s /bin/sh -c "ipfs init -e" ipfs - Запуск системного демона:
sudo systemctl enable --now ipfs.service
8.2 Системный демон в другом каталоге
- Я для унификации я хочу поместить каталог ipfs в
/data/ipfs. - Создайте каталог:
mkdir -p /data/ipfs chown ipfs:ipfs /data/ipfs - Можно либо подменить переменную окружения, как в запуске под пользователем, либо подмонтировать необходимый каталог в
/var/lib/ipfs. - Создайте подтом для ipfs:
mkdir -p /fs mount /dev/nvme0n1p4 /fs cd /fs btrfs subvolume create @ipfs cd / umount /fs - Добавьте в
/etc/fstab:/dev/nvme0n1p4 /data/ipfs btrfs relatime,discard=async,autodefrag,compress=zstd,subvol=@ipfs 0 0 /data/ipfs /var/lib/ipfs btrfs bind 0 0 - Подмонтируйте:
mount /data/ipfs mount /var/lib/ipfs - Инициализируйте файловую систему ipfs:
sudo -u ipfs ipfs init -e - Запуск демона:
sudo systemctl enable --now ipfs.service
8.3 Пользовательский демон
- Инициализируйте файловую систему ipfs:
ipfs init -e - Запуск пользовательского демона:
sudo systemctl enable --now ipfs@username.service
8.4 Пользовательский демон в другом каталоге
- Инициализируйте файловую систему ipfs в каталоге
/data/ipfs:sudo mkdir -p /data/ipfs/ sudo chown -R username /data/ipfs/ IPFS_PATH=/data/ipfs/ ipfs init -e - Создайте переопределение для сервиса systemd:
sudo systemctl edit ipfs@username.service - Отредактируйте файл
/etc/systemd/system/ipfs@username.service.d/override.conf:[Service] Environment=IPFS_PATH=/data/ipfs - Запуск пользовательского демона:
sudo systemctl enable --now ipfs@username.service
9 Первичная настройка
- Проверьте работу ipfs, откройте в броузере:
http://localhost:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
9.1 CORS
- Cross-origin Resource Sharing (CORS) есть механизм безопасности браузера, который предотвращает доступ неавторизованных скриптов к ресурсам из разных доменов.
- Можно настроить свой узел, чтобы разрешить обработку запросов из других доменов, установив соответствующие заголовки в конфигурации узла:
sudo -u ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://ip_вашего сервера:5001", "http://127.0.0.1:5001", "https://webui.ipfs.io"]' sudo -u ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]' - Или прописать wildcard:
sudo -u ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' sudo -u ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'

Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы.
Научные интересы относятся к области теоретической физики и математического моделирования.