CINXE.COM
Glossary | IPFS Docs
<!doctype html><html lang="en-US"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Glossary | IPFS Docs</title> <meta name="generator" content="VuePress 1.9.10"> <link rel="apple-touch-icon" sizes="180x180" href="../../apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="../../favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="../../favicon-16x16.png"> <link rel="manifest" href="../../manifest.json"> <link rel="mask-icon" href="../../safari-pinned-tab.svg" color="#3a0839"> <link rel="shortcut icon" href="../../favicon.ico"> <script defer data-domain="docs.ipfs.tech" src="https://plausible.io/js/plausible.js"></script><link rel="canonical" href="https://docs.ipfs.tech/concepts/glossary/"> <meta name="description" content="A glossary guide to key terminology for IPFS, the InterPlanetary File System."> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="msapplication-TileColor" content="#3a0839"> <meta name="msapplication-config" content="/browserconfig.xml"> <meta name="theme-color" content="#5bbad5"> <link rel="preload" href="../../assets/css/0.styles.bf49ba33.css" as="style"><link rel="preload" href="../../assets/js/app.b06de3e2.js" as="script"><link rel="preload" href="../../assets/js/2.4d957bfb.js" as="script"><link rel="preload" href="../../assets/js/1.e5bd4a62.js" as="script"><link rel="preload" href="../../assets/js/69.5ffca16a.js" as="script"><link rel="prefetch" href="../../assets/js/10.36ecc450.js"><link rel="prefetch" href="../../assets/js/100.0d1da93e.js"><link rel="prefetch" href="../../assets/js/101.b0ed3bf3.js"><link rel="prefetch" href="../../assets/js/102.f9fe1ba4.js"><link rel="prefetch" href="../../assets/js/103.d6fc04b7.js"><link rel="prefetch" href="../../assets/js/104.5bc184ef.js"><link rel="prefetch" href="../../assets/js/105.7d285bed.js"><link rel="prefetch" href="../../assets/js/106.685ca816.js"><link rel="prefetch" href="../../assets/js/107.2e292195.js"><link rel="prefetch" href="../../assets/js/108.cfddfa29.js"><link rel="prefetch" href="../../assets/js/109.d7d24af5.js"><link rel="prefetch" href="../../assets/js/110.d653d2ec.js"><link rel="prefetch" href="../../assets/js/111.5bb74439.js"><link rel="prefetch" href="../../assets/js/112.91be27e8.js"><link rel="prefetch" href="../../assets/js/113.92a4e124.js"><link rel="prefetch" href="../../assets/js/114.72336e0b.js"><link rel="prefetch" href="../../assets/js/115.0219bd2f.js"><link rel="prefetch" href="../../assets/js/116.03f3f039.js"><link rel="prefetch" href="../../assets/js/117.5056dd6d.js"><link rel="prefetch" href="../../assets/js/118.c67b9619.js"><link rel="prefetch" href="../../assets/js/119.9c8cde57.js"><link rel="prefetch" href="../../assets/js/120.94b0464a.js"><link rel="prefetch" href="../../assets/js/121.7856de78.js"><link rel="prefetch" href="../../assets/js/122.65dbb254.js"><link rel="prefetch" href="../../assets/js/123.6112d47d.js"><link rel="prefetch" href="../../assets/js/124.d34e15dd.js"><link rel="prefetch" href="../../assets/js/125.8801a547.js"><link rel="prefetch" href="../../assets/js/126.50afb82d.js"><link rel="prefetch" href="../../assets/js/127.959a986e.js"><link rel="prefetch" href="../../assets/js/128.80db4419.js"><link rel="prefetch" href="../../assets/js/129.f920ef4e.js"><link rel="prefetch" href="../../assets/js/13.0bc1cd71.js"><link rel="prefetch" href="../../assets/js/130.c231cbfe.js"><link rel="prefetch" href="../../assets/js/131.1450e005.js"><link rel="prefetch" href="../../assets/js/132.35177409.js"><link rel="prefetch" href="../../assets/js/133.dd63beaf.js"><link rel="prefetch" href="../../assets/js/134.165c1dc7.js"><link rel="prefetch" href="../../assets/js/135.352bab06.js"><link rel="prefetch" href="../../assets/js/136.bbdf689f.js"><link rel="prefetch" href="../../assets/js/137.7a8852ed.js"><link rel="prefetch" href="../../assets/js/14.c7cbb382.js"><link rel="prefetch" href="../../assets/js/15.55139b89.js"><link rel="prefetch" href="../../assets/js/16.695bd630.js"><link rel="prefetch" href="../../assets/js/17.3b565b72.js"><link rel="prefetch" href="../../assets/js/18.1c6047e9.js"><link rel="prefetch" href="../../assets/js/19.73e0c29f.js"><link rel="prefetch" href="../../assets/js/20.0236f27b.js"><link rel="prefetch" href="../../assets/js/21.8175f376.js"><link rel="prefetch" href="../../assets/js/22.5895c40a.js"><link rel="prefetch" href="../../assets/js/23.b941d2e9.js"><link rel="prefetch" href="../../assets/js/24.0375b4c4.js"><link rel="prefetch" href="../../assets/js/25.05cde63b.js"><link rel="prefetch" href="../../assets/js/26.489f6ddf.js"><link rel="prefetch" href="../../assets/js/27.0f561f49.js"><link rel="prefetch" href="../../assets/js/28.7b582c33.js"><link rel="prefetch" href="../../assets/js/29.0cd0f0e1.js"><link rel="prefetch" href="../../assets/js/3.d4fbab88.js"><link rel="prefetch" href="../../assets/js/30.96148d32.js"><link rel="prefetch" href="../../assets/js/31.30f2a16d.js"><link rel="prefetch" href="../../assets/js/32.b6a7bac9.js"><link rel="prefetch" href="../../assets/js/33.8fbdd44a.js"><link rel="prefetch" href="../../assets/js/34.29e175d5.js"><link rel="prefetch" href="../../assets/js/35.f911631c.js"><link rel="prefetch" href="../../assets/js/36.58457e61.js"><link rel="prefetch" href="../../assets/js/37.acc13ae7.js"><link rel="prefetch" href="../../assets/js/38.fea5e9c0.js"><link rel="prefetch" href="../../assets/js/39.f716febf.js"><link rel="prefetch" href="../../assets/js/4.534c1876.js"><link rel="prefetch" href="../../assets/js/40.311063cb.js"><link rel="prefetch" href="../../assets/js/41.63836588.js"><link rel="prefetch" href="../../assets/js/42.5439bf9d.js"><link rel="prefetch" href="../../assets/js/43.b4830b1d.js"><link rel="prefetch" href="../../assets/js/44.0857a0d8.js"><link rel="prefetch" href="../../assets/js/45.dc5d5e19.js"><link rel="prefetch" href="../../assets/js/46.1baf1cdf.js"><link rel="prefetch" href="../../assets/js/47.f70f9ebf.js"><link rel="prefetch" href="../../assets/js/48.7a760128.js"><link rel="prefetch" href="../../assets/js/49.7c941e1a.js"><link rel="prefetch" href="../../assets/js/5.3a9152c4.js"><link rel="prefetch" href="../../assets/js/50.bce5c239.js"><link rel="prefetch" href="../../assets/js/51.cf2b6662.js"><link rel="prefetch" href="../../assets/js/52.ff946eed.js"><link rel="prefetch" href="../../assets/js/53.3b827e2c.js"><link rel="prefetch" href="../../assets/js/54.b4065b95.js"><link rel="prefetch" href="../../assets/js/55.a95d9aa6.js"><link rel="prefetch" href="../../assets/js/56.f73731e0.js"><link rel="prefetch" href="../../assets/js/57.66ce775d.js"><link rel="prefetch" href="../../assets/js/58.c970f341.js"><link rel="prefetch" href="../../assets/js/59.e2d76c4e.js"><link rel="prefetch" href="../../assets/js/6.af8ab9f3.js"><link rel="prefetch" href="../../assets/js/60.055f17c8.js"><link rel="prefetch" href="../../assets/js/61.1745576b.js"><link rel="prefetch" href="../../assets/js/62.1b998b1c.js"><link rel="prefetch" href="../../assets/js/63.a5a142b4.js"><link rel="prefetch" href="../../assets/js/64.b64d5e75.js"><link rel="prefetch" href="../../assets/js/65.e55f2d17.js"><link rel="prefetch" href="../../assets/js/66.2b933661.js"><link rel="prefetch" href="../../assets/js/67.b4473f7b.js"><link rel="prefetch" href="../../assets/js/68.3eb1d121.js"><link rel="prefetch" href="../../assets/js/7.56ce43bc.js"><link rel="prefetch" href="../../assets/js/70.80ee8502.js"><link rel="prefetch" href="../../assets/js/71.293690cb.js"><link rel="prefetch" href="../../assets/js/72.219abc33.js"><link rel="prefetch" href="../../assets/js/73.cc6e499e.js"><link rel="prefetch" href="../../assets/js/74.11dddef5.js"><link rel="prefetch" href="../../assets/js/75.9f41d24c.js"><link rel="prefetch" href="../../assets/js/76.a1726c2b.js"><link rel="prefetch" href="../../assets/js/77.67b2ecd1.js"><link rel="prefetch" href="../../assets/js/78.b6f5ef76.js"><link rel="prefetch" href="../../assets/js/79.5db7346f.js"><link rel="prefetch" href="../../assets/js/8.ae30cd98.js"><link rel="prefetch" href="../../assets/js/80.f6b95820.js"><link rel="prefetch" href="../../assets/js/81.f891f703.js"><link rel="prefetch" href="../../assets/js/82.a5190de7.js"><link rel="prefetch" href="../../assets/js/83.670ce005.js"><link rel="prefetch" href="../../assets/js/84.c8f9efe7.js"><link rel="prefetch" href="../../assets/js/85.874b0161.js"><link rel="prefetch" href="../../assets/js/86.b4dc7081.js"><link rel="prefetch" href="../../assets/js/87.f7ecf143.js"><link rel="prefetch" href="../../assets/js/88.232e42ef.js"><link rel="prefetch" href="../../assets/js/89.b2c2216d.js"><link rel="prefetch" href="../../assets/js/9.5e62c730.js"><link rel="prefetch" href="../../assets/js/90.2d407766.js"><link rel="prefetch" href="../../assets/js/91.6de24532.js"><link rel="prefetch" href="../../assets/js/92.7ca0849f.js"><link rel="prefetch" href="../../assets/js/93.49ba4fae.js"><link rel="prefetch" href="../../assets/js/94.8de93d6b.js"><link rel="prefetch" href="../../assets/js/95.f123ff56.js"><link rel="prefetch" href="../../assets/js/96.c17695c0.js"><link rel="prefetch" href="../../assets/js/97.520d805e.js"><link rel="prefetch" href="../../assets/js/98.6ef4aa3e.js"><link rel="prefetch" href="../../assets/js/99.f7e396cb.js"><link rel="prefetch" href="../../assets/js/vendors~docsearch.344a1317.js"> <link rel="stylesheet" href="../../assets/css/0.styles.bf49ba33.css"> </head> <body> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="../../images/ipfs-logo.svg" alt="IPFS Docs" class="logo"> <span class="site-name can-hide">IPFS Docs</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="../../install/" class="nav-link"> Get Started </a></div><div class="nav-item"><a href="../../concepts/" class="nav-link router-link-active"> Concepts </a></div><div class="nav-item"><a href="../../how-to/" class="nav-link"> Guides </a></div><div class="nav-item"><a href="../../reference/" class="nav-link"> Reference </a></div><div class="nav-item"><a href="../../project/" class="nav-link"> Project </a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Case Studies" class="dropdown-title"><span class="title">Case Studies</span> <span class="arrow down"></span></button> <button type="button" aria-label="Case Studies" class="mobile-dropdown-title"><span class="title">Case Studies</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="../../case-studies/arbol/" class="nav-link"> Arbol </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/audius.html" class="nav-link"> Audius </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/fleek.html" class="nav-link"> Fleek </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/likecoin.html" class="nav-link"> LikeCoin </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/morpheus.html" class="nav-link"> Morpheus.Network </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/snapshot.html" class="nav-link"> Snapshot </a></li></ul></div></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="../../install/" class="nav-link"> Get Started </a></div><div class="nav-item"><a href="../../concepts/" class="nav-link router-link-active"> Concepts </a></div><div class="nav-item"><a href="../../how-to/" class="nav-link"> Guides </a></div><div class="nav-item"><a href="../../reference/" class="nav-link"> Reference </a></div><div class="nav-item"><a href="../../project/" class="nav-link"> Project </a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Case Studies" class="dropdown-title"><span class="title">Case Studies</span> <span class="arrow down"></span></button> <button type="button" aria-label="Case Studies" class="mobile-dropdown-title"><span class="title">Case Studies</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="../../case-studies/arbol/" class="nav-link"> Arbol </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/audius.html" class="nav-link"> Audius </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/fleek.html" class="nav-link"> Fleek </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/likecoin.html" class="nav-link"> LikeCoin </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/morpheus.html" class="nav-link"> Morpheus.Network </a></li><li class="dropdown-item"><!----> <a href="../../case-studies/snapshot.html" class="nav-link"> Snapshot </a></li></ul></div></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>Basics</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="../../concepts/what-is-ipfs/" class="sidebar-link">What is IPFS?</a></li><li><a href="../../concepts/ipfs-solves/" class="sidebar-link">IPFS and the problems it solves</a></li><li><a href="../../concepts/how-ipfs-works/" class="sidebar-link">How IPFS works</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Ideas and theory</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Subsystems and components</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Implementations</span> <span class="arrow right"></span></p> <!----></section></li><li><a href="../../concepts/cod/" class="sidebar-link">Compute-over-Data (CoD)</a></li><li><a href="../../concepts/comparisons/" class="sidebar-link">IPFS comparisons</a></li><li><a href="../../concepts/public-utilities/" class="sidebar-link">Public IPFS Utilities</a></li><li><a href="../../concepts/measuring/" class="sidebar-link">Measuring the network</a></li><li><a href="../../concepts/faq/" class="sidebar-link">FAQ</a></li><li><a href="../../concepts/glossary/" aria-current="page" class="active sidebar-link">Glossary</a></li><li><a href="../../concepts/further-reading/academic-papers/" class="sidebar-link">Academic Papers</a></li></ul> </aside> <main class="page" data-v-b274761c=""> <div class="theme-default-content content__default" data-v-b274761c=""><h1 id="ipfs-glossary"><a href="#ipfs-glossary" class="header-anchor">#</a> IPFS glossary</h1> <p><a href="#a">A</a> <a href="#b">B</a> <a href="#c">C</a> <a href="#d">D</a> <a href="#e">E</a> <a href="#f">F</a> <a href="#g">G</a> <a href="#h">H</a> <a href="#i">I</a> <a href="#j">J</a> <a href="#k">K</a> <a href="#l">L</a> <a href="#m">M</a> <a href="#n">N</a> <a href="#o">O</a> <a href="#p">P</a> <a href="#q">Q</a> <a href="#r">R</a> <a href="#s">S</a> <a href="#t">T</a> <a href="#u">U</a> <a href="#v">V</a> <a href="#w">W</a> <a href="#x">X</a> <a href="#y">Y</a> <a href="#z">Z</a></p> <h2 id="a"><a href="#a" class="header-anchor">#</a> A</h2> <h3 id="acl"><a href="#acl" class="header-anchor">#</a> ACL</h3> <p>In computer security, an access-control list (ACL) is a list of permissions associated with a system resource, also known as an <em>object</em>. An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects. <a href="https://en.wikipedia.org/wiki/Access-control_list" target="_blank" rel="noopener noreferrer">More about ACL<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="adl"><a href="#adl" class="header-anchor">#</a> ADL</h3> <p>ADL is short for <em>Advanced Data Layout</em>, a concept in <a href="#ipld">IPLD</a>. See <a href="https://ipld.io/glossary/#adl" target="_blank" rel="noopener noreferrer">IPLD docs<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="amino"><a href="#amino" class="header-anchor">#</a> Amino</h3> <p>Formerly referred to as the "public DHT", Amino is the public Kademlia-based <a href="#dht">DHT</a> that <a href="#kubo">Kubo</a> and other implementations default to bootstrapping into with the <a href="#libp2p">libp2p</a> protocol <code>/ipfs/kad/1.0.0</code>. See the <a href="https://blog.ipfs.tech/2023-09-amino-refactoring/" target="_blank" rel="noopener noreferrer">blog post<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> for more info.</p> <h3 id="announcing"><a href="#announcing" class="header-anchor">#</a> Announcing</h3> <p>Announcing is a function of the IPFS networking layer in <a href="#libp2p">libp2p</a>, wherein a peer can tell other peers that it has data blocks available.</p> <h3 id="autonat"><a href="#autonat" class="header-anchor">#</a> AutoNAT</h3> <p>The <a href="#libp2p">libp2p</a> protocol that allows a <a href="#peer">peer</a> to determine if it is located behind a <a href="#nat">Network address translator (NAT)</a>. <a href="https://github.com/libp2p/specs/blob/master/autonat/#readme" target="_blank" rel="noopener noreferrer">More about AutoNAT<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h2 id="b"><a href="#b" class="header-anchor">#</a> B</h2> <h3 id="base32"><a href="#base32" class="header-anchor">#</a> Base32</h3> <p>Case-insensitive <a href="#multibase">Multibase</a> encoding used for text representation of <a href="#cid-v1">CIDv1</a>.</p> <h3 id="base36"><a href="#base36" class="header-anchor">#</a> Base36</h3> <p>Case-insensitive <a href="#multibase">Multibase</a> used for text representation of <a href="#cid-v1">CIDv1</a>.</p> <h3 id="base58btc"><a href="#base58btc" class="header-anchor">#</a> Base58btc</h3> <p>Case-sensitive <a href="#multibase">Multibase</a> used for text representation <a href="#multihash">Multihashes</a> and <a href="#cid-v0">CIDv0</a>.</p> <h3 id="base64url"><a href="#base64url" class="header-anchor">#</a> Base64url</h3> <p>Case-sensitive <a href="#multibase">Multibase</a>, uses modified Base64 with URL and filename safe alphabet (<a href="https://datatracker.ietf.org/doc/html/rfc4648#section-5" target="_blank" rel="noopener noreferrer">RFC 4648<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>), where the <code>+</code> and <code>/</code> are respectively replaced by <code>-</code> and <code>_</code>.</p> <h3 id="bitswap"><a href="#bitswap" class="header-anchor">#</a> Bitswap</h3> <p>Bitswap is IPFS's central block exchange protocol. Its purpose is to request blocks from and send blocks to other peers in the network. <a href="../../concepts/bitswap/">More about Bitswap</a></p> <h3 id="bittorrent"><a href="#bittorrent" class="header-anchor">#</a> BitTorrent</h3> <p>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. <a href="https://en.wikipedia.org/wiki/BitTorrent" target="_blank" rel="noopener noreferrer">More about BitTorrent protocol<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> and <a href="https://www.bittorrent.com" target="_blank" rel="noopener noreferrer">BitTorrent app<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="blockchain"><a href="#blockchain" class="header-anchor">#</a> Blockchain</h3> <p>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). <a href="https://en.wikipedia.org/wiki/Blockchain" target="_blank" rel="noopener noreferrer">More about Blockchain<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="block"><a href="#block" class="header-anchor">#</a> Block</h3> <p>A Block is a binary blob of data identified by a <a href="#cid">CID</a>. It could be raw bytes of arbitrary data or a chunk of serialized binary data encoded with <a href="#ipld">IPLD</a> <a href="#codec">codec</a>.</p> <h3 id="bootstrap-node"><a href="#bootstrap-node" class="header-anchor">#</a> Bootstrap node</h3> <p>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 <a href="../../concepts/nodes/#bootstrap">Bootstrap</a></p> <h2 id="c"><a href="#c" class="header-anchor">#</a> C</h2> <h3 id="car"><a href="#car" class="header-anchor">#</a> CAR</h3> <p>The CAR (Content Addressable aRchives) is a format for serialized representation of any <a href="#ipld">IPLD</a> <a href="#dag">DAG</a>. The CAR format is a way of packaging up content-addressed data into archive files that can be easily stored and transferred. Typically in a file with a <code>.car</code> filename extension or a byte stream marked as <a href="https://www.iana.org/assignments/media-types/application/vnd.ipld.car" target="_blank" rel="noopener noreferrer">application/vnd.ipld.car<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> media type. <a href="https://ipld.io/specs/transport/car/" target="_blank" rel="noopener noreferrer">More about CAR<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="car-v1"><a href="#car-v1" class="header-anchor">#</a> CAR v1</h3> <p>Version 1 of the <a href="#car">CAR</a> format, a concatenation of DAG blocks, plus a header that describes the graphs in the file (via root CIDs). <a href="https://ipld.io/specs/transport/car/carv1/" target="_blank" rel="noopener noreferrer">More about CAR v1<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="car-v2"><a href="#car-v2" class="header-anchor">#</a> CAR v2</h3> <p>A minimal upgrade to the <a href="#car-v1">CAR v1</a> format with the primary aim of adding an optional index within the format for fast random-access to blocks. <a href="https://ipld.io/specs/transport/car/carv2/" target="_blank" rel="noopener noreferrer">More about CAR v2<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="cbor"><a href="#cbor" class="header-anchor">#</a> CBOR</h3> <p>The Concise Binary Object Representation (CBOR) is a data format based on <a href="#json">JSON</a>, featuring small code and message size, and extensibility. Used within <a href="#ipld">IPLD</a>. <a href="http://cbor.io/" target="_blank" rel="noopener noreferrer">More about CBOR<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="cid"><a href="#cid" class="header-anchor">#</a> CID</h3> <p>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 <a href="#ipld">IPLD</a>. <a href="../../concepts/content-addressing/">More about CID</a></p> <h3 id="cid-v0"><a href="#cid-v0" class="header-anchor">#</a> CID v0</h3> <p>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. <a href="../../concepts/content-addressing/#version-0-v0">More about CID v0</a></p> <h3 id="cid-v1"><a href="#cid-v1" class="header-anchor">#</a> CID v1</h3> <p>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. <a href="../../concepts/content-addressing/#version-1-v1">More about CID v1</a></p> <h3 id="circuit-relay"><a href="#circuit-relay" class="header-anchor">#</a> Circuit relay</h3> <p>A <a href="#libp2p">libp2p</a> term for transport protocol that routes traffic between two peers over a third-party <a href="#relay-node"><em>relay</em> peer</a>. <a href="https://docs.libp2p.io/concepts/circuit-relay/" target="_blank" rel="noopener noreferrer">More about Circuit Relay<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="circuit-relay-v1"><a href="#circuit-relay-v1" class="header-anchor">#</a> Circuit relay v1</h3> <p>Unlimited relay that requires some external ACL to control resource usage. <a href="https://github.com/libp2p/specs/blob/master/relay/circuit-v1.md" target="_blank" rel="noopener noreferrer">See specification<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="circuit-relay-v2"><a href="#circuit-relay-v2" class="header-anchor">#</a> Circuit relay v2</h3> <p>Truly decentralized relay implementation that provides a limited relay for things like <a href="#hole-punching">hole punching</a>. Support for this type of relay was introduced in Kubo 0.11. <a href="https://github.com/libp2p/specs/blob/master/relay/circuit-v2.md" target="_blank" rel="noopener noreferrer">See specification<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="codec"><a href="#codec" class="header-anchor">#</a> Codec</h3> <p>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 <a href="#multicodec">Multicodec</a>.</p> <h3 id="content-addressing"><a href="#content-addressing" class="header-anchor">#</a> Content addressing</h3> <p>A way to store information so a device can retrieve the data based on its content, not its location. <a href="../../concepts/how-ipfs-works/#content-addressing">Learn how IPFS uses content addressing</a>.</p> <h3 id="crdt"><a href="#crdt" class="header-anchor">#</a> CRDT</h3> <p>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). <a href="https://github.com/ipfs/research-CRDT" target="_blank" rel="noopener noreferrer">More about CRDT<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="d"><a href="#d" class="header-anchor">#</a> D</h2> <h3 id="daemon"><a href="#daemon" class="header-anchor">#</a> Daemon</h3> <p>A Daemon is a computer program that typically runs in the background. The IPFS daemon is how you take your node online to the IPFS network. <a href="../../how-to/command-line-quick-start/#take-your-node-online">More about IPFS Daemon</a></p> <h3 id="dag"><a href="#dag" class="header-anchor">#</a> DAG</h3> <p>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. <a href="#ipld">IPLD</a> data in IPFS is naturally a DAG. <a href="https://en.wikipedia.org/wiki/Directed_acyclic_graph" target="_blank" rel="noopener noreferrer">More about DAG on Wikipedia<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="dag-json"><a href="#dag-json" class="header-anchor">#</a> DAG-JSON</h3> <p>DAG-JSON is a <a href="#codec">codec</a> that implements the <a href="https://ipld.io/glossary/#data-model" target="_blank" rel="noopener noreferrer">IPLD Data Model<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> 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. <a href="https://ipld.io/docs/codecs/known/dag-json/" target="_blank" rel="noopener noreferrer">More about DAG-JSON<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="dag-jose"><a href="#dag-jose" class="header-anchor">#</a> DAG-JOSE</h3> <p>DAG-JOSE is a <a href="#codec">codec</a> that defines CBOR serialization for JOSE, a standard for signing and encrypting objects. <a href="https://ipld.io/specs/codecs/dag-jose/spec/" target="_blank" rel="noopener noreferrer">More in DAG-JOSE specification<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="dag-cbor"><a href="#dag-cbor" class="header-anchor">#</a> DAG-CBOR</h3> <p>DAG-CBOR is a <a href="#codec">codec</a> that implements the <a href="https://ipld.io/glossary/#data-model" target="_blank" rel="noopener noreferrer">IPLD Data Model<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> 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. <a href="https://ipld.io/docs/codecs/known/dag-cbor/" target="_blank" rel="noopener noreferrer">More about DAG-CBOR<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="dag-pb"><a href="#dag-pb" class="header-anchor">#</a> DAG-PB</h2> <p>DAG-PB is a <a href="#codec">codec</a> that implements a very small subset of the <a href="https://ipld.io/glossary/#data-model" target="_blank" rel="noopener noreferrer">IPLD Data Model<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> in a particular set of <a href="#protobuf">Protobuf</a> messages used in IPFS for defining how <a href="#unixfs">UnixFS</a>v1 data is serialized. <a href="https://ipld.io/specs/codecs/dag-pb/spec/" target="_blank" rel="noopener noreferrer">More about DAG-PB<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="data-model"><a href="#data-model" class="header-anchor">#</a> Data model</h3> <p>Did you mean <a href="https://ipld.io/glossary/#data-model" target="_blank" rel="noopener noreferrer">IPLD Data Model<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>?</p> <h3 id="datastore"><a href="#datastore" class="header-anchor">#</a> DataStore</h3> <p>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. <a href="https://github.com/ipfs/kubo/blob/master/docs/config.md#datastore" target="_blank" rel="noopener noreferrer">More about Datastore<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="dcutr"><a href="#dcutr" class="header-anchor">#</a> DCUtR</h3> <p>Direct Connection Upgrade through Relay (DCUtR) protocol enables <a href="#hole-punching">hole punching</a> for NAT traversal when port forwarding is not possible. A peer will coordinate with the counterparty using a <a href="#circuit-relay-v2">relayed connection</a>, to upgrade to a direct connection through a NAT/firewall whenever possible. <a href="https://github.com/libp2p/specs/blob/master/relay/DCUtR.md" target="_blank" rel="noopener noreferrer">More about DCUtR<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="delegated-routing"><a href="#delegated-routing" class="header-anchor">#</a> Delegated routing</h3> <p>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 <a href="https://specs.ipfs.tech/routing/http-routing-v1/" target="_blank" rel="noopener noreferrer">Delegated Routing V1 HTTP API<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> with <a href="../../concepts/public-utilities/#delegated-routing">public utility instance at <code>delegated-ipfs.dev/routing/v1</code></a>.</p> <p>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.</p> <p><a href="../../concepts/nodes/#types">More about delegated routing</a></p> <h3 id="dht"><a href="#dht" class="header-anchor">#</a> DHT</h3> <p>A <em>Distributed Hash Table</em> (DHT) is a distributed key-value store where keys are cryptographic hashes. In IPFS, each peer is responsible for a subset of the IPFS DHT. <a href="../../concepts/dht/">More about DHT</a></p> <h3 id="dmt"><a href="#dmt" class="header-anchor">#</a> DMT</h3> <p>Short for <em>Data Model Tree</em>, a term coined by the IPLD team. <a href="https://ipld.io/glossary/#dmt" target="_blank" rel="noopener noreferrer">More about DMT in IPLD docs<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="dialing"><a href="#dialing" class="header-anchor">#</a> Dialing</h3> <p>Dialing is a function of the IPFS networking layer in <a href="#libp2p">libp2p</a>, wherein a connection is opened to another peer. Together, an implementation of dialing and <a href="#listening">listening</a> forms a <a href="#transport">transport</a>.</p> <h3 id="dnsaddr"><a href="#dnsaddr" class="header-anchor">#</a> DNSAddr</h3> <p>DNSAddr is a protocol for publishing multiple <a href="#multiaddr">Multiaddrs</a> on DNS name. DNSAddr itself is a valid Multiaddr that looks like <code>/dnsaddr/bootstrap.libp2p.io</code>. Can be used for scaling, dynamic bootstrapping, or act as an additional content routing hint for <a href="#dnslink">DNSLink</a> websites. <a href="https://github.com/multiformats/multiaddr/blob/master/protocols/DNSADDR.md" target="_blank" rel="noopener noreferrer">More about DNSAddr<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="dnslink"><a href="#dnslink" class="header-anchor">#</a> DNSLink</h3> <p>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 <code>/ipns/en.wikipedia-on-ipfs.org</code>. <a href="https://dnslink.dev/" target="_blank" rel="noopener noreferrer">More about DNSLink<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="dweb"><a href="#dweb" class="header-anchor">#</a> DWeb</h3> <p>The Decentralized Web (DWeb) looks like today's World Wide Web, but it is built with new underlying technologies that support 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.</p> <h2 id="e"><a href="#e" class="header-anchor">#</a> E</h2> <h2 id="f"><a href="#f" class="header-anchor">#</a> F</h2> <h3 id="filestore"><a href="#filestore" class="header-anchor">#</a> Filestore</h3> <p>An experimental data store in <a href="#kubo">Kubo</a>. Used when <code>--nocopy</code> is passed to <code>ipfs add</code>. It stores the <a href="#unixfs">UnixFS</a> 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. <a href="https://github.com/ipfs/kubo/blob/master/docs/experimental-features.md#ipfs-filestore" target="_blank" rel="noopener noreferrer">More about Filestore experiment<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="g"><a href="#g" class="header-anchor">#</a> G</h2> <h3 id="gateway"><a href="#gateway" class="header-anchor">#</a> Gateway</h3> <p>An IPFS Gateway is an HTTP server that acts as a bridge between web browsers and IPFS. Through a gateway, users can browse files and websites stored in IPFS as if they were stored on a HTTP web server. Most commonly, an IPFS Gateway is an IPFS node that also exposes an HTTP IPFS Gateway endpoint. See <a href="../../concepts/ipfs-gateway/">more about Gateway</a>, <a href="../../how-to/address-ipfs-on-web/">addressing IPFS on the web</a>, and <a href="https://specs.ipfs.tech/http-gateways/" target="_blank" rel="noopener noreferrer">HTTP Gateway specifications<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="garbage-collection"><a href="#garbage-collection" class="header-anchor">#</a> Garbage Collection</h3> <p>Garbage Collection (GC) is the process within each IPFS node of clearing out cached files and blocks. Nodes need to clear out previously cached resources to make room for new resources. <a href="#pinning">Pinned resources</a> are never deleted.</p> <h3 id="go-ipfs"><a href="#go-ipfs" class="header-anchor">#</a> GO-IPFS</h3> <p>Old name of <a href="#kubo">Kubo</a>.</p> <h3 id="graph"><a href="#graph" class="header-anchor">#</a> Graph</h3> <p>In computer science, a Graph is an abstract data type from the field of graph theory within mathematics. The <a href="#merkle-dag">Merkle-DAG</a> used in IPFS is a specialized graph.</p> <h3 id="graphsync"><a href="#graphsync" class="header-anchor">#</a> Graphsync</h3> <p>Graphsync is a legacy content replication protocol, similar to <a href="#bitswap">Bitswap</a>, but focusing on graphs rather than blocks. It is not supported by <a href="#kubo">Kubo</a> due to protocol complexity, and <a href="https://specs.ipfs.tech/ipips/ipip-0402/" target="_blank" rel="noopener noreferrer">IPIP-402<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> providing a simpler way of synchronizing partial <a href="#dag">DAGs</a>. <a href="https://github.com/ipld/specs/blob/master/block-layer/graphsync/graphsync.md" target="_blank" rel="noopener noreferrer">More about Graphsync<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="h"><a href="#h" class="header-anchor">#</a> H</h2> <h3 id="hamt-sharding"><a href="#hamt-sharding" class="header-anchor">#</a> HAMT-sharding</h3> <p>The sharding technique used for <a href="#sharding">sharding</a> big UnixFS directories. It leverages properties of hash array mapped tries (HAMT). <a href="https://en.wikipedia.org/wiki/Hash_array_mapped_trie" target="_blank" rel="noopener noreferrer">More about HAMT<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="hash"><a href="#hash" class="header-anchor">#</a> Hash</h3> <p>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. <a href="../../concepts/hashing/">More about Hash</a></p> <h3 id="helia"><a href="#helia" class="header-anchor">#</a> Helia</h3> <p>A lean, modular, and modern implementation of IPFS for the JS and browser environments that supersedes <a href="#js-ipfs">js-ipfs</a>. Learn more at <a href="https://github.com/ipfs/helia" target="_blank" rel="noopener noreferrer">https://github.com/ipfs/helia<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="hole-punching"><a href="#hole-punching" class="header-anchor">#</a> Hole punching</h3> <p>A technique for <a href="#nat">NAT</a> or firewall traversal that relies on coordinated simultaneous connections. Used when port forwarding is not possible. <a href="#dcutr">See DCUtR</a></p> <h2 id="i"><a href="#i" class="header-anchor">#</a> I</h2> <h3 id="information-space"><a href="#information-space" class="header-anchor">#</a> Information Space</h3> <p>Information Space is the set of 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. <a href="https://en.wikipedia.org/wiki/Information_space" target="_blank" rel="noopener noreferrer">More about Information Space<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="ipfs-desktop"><a href="#ipfs-desktop" class="header-anchor">#</a> IPFS Desktop</h3> <p>An unobtrusive and user-friendly desktop application for IPFS on Windows, macOS and Linux. Uses <a href="#kubo">Kubo</a> implementation as IPFS backend. See: <a href="../../install/ipfs-desktop/">Install the IPFS Desktop App</a>.</p> <h3 id="ipfs-mainnet"><a href="#ipfs-mainnet" class="header-anchor">#</a> IPFS Mainnet</h3> <p>See <a href="#mainnet">Mainnet</a>.</p> <h3 id="ipld"><a href="#ipld" class="header-anchor">#</a> IPLD</h3> <p>The InterPlanetary Linked Data (IPLD) model is a set of specifications in support of decentralized data structures for the content-addressable web. Key features are interoperable protocols, easily upgradeable, backward compatible. A single namespace for all hash-based protocols. <a href="https://ipld.io/" target="_blank" rel="noopener noreferrer">More about IPLD<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="ipni"><a href="#ipni" class="header-anchor">#</a> IPNI</h3> <p>The InterPlanetary Network Indexer (IPNI), also referred to as Network Indexer, indexer and IPNI, enables quick and efficient search of content-addressable data. IPNI is designed to improve the performance and efficiency of IPFS by providing an alternate method of content routing to the <a href="#amino">Amino</a> DHT. <a href="../../concepts/ipni/">More about IPNI</a></p> <h3 id="ipns"><a href="#ipns" class="header-anchor">#</a> IPNS</h3> <p>The InterPlanetary Name System (IPNS) is a system for creating and updating mutable links to IPFS content. IPNS allows for publishing the latest version of any IPFS content, even though the underlying IPFS hash has changed. <a href="../../concepts/ipns/">More about IPNS</a></p> <h2 id="j"><a href="#j" class="header-anchor">#</a> J</h2> <h3 id="js-ipfs"><a href="#js-ipfs" class="header-anchor">#</a> JS-IPFS</h3> <p>A legacy implementation of IPFS written entirely in JavaScript. The <a href="https://github.com/ipfs/js-ipfs?tab=readme-ov-file#%EF%B8%8F-deprecated-js-ipfs-has-been-superseded-by-helia" target="_blank" rel="noopener noreferrer">js-ipfs is deprecated<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> and superseded by <a href="#helia">Helia</a>.</p> <h3 id="json"><a href="#json" class="header-anchor">#</a> JSON</h3> <p>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. <a href="https://www.json.org/" target="_blank" rel="noopener noreferrer">More about JSON<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="k"><a href="#k" class="header-anchor">#</a> K</h2> <h3 id="kubo"><a href="#kubo" class="header-anchor">#</a> Kubo</h3> <p>Kubo (previously known as <a href="#go-ipfs">go-ipfs</a>) is the earliest and most widely used implementation of IPFS, written in Go. It runs on servers and user machines with full IPFS capabilities. <a href="../../install/command-line/">Install IPFS Kubo</a> or see <a href="https://github.com/ipfs/kubo#readme" target="_blank" rel="noopener noreferrer">Kubo README<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h2 id="l"><a href="#l" class="header-anchor">#</a> L</h2> <h3 id="lan"><a href="#lan" class="header-anchor">#</a> LAN</h3> <p>Local Area Network (LAN) is a type of (usually private) computer network that covers a limited area. <a href="https://en.wikipedia.org/wiki/Local_area_network" target="_blank" rel="noopener noreferrer">More about LAN<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="leaf"><a href="#leaf" class="header-anchor">#</a> Leaf</h3> <p>A Leaf is a node of a graph that doesn't link to any other node. This is opposed to a <a href="#root">root</a>.</p> <h3 id="libp2p"><a href="#libp2p" class="header-anchor">#</a> libp2p</h3> <p>The libp2p project is a modular system of protocols, specifications, and libraries that enable the development of peer-to-peer network applications. It is an essential component of IPFS. <a href="https://libp2p.io/" target="_blank" rel="noopener noreferrer">More about libp2p<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="listening"><a href="#listening" class="header-anchor">#</a> Listening</h3> <p>Listening is a function of the IPFS networking layer in libp2p, wherein an incoming connection is accepted from another peer. Together, an implementation of <a href="#dialing">dialing</a> and listening forms a <a href="#transport">transport</a>.</p> <h3 id="link"><a href="#link" class="header-anchor">#</a> Link</h3> <p>In IPFS and <a href="#ipld">IPLD</a>, a <em>link</em> usually means a pointer to some <a href="#cid">CID</a>.</p> <h2 id="m"><a href="#m" class="header-anchor">#</a> M</h2> <h3 id="mainnet"><a href="#mainnet" class="header-anchor">#</a> Mainnet</h3> <p>IPFS Mainnet is a term used to describe the default or "main" public network that most IPFS implementations connect to by default. Most <a href="https://specs.ipfs.tech/architecture/principles/#ipfs-implementation-requirements" target="_blank" rel="noopener noreferrer">IPFS implementations<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> were designed to work with Mainnet (but some can be configured instead to form a private swarm). Mainnet IPFS nodes typically join the <a href="#amino">Amino DHT</a> for content routing with the help of the <a href="#bootstrap-node">Bootstrap nodes</a>, rely on <a href="#bitswap">Bitswap</a> for data transfer, <a href="#unixfs">UnixFS</a> for encoding files and directories, and typically expose an <a href="#gateway">IPFS Gateway</a>. This has mostly been assumed for the IPFS network. Nonetheless, IPFS Mainnet is a useful distinction in a world of many <a href="../../concepts/implementations/">IPFS implementations</a> with varying degrees of interoperability.</p> <h3 id="merkle-dag"><a href="#merkle-dag" class="header-anchor">#</a> Merkle-DAG</h3> <p>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 <a href="#cid">Content Identifier</a>. <a href="../../concepts/merkle-dag/">More about Merkle-DAG</a></p> <h3 id="merkle-forest"><a href="#merkle-forest" class="header-anchor">#</a> Merkle Forest</h3> <p>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. <a href="https://www.youtube.com/watch?v=Bqs_LzBjQyk" target="_blank" rel="noopener noreferrer">More about Merkle Forest<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="merkle-tree"><a href="#merkle-tree" class="header-anchor">#</a> Merkle Tree</h3> <p>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. <a href="https://en.wikipedia.org/wiki/Merkle_tree" target="_blank" rel="noopener noreferrer">More about Merkle Tree<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="mfs"><a href="#mfs" class="header-anchor">#</a> MFS</h3> <p>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. <a href="../../concepts/file-systems/#mutable-file-system-mfs">More about MFS</a></p> <h3 id="multiaddr"><a href="#multiaddr" class="header-anchor">#</a> Multiaddr</h3> <p>Multiaddr is a way to create self-describing, composable and future-proof network addresses. In <a href="#libp2p">libp2p</a>, it is used in <a href="#peer">peer</a> addressing. To learn more read <a href="https://github.com/libp2p/specs/blob/master/addressing/README.md" target="_blank" rel="noopener noreferrer">Addressing in libp2p →<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> and <a href="https://github.com/multiformats/multiaddr" target="_blank" rel="noopener noreferrer">Multiaddr Specification →<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="multibase"><a href="#multibase" class="header-anchor">#</a> Multibase</h3> <p>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. <a href="https://github.com/multiformats/multibase#readme" target="_blank" rel="noopener noreferrer">More about Multibase<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="multicodec"><a href="#multicodec" class="header-anchor">#</a> Multicodec</h3> <p>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 <a href="#codec">codec</a> table. Multicodecs are designed for use in binary representations, such as keys or identifiers (i.e. <a href="#cid">CIDv1</a>). <a href="https://github.com/multiformats/multicodec#readme" target="_blank" rel="noopener noreferrer">More about Multicodec<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="multihash"><a href="#multihash" class="header-anchor">#</a> Multihash</h3> <p>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. <a href="https://github.com/multiformats/multihash" target="_blank" rel="noopener noreferrer">More about Multihash<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="multiformats"><a href="#multiformats" class="header-anchor">#</a> Multiformats</h3> <p>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. <a href="https://multiformats.io/" target="_blank" rel="noopener noreferrer">More about Multiformats<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> and <a href="https://github.com/multiformats/multihash" target="_blank" rel="noopener noreferrer">Multihash<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="multiplexer"><a href="#multiplexer" class="header-anchor">#</a> Multiplexer</h3> <p>Multiplexing allows for the creation of multiple “virtual” connections within a single <a href="#libp2p">libp2p</a> connection. <a href="https://docs.libp2p.io/concepts/multiplex/overview/" target="_blank" rel="noopener noreferrer">More about Stream Multiplexing in libp2p docs<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="mplex"><a href="#mplex" class="header-anchor">#</a> Mplex</h3> <p>mplex is a deprecated stream multiplexer that was designed in the early days of <a href="#libp2p">libp2p</a>. <a href="https://docs.libp2p.io/concepts/multiplex/mplex/" target="_blank" rel="noopener noreferrer">More about mplex<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="n"><a href="#n" class="header-anchor">#</a> N</h2> <h3 id="nat"><a href="#nat" class="header-anchor">#</a> NAT</h3> <p>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 (<a href="#lan">LAN</a>) to access the internet (<a href="#wan">WAN</a>) through a single public IP address. <a href="https://en.wikipedia.org/wiki/Network_address_translation" target="_blank" rel="noopener noreferrer">More about NAT<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="node"><a href="#node" class="header-anchor">#</a> Node</h3> <p>In IPFS, a node or <a href="#peer">peer</a> is the IPFS program that you run on your local computer to store files and then connect to the IPFS network. See <a href="../../concepts/nodes/#nodes">Nodes</a>.</p> <h3 id="node-in-graphs"><a href="#node-in-graphs" class="header-anchor">#</a> Node (in graphs)</h3> <p>In an IPLD <a href="#graph">graph</a> context, a node is a point that may be linked to by other nodes using edges or links.</p> <p>For example, in a family tree each person is a <em>node</em>, while each branch connecting one person to another is an <em>edge</em>.</p> <h2 id="o"><a href="#o" class="header-anchor">#</a> O</h2> <h2 id="p"><a href="#p" class="header-anchor">#</a> P</h2> <h3 id="path-address"><a href="#path-address" class="header-anchor">#</a> Path/Address</h3> <p>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. <a href="../../how-to/address-ipfs-on-web/">More about Path/Address</a></p> <h3 id="peer"><a href="#peer" class="header-anchor">#</a> Peer</h3> <p>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. <a href="#node">See also Peer as Node</a></p> <h3 id="peer-routing"><a href="#peer-routing" class="header-anchor">#</a> Peer routing</h3> <p>Peer routing is the process of discovering the network <em>route</em> or address for a network peer using various methods. The primary peer routing mechanism in IPFS is a distributed hash table that uses the <a href="../../concepts/dht/#lookup-algorithm">Kademlia routing algorithm</a> to efficiently locate peers. However, other methods, like local discovery, are also used. Learn more in the <a href="https://docs.libp2p.io/concepts/" target="_blank" rel="noopener noreferrer">libp2p documentation<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="peer-id"><a href="#peer-id" class="header-anchor">#</a> Peer ID</h3> <p>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. <a href="../../concepts/dht/#peer-ids">More about Peer ID</a></p> <h3 id="pinning"><a href="#pinning" class="header-anchor">#</a> Pinning</h3> <p>Pinning is the method of telling an IPFS node that particular data is important and so it will never be removed from that node's cache. To learn more, start by understanding <a href="../../concepts/persistence/">persistence, permanence, and pinning</a>; then, see how to <a href="../../how-to/pin-files/">add local pin</a> and read <a href="#remote-pinning">what remote pins are</a>.</p> <h3 id="pinning-service-api"><a href="#pinning-service-api" class="header-anchor">#</a> Pinning Service API</h3> <p>A vendor-agnostic <a href="https://ipfs.github.io/pinning-services-api-spec/" target="_blank" rel="noopener noreferrer">API specification<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> that anyone can implement to provide a service for <a href="#remote-pinning">remote pinning</a>.</p> <h3 id="preload-node"><a href="#preload-node" class="header-anchor">#</a> Preload node</h3> <p>Part of the process of making a UnixFS DAG publicly available via the preload node's <code>wantlist</code>, 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 blockstore. See <a href="../../concepts/nodes/#preload">Nodes > Preload</a>.</p> <h3 id="protobuf"><a href="#protobuf" class="header-anchor">#</a> Protobuf</h3> <p>Protocol Buffers (Protobuf) is a free and open-source cross-platform data format used to serialize structured data. IPFS uses it in <a href="#dag-pb">DAG-PB</a>. <a href="https://en.wikipedia.org/wiki/Protocol_Buffers" target="_blank" rel="noopener noreferrer">More about Protocol Buffers<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="pubsub"><a href="#pubsub" class="header-anchor">#</a> Pubsub</h3> <p>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. <a href="https://blog.ipfs.tech/25-pubsub/" target="_blank" rel="noopener noreferrer">More about Pubsub<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="q"><a href="#q" class="header-anchor">#</a> Q</h2> <h3 id="quic"><a href="#quic" class="header-anchor">#</a> QUIC</h3> <p>QUIC (<code>/quic-v1</code>) is one of <a href="#libp2p">libp2p</a> <a href="#transport">transport</a> protocols. It provides an always-encrypted, stream-multiplexed connection built on top of UDP. <a href="https://docs.libp2p.io/concepts/transports/quic/" target="_blank" rel="noopener noreferrer">More about QUIC in libp2p<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="r"><a href="#r" class="header-anchor">#</a> R</h2> <h3 id="relay-node"><a href="#relay-node" class="header-anchor">#</a> Relay node</h3> <p>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 <a href="../../concepts/nodes/#relay">Nodes > Relay</a> and <a href="https://docs.libp2p.io/concepts/nat/circuit-relay/" target="_blank" rel="noopener noreferrer">libp2p docs about Circuit Relay<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <h3 id="remote-pinning"><a href="#remote-pinning" class="header-anchor">#</a> Remote Pinning</h3> <p>A variant of <a href="#pinning">pinning</a> that uses a third-party service to ensure that data persists on IPFS, even when your local node goes offline or your local copy of data is deleted during garbage collection. <a href="../../how-to/work-with-pinning-services/">More about working with remote pinning services</a>.</p> <h3 id="repo"><a href="#repo" class="header-anchor">#</a> Repo</h3> <p>The Repository (Repo) is a directory where IPFS stores all its settings and internal data. In <a href="#kubo">Kubo</a> it is created with the <code>ipfs init</code> command. <a href="../../how-to/command-line-quick-start/#install-ipfs">More about Repo in Kubo</a></p> <h3 id="root"><a href="#root" class="header-anchor">#</a> Root</h3> <p>A root is a <a href="#node-in-graphs">node</a> in a <a href="#graph">graph</a> that links to at least one other node. In an IPLD graph, roots are used to aggregate multiple chunks of a file together.</p> <p>If you have a 600 KiB file <code>A</code>, it can be split into 3 chunks <code>B</code>, <code>C</code>, and <code>D</code> since the default block size of IPFS is 256 KiB. The node <code>A</code> 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.</p> <div class="language- extra-class"><pre class="language-text"><code> A | ------------- | | | B C D </code></pre></div><h2 id="s"><a href="#s" class="header-anchor">#</a> S</h2> <h3 id="schemas"><a href="#schemas" class="header-anchor">#</a> Schemas</h3> <p>In IPFS, IPLD Schemas are a system for describing data with structural types. <a href="https://ipld.io/glossary/#schemas" target="_blank" rel="noopener noreferrer">More about IPLD Schemas<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="selectors"><a href="#selectors" class="header-anchor">#</a> Selectors</h3> <p>IPLD selectors are a form of graph query over IPLD data. They can also be thought of as a way to specify a <a href="#traversal">traversal</a>. <a href="https://ipld.io/glossary/#selectors" target="_blank" rel="noopener noreferrer">More about IPLD Selectors<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="sfs"><a href="#sfs" class="header-anchor">#</a> SFS</h3> <p>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). <a href="https://en.wikipedia.org/wiki/Self-certifying_File_System" target="_blank" rel="noopener noreferrer">More about SFS<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="sharding"><a href="#sharding" class="header-anchor">#</a> Sharding</h3> <p>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 <a href="#hamt-sharding">HAMT-sharding</a> of big <a href="#unixfs">UnixFS</a> directories.</p> <h3 id="signing-cryptographic"><a href="#signing-cryptographic" class="header-anchor">#</a> Signing (Cryptographic)</h3> <p>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. <a href="https://en.wikipedia.org/wiki/Digital_signature" target="_blank" rel="noopener noreferrer">More about Digital signature<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="substrate"><a href="#substrate" class="header-anchor">#</a> Substrate</h3> <p>A vocabulary term in <a href="#ipld">IPLD</a>, related to <a href="#adl">ADLs</a>. <a href="https://ipld.io/glossary/#substrate" target="_blank" rel="noopener noreferrer">More in IPLD glossary<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="swarm"><a href="#swarm" class="header-anchor">#</a> Swarm</h3> <p><em>Swarm</em> is a term for the network of IPFS peers with which your local node has connections. Swarm addresses are addresses that your local node will listen on for connections from other IPFS peers.</p> <h3 id="switch"><a href="#switch" class="header-anchor">#</a> Switch</h3> <p>In <a href="#libp2p">libp2p</a>, a <em>switch</em> is a component responsible for composing multiple <a href="#transport">transports</a> into a single interface, allowing application code to <a href="#dialing">dial</a> peers without having to specify which transport to use.</p> <p>Switches also coordinate the <em>connection upgrade</em> process, which promotes a <em>raw</em> connection from the transport layer into one that supports <a href="https://docs.libp2p.io/concepts/protocols/#protocol-negotiation" target="_blank" rel="noopener noreferrer">protocol negotiation<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>, <a href="../../concepts/libp2p/#stream-multiplexing">stream multiplexing</a>, and secure communications.</p> <p>Sometimes called <a href="#swarm">swarm</a> for historical reasons.</p> <h2 id="t"><a href="#t" class="header-anchor">#</a> T</h2> <h3 id="transport"><a href="#transport" class="header-anchor">#</a> Transport</h3> <p>In <a href="#libp2p">libp2p</a>, transport refers to the technology that lets us move data from one machine to another. This may be a TCP, UDP (<a href="#quic">QUIC</a>) network, a <a href="#websocket">WebSocket</a> connection in a browser, or anything else capable of implementing the transport interface. <a href="https://docs.libp2p.io/concepts/transports/overview/" target="_blank" rel="noopener noreferrer">More about libp2p transports<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="traversal"><a href="#traversal" class="header-anchor">#</a> Traversal</h3> <p>In <a href="#ipld">IPLD</a>, the act of walking across the <a href="#data-model">Data Model</a>. <a href="https://ipld.io/glossary/#substrate" target="_blank" rel="noopener noreferrer">More in IPLD glossary<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="u"><a href="#u" class="header-anchor">#</a> U</h2> <h3 id="unixfs"><a href="#unixfs" class="header-anchor">#</a> UnixFS</h3> <p>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 <em>tree</em> of blocks, in the UnixFS format and protects it from being garbage-collected. <a href="../../concepts/file-systems/#unix-file-system-unixfs">More about UnixFS</a></p> <h3 id="urlstore"><a href="#urlstore" class="header-anchor">#</a> Urlstore</h3> <p>An experimental data store in <a href="#kubo">Kubo</a> similar to <a href="#filestore"><code>filestore</code></a>, but it retrieves blocks contents via a HTTP URL instead of a local filesystem. <a href="https://github.com/ipfs/kubo/blob/master/docs/experimental-features.md#ipfs-urlstore" target="_blank" rel="noopener noreferrer">More about urlstore experiment<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="v"><a href="#v" class="header-anchor">#</a> V</h2> <h2 id="w"><a href="#w" class="header-anchor">#</a> W</h2> <h3 id="wan"><a href="#wan" class="header-anchor">#</a> WAN</h3> <p>Wide Area Network (WAN) is a type of (usually public) computer network that spans over a large geographic area. <a href="https://en.wikipedia.org/wiki/Wide_area_network" target="_blank" rel="noopener noreferrer">More about WAN<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="webrtc"><a href="#webrtc" class="header-anchor">#</a> WebRTC</h3> <p>WebRTC (Web Real-Time Communications) is a framework for real-time communication and in libp2p is used to establish browser-to-server and browser-to-browser connections between applications. <a href="#libp2p">Libp2p</a> supports WebRTC as multiple <a href="#transport">transports</a> (<code>/webrtc</code>, <code>/webrtc-direct</code>). <a href="https://docs.libp2p.io/concepts/transports/webrtc/" target="_blank" rel="noopener noreferrer">More about WebRTC in libp2p<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="websocket"><a href="#websocket" class="header-anchor">#</a> WebSocket</h3> <p>WebSockets are a way for web applications to maintain bidirectional communications with server-side processes, and are one of <a href="#transport">transports</a> supported by <a href="#libp2p">libp2p</a> (<code>/ws</code>). <a href="https://github.com/libp2p/specs/blob/master/websockets/README.md" target="_blank" rel="noopener noreferrer">More about libp2p WebSockets support<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="webtransport"><a href="#webtransport" class="header-anchor">#</a> WebTransport</h3> <p>WebTransport is a new specification that uses QUIC to offer an alternative to <a href="#websocket">WebSocket</a>. Conceptually, it can be considered WebSocket over <a href="#quic">QUIC</a>. <a href="#libp2p">Libp2p</a> supports is indicated by <code>/webtransport</code> <a href="#multiaddr">Multiaddr</a>. <a href="https://docs.libp2p.io/concepts/transports/webtransport/" target="_blank" rel="noopener noreferrer">More about WebTransport in libp2p<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="x"><a href="#x" class="header-anchor">#</a> X</h2> <h2 id="y"><a href="#y" class="header-anchor">#</a> Y</h2> <h3 id="yamux"><a href="#yamux" class="header-anchor">#</a> Yamux</h3> <p>Yamux (Yet another Multiplexer) is a powerful stream <a href="#multiplexer">multiplexer</a> used in <a href="#libp2p">libp2p</a>. <a href="https://docs.libp2p.io/concepts/multiplex/yamux/" target="_blank" rel="noopener noreferrer">More about Yamux in libp2p docs<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="z"><a href="#z" class="header-anchor">#</a> Z</h2></div> <div class="content-footer" data-v-b274761c=""><div class="feedback content-feedback" data-v-063e6196="" data-v-b274761c=""><h3 data-v-063e6196="">Was this information helpful?</h3> <div class="feedback-actions" data-v-063e6196=""><button title="Yes" class="btn btn-primary" data-v-063e6196=""> Yes </button> <button title="No" class="btn btn-primary" data-v-063e6196=""> No </button></div> <!----> <div class="feedback-edit-or-issue" data-v-063e6196=""><div class="local-page-edit" data-v-063e6196=""><div class="local-edit-link"><a href="https://github.com/ipfs/ipfs-docs/edit/main/docs/concepts/glossary.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span> on GitHub or <a href="https://github.com/ipfs/ipfs-docs/issues/new?assignees=&labels=need%2Ftriage&template=open_an_issue.md&title=Glossary" target="_blank" rel="noopener noreferrer">open an issue</a></span></div></div></div></div> <div class="legacy-callout" data-v-21e6796e="" data-v-b274761c=""><p data-v-21e6796e=""><b data-v-21e6796e="">Help us improve this site!</b></p> <section data-v-21e6796e=""><div class="block" data-v-21e6796e=""><ul data-v-21e6796e=""><li data-v-21e6796e=""><a href="https://github.com/ipfs/ipfs-docs/issues/new?assignees=&labels=OKR+3%3A+Content+Improvement%2C+docs-ipfs&template=content-request.md&title=%5BCONTENT+REQUEST%5D+%28add+your+title+here%21%29" target="_blank" rel="noopener noreferrer" data-v-21e6796e="">Suggest new content</a></li></ul></div> <div class="block" data-v-21e6796e=""><ul data-v-21e6796e=""><li data-v-21e6796e=""><a href="https://github.com/ipfs/ipfs-docs/issues/new?assignees=&labels=OKR+3%3A+Content+Improvement%2C+docs-ipfs&template=documentation-issue.md&title=%5BDOCS+ISSUE%5D+%28add+your+title+here%21%29" target="_blank" rel="noopener noreferrer" data-v-21e6796e="">Give general feedback</a></li></ul></div></section></div> <footer class="page-edit" data-v-b274761c=""><!----> <!----></footer> <!----></div> <div data-v-b274761c=""></div> <div data-v-b274761c=""></div> </main></div><div class="global-ui"><!----><vuecustomtooltip></vuecustomtooltip><div></div></div></div> <script src="../../assets/js/app.b06de3e2.js" defer></script><script src="../../assets/js/2.4d957bfb.js" defer></script><script src="../../assets/js/1.e5bd4a62.js" defer></script><script src="../../assets/js/69.5ffca16a.js" defer></script> </body></html>