Release of the global decentralized file system IPFS 0.7

Submitted by decentralized file system release IPFS 0.7 (InterPlanetary File System), which forms a global versioned file storage, deployed in the form of a P2P network formed from member 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 spreads under Apache 2.0 and MIT licenses.

In the new version, transport is disabled by default SECIO, which was replaced in the last issue by transport NOISE, founded on the protocol Noise and developed within a modular network stack for P2P applications libp2p. TLSv1.3 is left as a fallback transport. Host administrators using older versions of IPFS (Go IPFS < 0.5 or JS IPFS < 0.47) are advised to update the software to avoid performance degradation.

The new version also switched to using ed25519 keys by default instead of RSA. Support for old RSA keys has been retained, but new keys will now be generated using the ed25519 algorithm. The use of built-in public keys ed25519 solves the problem with storing public keys, for example, to verify signed data when using ed25519, information about the PeerId is enough. Key names in IPNS paths are now base36 CIDv1 encoded instead of base58btc.

In addition to changing the default key type, IPFS 0.7 adds the ability to rotate identification keys. You can now run the "ipfs key rotate" command to change the host key. In addition, new commands have been added to import and export keys ("ipfs key import" and "ipfs key export") that can be used for backup purposes, as well as the "ipfs dag stat" command to display statistics about the DAG (Distributed Acyclic Graphs ).

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). Given that the file identifier changes with each change, in order not to transfer new links each time, services are provided to bind permanent addresses that take into account different versions of the file (IPNS), or pinning 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. To identify network members on whose nodes the content of interest is present used distributed hash table (DHT). 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 organizing 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.7

Source: opennet.ru

Add a comment