Файловая система ipfs
2024-08-30
·
2 мин. для прочтения
Файловая система ipfs.
Содержание
1 Общая информация
- IPFS состоит из следующих уровней:
- уровень имён: пользователи могут выбирать глобальные имена (привязка к DNS при помощи записей TXT);
- уровень файлов: файловая система с изменяемыми файлами и снимками;
- уровень объектов: неизменяемые объекты (могут или храниться в распределённой хеш-таблице (если маленькие), или скачиваться как в торрентах);
- уровень обмена данными: протокол BitSwap;
- уровень маршрутизации: как узлам добираться друг до друга;
- сетевой уровень: по каким протоколам узлам связываться между собой;
- уровень подлинности узлов (identity): чтобы нельзя было дублировать слишком много узлов (узлы с заданным номером), нарушая целостность сети.
- Сайт: https://ipfs.tech/
- Репозиторий описания: https://github.com/ipfs/ipfs
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 Web-консоль
- Подключиться к web-консоли:http://localhost:5001/webui/
- Настройки IPFS можно менять в webui.
- Локальный IPFS-шлюз:http://localhost:8080/ipfs/
5 Команды
5.1 Редактирование настроек
- Общая команда редактирования:ipfs config edit
6 Запуск
6.1 Системный демон
- Инициализируйте файловую систему ipfs:su -s /bin/sh -c "ipfs init -e" ipfs
- Запуск системного демона:sudo systemctl enable --now ipfs.service
6.2 Пользовательский демон
- Инициализируйте файловую систему ipfs:ipfs init -e
- Запуск пользовательского демона:sudo systemctl enable --now ipfs@username.service
6.3 Пользовательский демон в другом каталоге
- Инициализируйте файловую систему 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
7 Первичная настройка
- Проверьте работу ipfs, откройте в броузере:http://localhost:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
7.1 CORS
- Cross-origin Resource Sharing (CORS) есть механизм безопасности браузера, который предотвращает доступ неавторизованных скриптов к ресурсам из разных доменов.
- Можно настроить свой узел, чтобы разрешить обработку запросов из других доменов, установив соответствующие заголовки в конфигурации узла:ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://ip_вашего сервера:5001", "http://127.0.0.1:5001", "https://webui.ipfs.io"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
- Или прописать wildcard:ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
8 Ресурсы
- Awesome IPFS https://github.com/ipfs/awesome-ipfs
