Documentation
IPFS

IPFS

Access to the IPFS network

Whats is IPFS?

IPFS, or the InterPlanetary File System, is a distributed and decentralized protocol designed to create a peer-to-peer method of storing and sharing hypermedia in a distributed file system.

Here's a brief explanation of key concepts:

  1. Decentralized and Distributed - IPFS is built on a decentralized model, which means that there is no central server that holds all the data. Instead, files and data are distributed across a network of interconnected nodes, each hosting a part of the content.

  2. Content Addressing - IPFS uses a content-addressed system where each piece of content is given a unique identifier derived from its content, called a content identifier (CID). This CID is used to locate and retrieve the content from the network.

  3. Peer-to-Peer Network - IPFS operates on a peer-to-peer network, where every user on the network is both a consumer and provider of content. Each node in the network stores and shares data, contributing to the overall resilience and availability of content.

  4. MerkleDag - IPFS structures data as a MerkleDag (Merkle Directed Acyclic Graph), a tree-like structure where each node represents a piece of data, and links between nodes are cryptographic hashes. This ensures the integrity of the data and allows for efficient verification.

  5. Versioning and History - IPFS maintains versioning and history for files. If a file is updated, the new version gets a new CID, and nodes can reference both versions. This allows for efficient version control and easy retrieval of historical data.

  6. Peer Discovery - To locate content, IPFS uses a distributed hash table (DHT) for peer discovery. This enables nodes to find each other and efficiently retrieve content from the network.

  7. Use Cases - IPFS is used for various applications, including decentralized file storage, creating distributed applications (DApps), and building resilient and censorship-resistant websites. It is particularly valuable in scenarios where traditional centralized servers might be less reliable or subject to censorship.

  8. Integration with Blockchain - IPFS is often integrated with blockchain technologies to enhance the storage and accessibility of decenztralized applications. Content-addressed storage aligns well with the decentralized and immutable nature of blockchain systems.

In summary, IPFS provides a decentralized, peer-to-peer approach to storing and sharing content on the internet. It offers improved resilience, censorship resistance, and efficient content retrieval through its unique addressing and distribution mechanisms. IPFS has gained popularity within the web3 and blockchain communities as a fundamental technology for building a more decentralized and robust internet infrastructure.

Creating an IPFS endpoint

To create a new endpoint, open the IPFS tab in the desired project.

Next, enter a name in the form (any name you like) and click on the «Create» button.

The new endpoint will appear in the list. Once created, you will receive a pair of private and public keys associated with your IPFS endpoint.

By clicking on the «Copy», icon, the private or public key is copied to the clipboard.

Keep these keys secure as they are essential for accessing and managing your decentralised content.

The system generates a pair of private and public keys associated with an IPFS endpoint. These keys allow secure and authenticated access to decentralised content stored in the IPFS.

Use the provided private and public keys to interact with the IPFS network. Upload and retrieve content securely using the decentralised and distributed nature of IPFS.

To retrieve data from IPFS, the following parameters must be added to the created endpoint: /get?arg=HASH. Where HASH is the hash of the file in IPFS.

Example:
POST https://ipfs.web3gate.ru/ipfs/api/v0/08aa3c8d-771e-4e62-ac20-8c7191e24c0e/get?arg=QmQqzMTavQgT4f4T5v6PWBp7XNKtoPmC9jvn12WPT3gkSE

Depending on the user's subscription plan, the system enforces upload and download restrictions. This ensures fair use and allocation of resources, preventing abuse and providing scalable interactions for users with different needs.