Release of the global decentralized file system IPFS 0.8

The release of the decentralized file system IPFS 0.8 (InterPlanetary File System) is presented, which forms a global versioned file storage deployed in the form of a P2P network formed from participant systems. IPFS combines ideas previously implemented in systems such as Git, BitTorrent, Kademlia, SFS, and the Web, and resembles a single BitTorrent "swarm" (peers participating in the distribution) exchanging Git objects. IPFS is distinguished by addressing by content rather than location and arbitrary names. The reference implementation code is written in Go and distributed under the Apache 2.0 and MIT licenses.

In the new version:

  • Implemented the ability to create external services to pin user data (pinning - binding data to a node to ensure that important data is saved). Service-bound data can have separate names other than the content identifier (CID). It is possible to search for data both by name and by CID. To process data pinning requests, the IPFS Pinning Service API is proposed, which can be used directly in go-ipfs. The "ipfs pin remote" command is suggested on the command line for attaching: 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
  • Faster data pinning and unpinning operations on the local node. The increase in performance and reduction in memory consumption is especially noticeable when performing output or update operations on systems with a large number of bindings.
  • When generating "https://" links for gateways, the ability to transfer DNSLink names using subdomains has been added. For example, to load the name "ipns://en.wikipedia-on-ipfs.org", in addition to the previously supported links "https://dweb.link/ipns/en.wikipedia-on-ipfs.org", you can now use the links " https://en-wikipedia-on-ipfs-org.ipns.dweb.link", in which the dots in the original names are replaced with the "-" character, and the existing "-" characters are escaped with another similar character.
  • Extended support for the QUIC protocol. To increase performance, the possibility of increasing the receiving buffers for UDP is provided.

Recall that in IPFS a link to access a file is directly related to its content and includes a cryptographic hash of the content. The file address cannot be arbitrarily renamed, it can only change after the content has changed. Similarly, it is impossible to make a change to a file without changing the address (the old version will remain at the same address, and the new one will be available through a different address, since the hash of the file contents will change). Considering that the file identifier changes with each change, in order not to transfer new links each time, services are provided for binding permanent addresses that take into account different versions of the file (IPNS), or fixing an alias by analogy with traditional FS and DNS (MFS (Mutable File System) and DNSLink).

By analogy with BitTorrent, data is directly stored on the systems of participants who exchange information in P2P mode, without being tied to centralized nodes. If it is necessary to receive a file with certain content, the system finds participants who have this file and sends it with their systems in parts to several streams. After uploading the file to their system, the participant automatically becomes one of the points for its distribution. A distributed hash table (DHT) is used to determine network participants on whose nodes the content of interest is present. To access the global FS IPFS, the HTTP protocol can be used or the virtual FS /ipfs can be mounted using the FUSE module.

IPFS helps to solve such problems as storage reliability (if the original storage is disabled, the file can be downloaded from the systems of other users), content censorship resistance (for blocking it will be necessary to block all user systems that have a copy of the data) and organization of access in the absence of direct connection to the Internet or when the quality of the communication channel is poor (you can download data through the nearest participants in the local network). In addition to storing files and exchanging data, IPFS can be used as a basis for creating new services, for example, for organizing the operation of sites that are not tied to servers, or for creating distributed applications.

Release of the global decentralized file system IPFS 0.8


Source: opennet.ru

Add a comment