IPFS - Распределённая файловая система с контентной адресацией
Простыми словами - это торрент-трекер, где узлы делятся друг с другом файлами, которые хранят у себя на диске и далее делятся этими файлами с другими узлами, распространяя их по сети и создавая набор из n-узлов, которые хранят файлы, что позволяет получить к ним доступ независимо от цензуры и будут доступны, даже если кто-то отключится.
Зачем?
Да, намного проще зайти в Google Drive / Dropbox / Amazon Web Services и другие облачные хранилища, чтобы загрузить свой файлы туда, но, делая это вы должны быть готовы к следующему:
1. Ваши файлы могут быть потерянны из-за отключение сервера;
2. Доступ к сервису может быть заблокирован вашей страной;
3. Компания, предоставляющая вам дисковое пространство, может использовать ваши данные в личных целях.
Для некоторых людей, вышеперечисленные пункты не вызывают беспокойств или тревог, но любая система должна развиваться и двигаться дальше, на сегодняшний день, крупные корпорации зарабатывают на личных данных пользователях намного больше, чем услуги, которые юзеры получают взамен.
В России, понятие "интеллектуальной собственности" и "защиты личных данных" очень слабо развиты, по этой причине, не всем интересна тема Web 3.0 и возможности монетизации / защиты личных данных, но в таких странах, как Германия, пришло осознание того, что Google / Facebook / Twitter уже начинают терять тот фундамент, на котором стоят и что будущее интернета стоит за возможностью управлять своими данными и возможностью создавать ценность независимо от свой национальности / места рождения / возраста.
Устновка под Windows
Мы будем использовать уже готовый бинарник. Но если вам хочется, самостоятельно его собрать, то есть документация — https://gist.github.com/drwasho/ca224cbd4a21440f7cc1245e594398e4 Вам, будет необходимо установить Go и Git.
Ну а мы просто возьмем готовый бинариник с https://dist.ipfs.io/#go-ipfs
Распакуйте его, куда вам будет удобно. Я в корень диска.
Отлино. Пепеходим в каталог, куда вы распаковали и инициализируем нашу ноду.
ipfs init
Следуем действия, которые сообщили нам
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
Отлично, все работает. IPFS можно управлять их командной строки, но все же удобнее использовать веб интерфей. Запустим демон и дадим разрешение фаерволу.
ipfs deamon
Отлично. Как видно, веб-интерфейс расположен на http://127.0.0.1:5001/webui. Переходим.
Установка закончена!
Установка под Linux
- Скачиваем с того же сайта архив под свою платформу, распаковываем и запускаем
$ tar xvfz go-ipfs.tar.gz $ cd go-ipfs $ ./install.sh
Для пользователей Arch Linux, можно скачать с AUR в одну комнду
yay -S go-ipfs
Далее все так же, как и с Windows.
ipfs init
Запуск демона для веб-интефейса
ipfs deamon
Чтобы IPFS запускалась самостоятельно, можно сформировать службу
[Unit] Description=IPFS daemon After=network.target [Service] ExecStart=/usr/local/bin/ipfs daemon ExecStop=/usr/bin/pkill ipfs Restart=on-failure User=www-data [Install] WantedBy=default.target
Обновим информацию о сервисах:
systemctl daemon-reload
Запустим новый сервис:
service ipfs start
Проверим его состояние:
service ipfs status
Если всё ОК, то включим автозагрузку:
systemctl enable ipfs.service
Веб интерфейс так же доступен по адресу http://127.0.0.1:5001, но для удобства можно установить клиент. Он самостоятельно запускает демона.
Я использую Arch Linux, но думаю, установка на других дистрибутивах тривиальна. В моем случае это:
yay -S ipfs-desktop
Выглядит так же как и веб-интерфейс, но есть удобства в виде иконке в трее, удобное контектное меню.
Как пользоваться
Естественно, что удобней пользоваться клиентом или веб-интерфейсом, но знать команды, все же необходимо.
Опубликовать один конкретный файл, без дублирования во внутреннюю библиотеку IPFS:
ipfs add --nocopy ./folder/music.mp3
Опубликовать каталог со всем содержимым (рекурсивно), с дублированием (копированием) во внутреннюю библиотеку IPFS:
ipfs add --recursive ./folder/
Узнать мультихэш файла, без публикации его в сеть:
ipfs add --only-hash -q ./folder/pic.jpg
Ссылка для получения объекта (файла, директории) через специальный, распределённый, открытый шлюз:
https://gateway.ipfs.io/ipfs/QmfHTUfG6hexg2D3Dgatx1CxyKVyrKQqeJ2ge7DVuvJHqp
Как скачивать?
Вы можете скачать нужные вам файлы по ссылке, либо через хеш в самом клиете.
Расшарить или скачать очень просто!
Потребление рессурсов
Не особо прожорливый. Ну тут уж каждый судит сам, на сколько для него это приемлемо.
Заключение
Вообще лично меня, побудило начать использовать IPFS, после того, как с файлобменика MEGA удалили книгу, по просьбе правообладателя. Этот факт разочавал меня, но благо на все всегда найдетуся альтернативы. Используйте децентралицию товарищи! За ней будущие!