ново издание на децентрализирана файлова система (InterPlanetary File System), която формира глобално версионирано хранилище на файлове, разположено под формата на P2P мрежа, образувана от системи на участниците. IPFS комбинира идеи, преди това реализирани в такива системи като Git, BitTorrent, Kademlia, SFS и Web, и напомня на единен „рой“ BitTorrent (пирове, участващи в разпространението), обменящи Git обекти. За достъп до глобалната FS, IPFS може да използва протокол HTTP или да се монтира виртуална FS \/ipfs с помощта на модула FUSE. Кодът на референтната реализация е написан на език Go и лицензии Apache 2.0 и MIT. Допълнително реализация на протокола IPFS на JavaScript, която може да работи в браузър.
Ключов IPFS е адресация по съдържание, при която линкът за достъп до файл е пряко свързан с неговото съдържание (включва криптографски хеш на съдържанието). IPFS има вградена поддръжка за версиониране. Адресът на файла не може да бъде произволно променян, той може да се промени само след промяна на съдържанието. По аналогия, не е възможно да се направи промяна в файла без да се промени адресът (старият вариант ще остане на предишния адрес, а новият ще бъде достъпен чрез друг адрес, тъй като хешът на съдържанието на файла ще се промени). С оглед на това, че идентификаторът на файла се променя при всяка промяна, за да не се предават нови линкове всеки път, се предлагат услуги за свързване на постоянни адреси, които разглеждат различни версии на файла (), или закрепване на псевдоним, подобно на традиционните ФС и DNS ( (Mutable File System) и ).
Подобно на BitTorrent, данните се съхраняват пряко на системите на участниците, които обменят информация в P2P режим, без привързване към централизирани възли. При необходимост за получаване на файл с определено съдържание, системата намира участници, които имат този файл и го предоставя от техните системи на части в няколко потока. След като участникът е изтеглил файла на своята система, той автоматично става една от точките за разпространение. За определяне на участниците в мрежата, на възлите които присъства интересното съдържание, разпределена хеш таблица ().
По същество IPFS може да се разглежда като разпределена реинкарнация на Web с адресация по съдържание, а не по местоположение и произволни имена. Освен съхранение на файлове и обмен на данни, IPFS може да се използва като основа за създаване на нови услуги, например за организиране на работа на сайтове, които не са свързани с сървъри, или за създаване на разпределени .
IPFS помага за решаване на задачи като надеждност на съхранението (ако основното хранилище отпадне, файлът може да бъде изтеглен от системи на други потребители), противодействие на цензурирането на съдържание (за да бъде блокирано, е необходимо да се блокират всички системи на потребителите, на които има копия на данните) и организиране на достъп при липса на пряка връзка с интернет или при лошо качество на връзката (може да се изтеглят данни през най-близките участници в локалната мрежа).
В версията значително повишена производителност и надеждност на работата. Обществената мрежа на базата на IPFS преодоля границата от 100 хиляди възли и промените в IPFS 0.5 отразяват адаптацията на протокола за работа в подобни условия. Оптимизациите бяха съсредоточени основно върху подобряване на механизмите за маршрутизиране на съдържанието, отговорни за търсене, анонсиране и извличане на данни, както и за повишаване на ефективността на изпълнението. (DHT), предоставяща информация за възлите, притежаващи исканите данни. Свързаният с DHT код беше практически напълно пренаписан, което значително ускори операциите по търсене на съдържание и определяне на записи IPNS.
В частност, скоростта на изпълнение на операциите за добавяне на данни се увеличи два пъти, анонсирането на ново съдържание в мрежата - 2.5 пъти,
извличането на данни - от 2 до 5 пъти, а търсенето на съдържание - от 2 до 6 пъти.
Преработените механизми за маршрутизиране и изпращане на анонси позволиха да се ускори работата на мрежата 2-3 пъти благодарение на по-ефективното използване на пропускната способност и фоновото прехвърляне на трафик. В следващата версия е предвидено внедряване на транспорт на базата на протокола QUIC, което ще доведе до още по-голямо увеличение на производителността посредством намаляване на закъсненията.
Ускорена е работата и повишена надеждността на системата IPNS (Inter-Planetary Name System), използвана за създаване на постоянни връзки към променливо съдържание. Новият експериментален транспорт pubsub позволи ускоряване на доставката на записи IPNS с 30-40 пъти при тестове в мрежа с хиляда възли (за експериментите беше разработен специален ). Производителността на слоя е увеличена приблизително два пъти.
Badger, използван за взаимодействие с файловата система на операционната система. С поддръжката на асинхронни операции за запис, Badger сега работи 25 пъти по-бързо от старата прослойка flatfs. Подобрението на производителността също е засегнало механизма , използван за предаване на файлове между възлите.
От функционалните подобрения се споменава внедряването на TLS за криптиране на връзките между клиентите и сървърите. Добавена е поддръжка на поддомейни в HTTP шлюза — разработчиците могат да хостват децентрализирани приложения (dapps) и уеб съдържание в изолирани поддомейни, които могат да се използват с хеш адреси, IPNS, DNSLink, ENS и т.н. Добавено е ново пространство от имена /p2p, в което са преместени данни, свързани с адресите на пирите (/ipfs/peer_id → /p2p/peer_id). Добавена е поддръжка за .eth линкове, базирани на блокчейн, което ще разшири приложението на IPFS в разпределените приложения.
Стартъпът Protocol Labs, който поддържа развитието на IPFS, паралелно развива проекта , който е надстройка над IPFS. Докато IPFS позволява на участниците да съхраняват, запитват и предават данни помежду си, Filecoin се развива като платформа, основана на блокчейн технологии за постоянно съхранение. Filecoin предоставя възможност на потребителите с неизползвано дисково пространство да го предложат на мрежата срещу определено възнаграждение, а на потребителите, които имат нужда от място за съхранение, да го закупят. Ако необходимостта от място изчезне, потребителят може да го продаде. По този начин се формира пазар на пространство за съхранение, в който разплащанията се извършват в токени , образувани чрез добив.
Източник: opennet.ru
