Представена версия децентрализованата файловата система IPFS 0.8 (InterPlanetary File System), която създава глобално версионирано хранилище на файлове, разположено под формата на P2P мрежа, съставена от системи на участниците. IPFS комбинира идеи, които преди това са били реализирани в системи като Git, BitTorrent, Kademlia, SFS и Web, и наподобява единен „рой“ от BitTorrent (пирове, участващи в разпространението), обменящи Git обекти. IPFS се отличава с адресация по съдържание, а не по местоположение и произволни имена. Кодът на референтната реализация е написан на езика Go и се разпространява под лицензиите Apache 2.0 и MIT.
В новата версия:
- Реализирана е възможността за създаване на външни услуги за закрепване на потребителски данни (pinning — привързване на данни към възел, за да се гарантира, че важните данни са запазени). Закрепените към услугата данни могат да имат отделни имена, различаващи се от идентификатора на съдържанието (CID). Възможно е търсене на данни както по име, така и по CID. За обработка на заявките за закрепване на данни е предложен API на IPFS Pinning Service, който може да се използва директно в go-ipfs. В командния ред за прикрепване е предложена командата „ipfs pin remote“: ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafymydata —service=mysrv —name=myfile ipfs pin remote ls —service=mysrv —name=myfile ipfs pin remote rm —service=mysrv —name=myfile
- Ускорени са операциите за закрепване (pinning) и освобождаване (unpinning) на данни на локалния възел. Увеличаването на производителността и намаляването на потреблението на памет е особено забележимо при извършването на операции за извеждане или промяна на системи с голям брой закрепвания.
- При формулирането на връзки „https://“ за шлюзове е добавена възможността за предаване на имена DNSLink с използване на поддомейни. Например, за зареждане на името „ipns://en.wikipedia-on-ipfs.org“, освен преди поддържаните връзки „https://dweb.link/ipns/en.wikipedia-on-ipfs.org“, сега могат да се използват връзки „https://en-wikipedia—on—ipfs-org.ipns.dweb.link“, в които точките в оригиналните имена са заменени с символа „-“, а съществуващите символи „-“ са ескейпнати с още един подобен символ.
- Разширена е поддръжката на протокола QUIC. За увеличаване на производителността е предоставена възможността за увеличаване на входящите буфери за UDP.
Напомняме, че в IPFS връзката за достъп до файл е директно свързана с неговото съдържание и включва криптографски хеш на съдържанието. Адресът на файла не може да бъде променен произволно, той може да се промени само след промяна на съдържанието. Аналогично, не е възможно да се направи изменение в файла без промяна на адреса (старата версия ще остане на предишния адрес, а новата ще бъде достъпна чрез друг адрес, тъй като хешът на съдържанието на файла ще се промени). Като се има предвид, че идентификаторът на файла се променя при всяка промяна, за да не се предават нови връзки всеки път, се предоставят услуги за свързване на постоянни адреси, отразяващи различни версии на файла (IPNS) или закрепване на псевдоним в аналогия с традиционните ФС и DNS (MFS (Mutable File System) и DNSLink).
По аналогия с BitTorrent данните директно се съхраняват на системите на участниците, които обменят информация в режим P2P, без обвързване с централизирани възли. При необходимост от получаване на файл с определено съдържание, системата намира участниците, които притежават този файл и го предава от техните системи на части в няколко потока. След като файлът бъде изтеглен на своята система, участникът автоматично става една от точките за разпространение. За определяне на участниците в мрежата, на възлите на които присъства интересуващото съдържание, се използва разпределена хеш таблица (DHT). За достъп до глобалната ФС IPFS може да се използва протокол HTTP или да се монтира виртуална ФС /ipfs чрез модула FUSE.
IPFS помага за решаването на задачи като надеждно съхранение (ако изходното хранилище бъде повредено, файлът може да бъде изтеглен от системите на други потребители), противодейства на цензурирането на съдържание (за блокиране е необходимо да се блокират всички системи на потребители, на които има копия на данните) и осигурява достъп при липса на директно интернет свързване или при лошо качество на връзката (може да се изтеглят данни чрез най-близките участници в локалната мрежа). Освен съхранение на файлове и обмен на данни, IPFS може да се използва като основа за създаване на нови услуги, например, за организиране на работата на сайтове, не свързани със сървъри, или за изграждане на разпределени приложения.

Източник: opennet.ru
