Файловая система ipfs
Файловая система ipfs.
Содержание
1 Общая информация
- IPFS состоит из следующих уровней:
- уровень имён: пользователи могут выбирать глобальные имена (привязка к DNS при помощи записей TXT);
- уровень файлов: файловая система с изменяемыми файлами и снимками;
- уровень объектов: неизменяемые объекты (могут или храниться в распределённой хеш-таблице (если маленькие), или скачиваться как в торрентах);
- уровень обмена данными: протокол BitSwap;
- уровень маршрутизации: как узлам добираться друг до друга;
- сетевой уровень: по каким протоколам узлам связываться между собой;
- уровень подлинности узлов (identity): чтобы нельзя было дублировать слишком много узлов (узлы с заданным номером), нарушая целостность сети.
- Сайт: https://ipfs.tech/
- Репозиторий описания: https://github.com/ipfs/ipfs
2 Установка
2.1 Gentoo
- В portage присутствует реализация kubo:
1emerge net-p2p/kubo
3 Каталоги
- Каталог по умолчанию для системного демона:
1/var/lib/ipfs/.ipfs
- Конфигурационный файл:
1$IPFS_PATH/config
- Конфигурационный файл для системного демона:
1/var/lib/ipfs/.ipfs/config
- Конфигурационный файл для пользовательского демона:
1~/.ipfs/config
4 Web-консоль
- Подключиться к web-консоли:
1http://localhost:5001/webui/
- Настройки IPFS можно менять в webui.
- Локальный IPFS-шлюз:
1http://localhost:8080/ipfs/
5 Команды
5.1 Редактирование настроек
- Общая команда редактирования:
1ipfs config edit
6 Запуск
6.1 Системный демон
- Инициализируйте файловую систему ipfs:
1su -s /bin/sh -c "ipfs init -e" ipfs
- Запуск системного демона:
1sudo systemctl enable --now ipfs.service
6.2 Пользовательский демон
- Инициализируйте файловую систему ipfs:
1ipfs init -e
- Запуск пользовательского демона:
1sudo systemctl enable --now ipfs@username.service
6.3 Пользовательский демон в другом каталоге
- Инициализируйте файловую систему ipfs в каталоге
/data/ipfs
: - Создайте переопределение для сервиса systemd:
1sudo systemctl edit ipfs@username.service
- Отредактируйте файл
/etc/systemd/system/ipfs@username.service.d/override.conf
: - Запуск пользовательского демона:
1sudo systemctl enable --now ipfs@username.service
7 Первичная настройка
- Проверьте работу ipfs, откройте в броузере:
1http://localhost:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
7.1 CORS
- Cross-origin Resource Sharing (CORS) есть механизм безопасности браузера, который предотвращает доступ неавторизованных скриптов к ресурсам из разных доменов.
- Можно настроить свой узел, чтобы разрешить обработку запросов из других доменов, установив соответствующие заголовки в конфигурации узла:
- Или прописать wildcard:
8 Ресурсы
- Awesome IPFS https://github.com/ipfs/awesome-ipfs