IPFS Glossary
A
In computer security, an access-control list (ACL) is a list of permissions associated with a system resource, also known as an object. An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects. More about ACL(opens new window)
ADL is short for Advanced Data Layout, a concept in IPLD. See IPLD docs (opens new window).
Formerly referred to as the “public DHT”, Amino is the public Kademlia-based DHT that Kubo and other implementations default to bootstrapping into with the libp2p protocol /ipfs/kad/1.0.0. See the blog post (opens new window)for more info.
Announcing is a function of the IPFS networking layer in libp2p, wherein a peer can tell other peers that it has data blocks available.
The libp2p protocol that allows a peer to determine if it is located behind a Network address translator (NAT). More about AutoNAT (opens new window).
B
Case-insensitive Multibase encoding used for text representation of CIDv1.
Case-insensitive Multibase used for text representation of CIDv1.
Case-sensitive Multibase used for text representation Multihashes and CIDv0.
Case-sensitive Multibase, uses modified Base64 with URL and filename safe alphabet (RFC 4648 (opens new window)), where the + and / are respectively replaced by - and _.
Bitswap is IPFS's central block exchange protocol. Its purpose is to request blocks from and send blocks to other peers in the network. More about Bitswap(opens new window)
BitTorrent is a communication protocol for peer-to-peer file sharing, which is used to distribute data and electronic files over the Internet. Also, the first file-sharing application to use the protocol. More about BitTorrent protocol (opens new window)and BitTorrent app(opens new window)
A Blockchain is a growing list of records, known as blocks, that are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data (generally represented as a Merkle tree). More about Blockchain
A Block is a binary blob of data identified by a CID. It could be raw bytes of arbitrary data or a chunk of serialized binary data encoded with IPLD codec.
A Bootstrap Node is a trusted peer on the IPFS network through which an IPFS node learns about other peers on the network. Both Kubo and js-ipfs use bootstrap nodes to enter the Distributed Hash Table (DHT). See Bootstrap
- IPFS Brave Browser - Set your Brave IPFS preference - IPFS (InterPlanetary File System) is the public network for peer-to-peer data storage and peer-to-peer data delivery. This peer-to-peer protocol has different privacy considerations from HTTP(S). Learn more: https://support.brave.com/hc/en-us/articles/360051406452-How-does-IPFS-Impact-my-Privacy
- Use a Brave local IPFS node - Your computer contributes to the public network, but your IP address and any IPFS content you’re requesting or providing could be exposed. Content you request over IPFS is verified before being served to you. IPFS Network requests may not use browser proxy and browser DNS settings.
- Use an IPFS public gateway - Protects your IP address and IPFS content you’re requesting from potential third-party observers, but not from the IPFS public gateway operator. The gateway operator is responsible for ensuring that the content served to you over a gateway is the content you requested. Also, your computer does not contribute to the public IPFS network.
- You can change your preferences again in Brave settings.
- IPFS Companion Browser Extension - https://docs.ipfs.tech/install/ipfs-companion - https://github.com/ipfs/ipfs-companion#ipfs-companion-features - IPFS Browser Extension - IPFS Companion allows you to interact with your IPFS node and the extended IPFS network through your browser. The IPFS browser add-on is available for IPFS Brave, IPFS Chrome, IPFS Edge, IPFS Firefox (https://addons.mozilla.org/firefox/addon/ipfs-companion), IPFS Opera, and any other Chromium-based web browser (https://chromewebstore.google.com/detail/ipfs-companion/nibjojkomfdiaoajekhjakgkdhaomnch?pli=1).
It enables support for ipfs:// and ipns:// addresses, automatically loads websites and IPFS file paths from a local IPFS gateway, allows you to easily import and share a file with IPFS, and more.
C
The CAR (Content Addressable aRchives) is a format for serialized representation of any IPLD DAG. Typically in a file with a .car filename extension or a byte stream marked as application/vnd.ipld.car (opens new window)media type. More about CAR(opens new window)
Version 1 of the CAR format, a concatenation of DAG blocks, plus a header that describes the graphs in the file (via root CIDs). More about CAR v1(opens new window)
A minimal upgrade to the CAR v1 format with the primary aim of adding an optional index within the format for fast random-access to blocks. More about CAR v2(opens new window)
- IPFS CBOR - The Concise Binary Object Representation (CBOR) is a data format based on JSON, featuring small code and message size, and extensibility. Used within IPLD. More about CBOR(opens new window)
- IPFS CID - A Content Identifier (CID) is a self-describing content-addressed label used to point to the data stored in IPFS. It is the core identifier used for IPFS and IPLD. More about CID
- IPFS CID v0 - Version 0 (v0) of the IPFS content identifier. This CID is 46 characters in length, starting with “Qm”. Uses a base 58-encoded multihash, very simple but much less flexible than newer CIDs. More about CID v0
- IPFS CID v1 - Version 1 (v1) of the IPFS content identifier. This CID version contains some leading identifiers which provide for forward-compatibility. Able to support different formats for future versions of CID. More about CID v1
- IPFS Circuit relay - A libp2p term for transport protocol that routes traffic between two peers over a third-party relay peer. More about Circuit Relay (opens new window).
- IPFS Circuit relay v1 - Unlimited relay that requires some external ACL to control resource usage. See specification (opens new window).
- IPFS Circuit relay v2 - Truly decentralized relay implementation that provides a limited relay for things like hole punching. Support for this type of relay was introduced in Kubo 0.11. See specification (opens new window).
- IPFS Codec - A function that encodes or decodes serial data into and from some data model. In IPFS, we use an agreed-upon codec table implemented as part of Multicodec.
- IPFS Content addressing - A way to store information so a device can retrieve the data based on its content, not its location. Learn how IPFS uses content addressing.
- IPFS CRDT - A Conflict-Free Replicated Data Type (CRDT) is a type of specially-designed data structure used to achieve strong eventual consistency (SEC) and monotonicity (absence of rollbacks). More about CRDT
D
- IPFS Daemon - A Daemon is a computer program that typically runs in the background. The IPFS daemon is how you take your IPFS node online to the IPFS network. More about IPFS Daemon
- IPFS DAG - A Directed Acyclic Graph (DAG) is a computer science data structure adapted for use with versioned file systems, blockchains, and for modeling many different kinds of information. IPLD data in IPFS is naturally a DAG. More about DAG on Wikipedia (opens new window).
- IPFS DAG-JSON - DAG-JSON is an IPFS codec that implements the IPLD Data Model (opens new window)as JSON, plus some additional conventions for encoding links, which it does by claiming certain specific structures of map and assigning them this meaning. DAG-CBOR also adds a “link” type using a CBOR tag, to bring it in line with the IPLD Data Model. More about DAG-JSON(opens new window)
- IPFS DAG-JOSE - DAG-JOSE is an IPFS codec that defines CBOR serialization for JOSE, a standard for signing and encrypting IPFS objects. More in DAG-JOSE specification
- IPFS DAG-CBOR - DAG-CBOR is a codec that implements the IPLD Data Model (opens new window)as a subset of CBOR, plus some additional constraints for hash consistent representations. DAG-CBOR also adds a “link” type using a CBOR tag, to bring it in line with the IPLD Data Model. More about DAG-CBOR(opens new window)
- IPFS DAG-PB - DAG-PB is a codec that implements a very small subset of the IPLD Data Model (opens new window)in a particular set of Protobuf messages used in IPFS for defining how UnixFSv1 data is serialized. More about DAG-PB(opens new window)
- IPFS Data model - Did you mean IPLD Data Model
- IPFS DataStore - The Datastore is the on-disk storage system used by an IPFS node. Configuration parameters control the location, size, construction, and operation of the datastore. More about Datastore(opens new window)
- IPFS DCUtR - Direct Connection Upgrade through Relay (DCUtR) IPFS protocol enables hole punching for NAT traversal when port forwarding is not possible. An IPFS peer will coordinate with the counterparty using a relayed connection, to upgrade to a direct connection through a NAT/firewall whenever possible. More about DCUtR
- IPFS Delegated routing - Delegated routing is a mechanism by which IPFS implementations can offload content routing, peer routing, and naming (IPNS) to another process/server. The most widely adopted vendor-agnostic spec for delegated routing is the Delegated Routing V1 HTTP API (opens new window).
Delegated routing is useful in browsers and other constrained environments where it's infeasible to be a DHT client/server. More broadly, it enables experimentation and innovation in content routing while maintaining interoperability and modularity.
More about delegated routing
- IPFS DHT - A Distributed Hash Table (DHT) is a distributed key-value store where keys are cryptographic hashes. In IPFS, each IPFS peer is responsible for a subset of the IPFS DHT. More about DHT
- IPFS Dialing - Dialing is a function of the IPFS networking layer in libp2p, wherein a connection is opened to another IPFS peer. Together, an implementation of dialing and IPFS listening forms an IPFS transport.
- IPFS DNSAddr - DNSAddr is a protocol for publishing multiple Multiaddrs on DNS name. DNSAddr itself is a valid Multiaddr that looks like /dnsaddr/bootstrap.libp2p.io. Can be used for scaling, dynamic bootstrapping, or act as an additional IPFS content routing hint for DNSLink websites. More about DNSAddr
- IPFS DNSLink - DNSLink is a protocol to link content and services directly from DNS. A DNSLink address looks like an IPNS address, but it uses a domain name instead of a hashed public key, like /ipns/en.wikipedia-on-ipfs.org. More about DNSLink(opens new window)
- IPFS DWeb - The Decentralized Web (DWeb) looks like today's World Wide Web, but it is built with new underlying technologies that support Internet decentralization. It is much harder for any single entity (like a government or terrorist group) to take down any single webpage, website, or service, either by accident or on purpose.
F
- IPFS and Files - https://www.youtube.com/watch?v=Z5zNPwMDYGg - How IPFS Deals With Files - IPFS Camp Workshop - This course from IPFS Camp 2019 is a deep exploration of the reasons behind IPFS immutable data, how we address immutable data, the data structures IPFS creates, and the different ways of interacting with files in IPFS. https://github.com/ipfs/camp/tree/master/CORE_AND_ELECTIVE_COURSES/CORE_COURSE_A
- IPFS Filestore - An experimental data store used when –nocopy is passed to ipfs add. It stores the UnixFS data components of blocks as files on the file system instead of as blocks. This allows adding content to IPFS without duplicating the content in the IPFS datastore. More about Filestore experiment(opens new window)
G
- IPFS Gateway - An IPFS Gateway acts as a bridge between traditional web browsers and IPFS. Through the gateway, users can browse files and websites stored in IPFS as if they were stored on a traditional web server. More about Gateway (https://docs.ipfs.tech/concepts/ipfs-gateway) and addressing IPFS on the web (https://docs.ipfs.tech/how-to/address-ipfs-on-web) - https://docs.ipfs.tech/concepts/ipfs-gateway/#public-gateways
- IPFS Garbage Collection - Garbage Collection (GC) is the process within each IPFS node of clearing out IPFS cached files and IPFS blocks. IPFS Nodes need to clear out previously cached resources to make room for new IPFS resources. IPFS Pinned resources are never deleted.
- IPFS GO-IPFS - Old name of IPFS Kubo.
- IPFS Graph - In computer science, a Graph is an abstract data type from the field of graph theory within mathematics. The Merkle-DAG used in IPFS is a specialized graph.
- IPFS Graphsync - Graphsync is an alternative IPFS content replication protocol under discussion, similar to IPFS Bitswap. Like Bitswap, the primary job is to synchronize IPFS data blocks across IPFS peers. More about Graphsync
H
- IPFS HAMT-sharding - The IPFS sharding technique used for sharding big UnixFS directories. It leverages properties of hash array mapped tries (HAMT). More about HAMT
- IPFS Hash - A Cryptographic Hash is a function that takes some arbitrary input (content) and returns a fixed-length value. The exact same input data will always generate the same hash as output. There are numerous hash algorithms. More about Hash
- IPFS Helia - A lean, modular, and modern implementation of IPFS JS (IPFS JavaScript) and IPFS browser environments that supersedes js-ipfs. Learn more at https://github.com/ipfs/helia
- IPFS Hole punching - A technique for NAT or firewall traversal that relies on coordinated simultaneous connections. Used when port forwarding is not possible. See IPFS DCUtR
I
- IPFS Information Space - Information Space is the set of IPFS concepts, and relations among them, held by an information system. This can be thought of as a conceptual framework or tool for studying how knowledge and information are codified, abstracted, and diffused through a social system. More about Information Space
- IPFS IPLD - The InterPlanetary Linked Data (IPLD) model is a set of IPFS specifications in support of decentralized data structures for the content-addressable web. Key features are interoperable IPFS protocols, easily IPFS upgradeable, IPFS backward compatible. A single IPFS namespace for all IPFS hash-based protocols. More about IPLD
- IPFS IPNS - The InterPlanetary Name System (IPNS) is a system for creating and updating IPFS mutable links to IPFS content. IPNS allows for IPFS publishing the latest version of any IPFS content, even though the underlying IPFS hash has changed. More about IPNS:
J
- JS-IPFS - An IPFS JavaScript implementation of IPFS written entirely in JavaScript (opens new window). It runs in a IPFS browser, a IPFS service worker, IPFS Electron and IPFS Node.js. Deprecated and superseded by IPFS Helia.
- IPFS JSON - JavaScript Object Notation (JSON) is a lightweight data-interchange format. JSON is a text format that is completely language independent, human-readable, and easy to parse and generate. More about JSON:
K
- IPFS Kubo - AKA go-ipfs. The earliest and most widely used implementation of IPFS, written in Go. It runs on IPFS servers and user machines with full IPFS capabilities. See IPFS Nodes > Kubo.
L
- IPFS LAN - Local Area Network (LAN) is a type of (usually private) computer network that covers a limited area. More about LAN:
- IPFS Leaf - A Leaf is a node of a graph that doesn't link to any other node. This is opposed to a root.
- IPFS libp2p - The libp2p project is a modular system of IPFS protocols, IPFS specifications, and IPFS libraries that enable the development of IPFS peer-to-peer network applications. It is an essential component of IPFS. More about libp2p:
- IPFS Listening - Listening is a function of the IPFS networking layer in libp2p, wherein an incoming IPFS connection is accepted from another IPFS peer. Together, an implementation of IPFS dialing and IPFS listening forms a IPDS transport.
M
- IPFS Merkle-DAG - The Merkle-DAG is a computer science data structure used at the core of IPFS files/block storage. Merkle-DAGs create a hash to their content, known as a IPFS Content Identifier. More about Merkle-DAG
- IPFS Merkle Forest - Merkle Forest is a phrase coined to describe the distributed, authenticated, hash-linked data structures (Merkle trees) running technologies like Bitcoin, Ethereum, git, and BitTorrent. In this way, IPFS is a forest of linked Merkle trees. More about Merkle Forest:
- IPFS Merkle Tree - A Merkle Tree is a specific type of hash tree used in cryptography and computer science, allowing efficient and secure verification of the contents of large data structures. Named after Ralph Merkle, who patented it in 1979. More about Merkle Tree(opens new window)
- IPFS MFS - The Mutable File System (MFS) is a tool built into IPFS that lets you treat files like a normal name-based filesystem. You may add, edit, and remove MFS files while all link updates and hashes are taken care of for you. More about MFS
- IPFS Multiaddr - Multiaddr is a way to create self-describing, composable and future-proof network addresses. In libp2p, it is used in peer addressing. More about Multiaddr(opens new window)
- IPFS Multibase - Multibase is a protocol for disambiguating the encoding of base-encoded (e.g. base32, base36, base64, base58, etc.) binary appearing in text. In IPFS, it is used as a prefix specifying the encoding used for the remainder of the CID. More about Multibase(opens new window)
- IPFS Multicodec - Multicodec is an identifier indicating the format of the target content. It helps people and software know how to interpret that content after it has been fetched. In IPFS, it is backed by an agreed-upon codec table. Multicodecs are designed for use in binary representations, such as keys or identifiers (i.e. CIDv1). More about Multicodec(opens new window)
- IPFS Multihash - Multihash is a protocol for differentiating outputs from various well-established hash functions, addressing size and encoding considerations. It is useful to write applications that future-proof their use of hashes, and it allows multiple hash functions to coexist. More about Multihash (opens new window).
- IPFS Multiformats - The Multiformats project is a collection of protocols that aim to future-proof systems today. A key element is enhancing format values with self-description. This allows for interoperability, protocol agility, and promotes extensibility. More about Multiformats (opens new window)and Multihash(opens new window)
N
- IPFS NAT - Network Address Translation (NAT) enables communication between two networks by mapping IP addresses from one to another. Many consumer routers provide NAT service to allow multiple devices in local network (LAN) to access the internet (WAN) through a single public IP address. More about NAT(opens new window)
- IPFS Node - In IPFS, a node or peer is the IPFS program that you run on your local computer to store files and then connect to the IPFS network. See Nodes.
- IPFS Node (in graphs) - In an IPLD graph context, a node is a point that may be linked to by other nodes using edges or links.
For example, in a family tree each person is a node, while each branch connecting one person to another is an edge.
P
- IPFS Path/Address - A Path/Address is the method within IPFS of referencing content on the web. Addresses for content are path-like; they are components separated by slashes. More about Path/Address
- IPFS Peer - In system architecture, a Peer is an equal player in the peer-to-peer model of decentralization, as opposed to the client-server model of centralization. See also Peer as Node
- IPFS Peer routing - Peer routing is the process of discovering the network route or address for a network peer using various methods. The primary peer routing mechanism in IPFS is a distributed hash table that uses the Kademlia routing algorithm to efficiently locate peers. However, other methods, like local discovery, are also used. Learn more in the libp2p documentation (opens new window).
- IPFS Peer ID - A Peer ID is how each unique IPFS node is identified on the network. The Peer ID is created when the IPFS node is initialized and is essentially a cryptographic hash of the node's public key. More about Peer ID
- IPFS Pinning - Pinning is the method of telling an IPFS node that particular data is important and so it will never be removed from that IPFS node's cache. To learn more, start by understanding IPFS persistence (https://docs.ipfs.tech/concepts/persistence), IPFS permanence (https://docs.ipfs.tech/concepts/persistence), and IPFS pinning (https://docs.ipfs.tech/concepts/persistence); then, see how to add IPFS local pin (https://docs.ipfs.tech/how-to/pin-files) and read what IPFS remote pins (https://docs.ipfs.tech/concepts/glossary/#remote-pinning) are. https://docs.ipfs.io/how-to/work-with-pinning-services
- IPFS Pinning Service API - A vendor-agnostic API specification (https://ipfs.github.io/pinning-services-api-spec) that anyone can implement to provide an IPFS service for IPFS remote pinning. https://docs.ipfs.io/how-to/work-with-pinning-services. https://docs.filebase.com/api-documentation/ipfs-pinning-service-api
- IPFS Preload node - Part of the process of making a UnixFS DAG IPFS publicly available via the preload node's IPFS wantlist, causing it to fetch data. Other nodes requesting the content can then resolve it from the preload node using Bitswap, as the data is now present in the preload node’s IPFS blockstore. See IPFS Nodes > IPFS Preload.
- IPFS Protobuf - Protocol Buffers (Protobuf) is a free and open-source cross-platform data format used to serialize structured data. IPFS uses it in DAG-PB. More about Protocol Buffers:
- IPFS Pubsub - Publish-subscribe (Pubsub) is an experimental feature in IPFS. Publishers send messages classified by topic or content, and subscribers receive only the messages they are interested in. More about Pubsub(opens new window)
R
- IPFS Relay node - A means to establish connectivity between libp2p nodes (e.g., IPFS nodes) that wouldn't otherwise be able to establish a direct connection to each other. This may be due to nodes that are behind NAT (Network Address Translation), reverse proxies, firewalls, etc. See Nodes > Relay
- IPFS Remote Pinning - A variant of pinning that uses a IPFS third-party service to ensure that data persists on IPFS, even when your IPFS local node goes IPFS offline or your local copy of data is deleted during IPFS garbage collection. More about working with IPFS remote pinning services.
- IPFS Repo - The Repository (Repo) is a directory where IPFS stores all its settings and internal data. It is created with the ipfs init command. More about Repo
- IPFS Root - A root is a node in a graph that links to at least one other node. In an IPLD graph, roots are used to aggregate multiple chunks of a file together.
If you have a 600 KiB file A, it can be split into 3 chunks B, C, and D since the default block size of IPFS is 256 KiB. The node A that links to each of these three chunks is the root. The CID of this root is what IPFS shows you as the CID of the file.
A |
B C D
S
- IPFS Schemas - In IPFS, IPLD Schemas are a system for describing data with structural types. More about IPLD Schemas
- IPFS Selectors - IPLD selectors are a form of graph query over IPLD data. They can also be thought of as a way to specify a IPFS traversal. More about IPLD Selectors
- IPFS SFS - A Self-certifying File System (SFS) is a distributed file system that doesn't require special permissions for data exchange. It is self-certifying because data served to a client is authenticated by the file name (which is signed by the server). More about SFS
- IPFS Sharding - An introduction of horizontal partition of data in a database or a data structure. The main purpose is to spread load and improve performance. An example of sharding in IPFS]] is HAMT-sharding of big UnixFS directories.
- IPFS Signing (Cryptographic) - The signing of data cryptographically allows for trusting of data from untrusted sources. Cryptographically signed values can be passed through an untrusted channel, and any tampering of the data can be detected. More about IPDS Digital signature
- IPFS Swarm - Swarm is a term for the network of IPFS peers with which your IPFS local node has IPFS connections. IPFS Swarm addresses are IPFS addresses that your local node will listen on for connections from other IPFS peers.
- IPFS Switch - In libp2p, a switch is a component responsible for composing multiple transports into a single interface, allowing application code to dial peers without having to specify which transport to use.
Switches also coordinate the connection upgrade process, which promotes a raw connection from the transport layer into one that supports protocol negotiation (opens new window), stream multiplexing, and secure communications.
Sometimes called IPFS swarm for historical reasons.
T
- IPFS Transport - In libp2p, transport refers to the technology that lets us move data from one machine to another. This may be a TCP network, a WebSocket connection in a browser, or anything else capable of implementing the transport interface.
- IPFS Traversal - In IPLD, the act of walking across the IPFS Data Model. More in IPLD glossary(opens new window)
U
The Unix File System (UnixFS) is the data format used to represent files and all their links and metadata in IPFS. It is loosely based on how files work in Unix. Adding a file to IPFS creates a block, or a tree of blocks, in the UnixFS format and protects it from being garbage-collected. More about UnixFS
- IPFS Urlstore - An experimental data store similar to IPFS filestore, but it retrieves blocks contents via a HTTP URL instead of a local filesystem. More about urlstore experiment(opens new window)
W
- IPFS WAN - Wide Area Network (WAN) is a type of (usually public) computer network that spans over a large geographic area. More about WAN(opens new window)
InterPlanetary File System (IPFS): IPFS Glossary, Centralization in IPFS, Bitcoin Scam, Web3, NFT, NFTs and Bitcoin are about Money Laundering (http://MilesWMathis.com/nft.pdf), dWeb - Distributed Web, (navbar_ipfs - see also navbar_web3, navbar_bitcoin)
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.