mirror of
https://github.com/status-im/ift-docs.git
synced 2026-08-30 19:31:15 +00:00
34 lines
23 KiB
HTML
34 lines
23 KiB
HTML
<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-storage/introduction-to-logos-storage" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.2"><title data-rh=true>Introduction to Logos Storage | Logos documentation</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true property=og:image content=https://docs.logos.co/img/social-card-v2.jpg /><meta data-rh=true name=twitter:image content=https://docs.logos.co/img/social-card-v2.jpg /><meta data-rh=true property=og:url content=https://docs.logos.co/storage /><meta data-rh=true property=og:locale content=en /><meta data-rh=true name=docusaurus_locale content=en /><meta data-rh=true name=docsearch:language content=en /><meta data-rh=true name=docusaurus_version content=current /><meta data-rh=true name=docusaurus_tag content=docs-default-current /><meta data-rh=true name=docsearch:version content=current /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current /><meta data-rh=true property=og:title content="Introduction to Logos Storage | Logos documentation"/><meta data-rh=true name=description content="Learn how Logos provides resilient, censorship-resistant file sharing for decentralised applications."/><meta data-rh=true property=og:description content="Learn how Logos provides resilient, censorship-resistant file sharing for decentralised applications."/><link data-rh=true rel=icon href=/img/favicon.png /><link data-rh=true rel=canonical href=https://docs.logos.co/storage /><link data-rh=true rel=alternate href=https://docs.logos.co/storage hreflang=en /><link data-rh=true rel=alternate href=https://docs.logos.co/storage hreflang=x-default /><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.logos.co/storage","name":"Introduction to Logos Storage","position":1}]}</script><link rel=icon href=/img/favicon.png media="(prefers-color-scheme: light)"><link rel=icon href=/img/favicon-dark.png media="(prefers-color-scheme: dark)"><script src=https://umami.bi.status.im/script.js defer data-website-id=0f95ea33-c693-4fe7-91dc-8effe9645fa8></script><link rel=stylesheet href=/assets/css/styles.3f5955aa.css /><script src=/assets/js/runtime~main.fecf7c01.js defer></script><script src=/assets/js/main.538234c2.js defer></script></head><body><svg style="display: none;"><defs>
|
||
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
|
||
</defs></svg>
|
||
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme-597")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/img/logo-light.png /><link rel=preload as=image href=/img/logo-dark.png /><link rel=preload as=image href=/assets/images/logos-intro-5e54ca3ec28cf0baf75abb7560e29a7d.png /><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/img/logo-light.png alt=Logos class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/logo-dark.png alt=Logos class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div></a><a class="navbar__item navbar__link" href=/get-started/what-is-logos>Get started</a><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>Your path</a><ul class=dropdown__menu><li><a class=dropdown__link href=/run-an-app>Run an app</a><li><a class=dropdown__link href=/run-a-node>Run a node</a><li><a class=dropdown__link href=/build-an-app>Build an app</a><li><a href="https://github.com/logos-co/logos-docs?tab=contributing-ov-file#contributing-to-the-logos-documentation" target=_blank rel="noopener noreferrer" class=dropdown__link>Contribute<svg width=12 height=12 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>Explore</a><ul class=dropdown__menu><li><a class=dropdown__link href=/basecamp>Basecamp</a><li><a class=dropdown__link href=/blockchain>Blockchain</a><li><a class=dropdown__link href=/lez>LEZ</a><li><a class=dropdown__link href=/core/build-modules/start-a-logos-module-from-the-cli>Core</a><li><a class=dropdown__link href=/messaging>Messaging</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/storage>Storage</a><li><a class=dropdown__link href=/mixnet/get-started/send-anonymised-messages-over-the-mix-network>Mixnet</a><li><a class=dropdown__link href=/peer-discovery/get-started/build-logos-core-module-that-uses-service-discovery-api>Peer discovery</a></ul></div></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/logos-co/logos-docs target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class="navbar__search searchBarContainer_NW3z" dir=ltr><input placeholder=Search aria-label=Search class="navbar__search-input searchInput_YFbd" value="" /><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current=page href=/storage><span class=linkLabel_WmDU>Introduction to Logos Storage</span></a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/storage/get-started/run-logos-storage-node><span class=categoryLinkLabel_W154>Get started</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/storage/concepts/connectivity><span class=categoryLinkLabel_W154>Concepts</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/storage/build-app/build-cli-app-that-uses-storage-api><span class=categoryLinkLabel_W154>Build App</span></a></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a href=https://logos-co.github.io/logos-storage-module/latest/api_reference.html target=_blank rel="noopener noreferrer" class="menu__link menuExternalLink_NmtK"><span class=linkLabel_WmDU>API Reference</span><svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Introduction to Logos Storage</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Logos Storage</h1></header>
|
||
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=learn-how-logos-provides-resilient-censorship-resistant-file-sharing-for-decentralised-applications>Learn how Logos provides resilient, censorship-resistant file sharing for decentralised applications.<a href=#learn-how-logos-provides-resilient-censorship-resistant-file-sharing-for-decentralised-applications class=hash-link aria-label="Direct link to Learn how Logos provides resilient, censorship-resistant file sharing for decentralised applications." title="Direct link to Learn how Logos provides resilient, censorship-resistant file sharing for decentralised applications." translate=no></a></h4>
|
||
<p><a class="" href=/get-started/glossary#logos-storage>Logos storage</a> is a filesharing protocol that allows users of the Logos stack to publish and share files in a decentralised manner. It provides the persistence guarantees of an <a href=#organic-replication class="">organically replicated network</a> while adding <a href=#privacy class="">stronger privacy guarantees</a>. Logos storage <a class="" href=/storage/get-started/run-logos-storage-node>is provided as a Logos module</a>, and requires the Logos runtime and tooling to work.</p>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=the-basics>The basics<a href=#the-basics class=hash-link aria-label="Direct link to The basics" title="Direct link to The basics" translate=no></a></h2>
|
||
<ul>
|
||
<li class="">Logos Storage allows users to share files over a decentralised, private network of nodes.</li>
|
||
<li class="">Files are stored locally by each node, with each file assigned a unique identifier known as a <a class="" href=/get-started/glossary#cid>CID</a>.</li>
|
||
<li class="">Anybody with a CID can download the associated file from the network. Nodes that download a file replicate it on their machine and make it available for others, with more downloads resulting in more peers to download from.</li>
|
||
<li class="">Neither providers nor downloaders can be linked to the content they interact with.</li>
|
||
</ul>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=how-logos-storage-works>How Logos Storage works<a href=#how-logos-storage-works class=hash-link aria-label="Direct link to How Logos Storage works" title="Direct link to How Logos Storage works" translate=no></a></h2>
|
||
<p>The key functionality of Logos Storage is <em>file sharing</em>: you can make files available on the network which other people can then download. The basic process is illustrated in Figure 1:</p>
|
||
<figure id=fig:1 class=figure><img src=/assets/images/logos-intro-5e54ca3ec28cf0baf75abb7560e29a7d.png alt="Logos storage workflow."/><figcaption><strong>Figure <!-- -->1<!-- -->.</strong> <!-- -->Logos storage workflow.</figcaption></figure>
|
||
<ol>
|
||
<li class="">A user <a class="" href=/storage/get-started/run-logos-storage-node#publish-a-file>uploads a file to their Logos Storage node <code>p</code></a>.</li>
|
||
<li class="">Node <code>p</code> stores the file internally.</li>
|
||
<li class="">Node <code>p</code> produces a <em>Content Identifier</em> (CID for short) that uniquely identifies the file. The CID functions very much like a "file share link."</li>
|
||
<li class="">The user shares the CID with other users via a third-party communication mechanism (such as <a class="" href=/messaging>Logos Messaging</a>).</li>
|
||
<li class="">Another user that received the CID uses their own Logos Storage node <code>q</code> to download the file.</li>
|
||
<li class="">Node <code>q</code> that downloaded the file stores it internally.</li>
|
||
<li class="">Once the file is made available on node <code>q</code> (including partial availability, such as for streaming), the user can retrieve it and consume its contents.</li>
|
||
</ol>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=organic-replication>Organic replication<a href=#organic-replication class=hash-link aria-label="Direct link to Organic replication" title="Direct link to Organic replication" translate=no></a></h3>
|
||
<p>Note that a user that wants to share a file must first upload it to their local node. Another user that wants to obtain that same file must then download it to their own local node first. The reason is that, underneath, both users are engaging in a replication protocol - when the first user initially shares their file, that file is added to the network with 1 replica (the uploading node). Once the second user downloads it, the file has 2 replicas. If a third user were to download that same file as well, it would have 3 replicas, etc.</p>
|
||
<p>Since the number of replicas is determined by the number of nodes interested in a given file - interest being an organic property - this process is referred to as <em>organic replication</em>. This is in stark contrast to decentralised storage networks such as <a href=https://www.ethswarm.org/The-Book-of-Swarm.pdf target=_blank rel="noopener noreferrer" class="">Swarm</a> or <a href=https://sia.tech/ target=_blank rel="noopener noreferrer" class="">SIA</a>, where providers guarantee the availability of uploaded content in exchange for a fee. The way Logos Storage works places a fundamental limitation on persistence: if no one is interested in your files, chances are that losing your node means your data is lost as well.</p>
|
||
<p>This is not an insurmountable limitation: one could set up multiple nodes and create replication groups for files using Logos Messaging, but this is not currently provided out-of-the-box. For files of public interest, however, replication should happen naturally: parties interested in keeping some content online can operate their own nodes and curate the list of files they wish to replicate. This allows the operator to control the type of content they host, as well as how much content they host.</p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=privacy>Privacy<a href=#privacy class=hash-link aria-label="Direct link to Privacy" title="Direct link to Privacy" translate=no></a></h3>
|
||
<p>A key problem with filesharing networks such as <a href=https://www.bittorrent.org/beps/bep_0003.html target=_blank rel="noopener noreferrer" class="">BitTorrent</a> - and Logos Storage itself - is that organic replication on its own exposes both the party that provides content (the <em>provider</em>) and the party that downloads it (the <em>downloader</em>) to censorship. Even with encrypted communications, active attackers can join the network and uncover which nodes are doing what.</p>
|
||
<p>Privacy in Logos Storage has been focused on <em>unlinking</em> both providers and downloaders by the use of <a href=https://doi.org/10.1145/358549.358563 target=_blank rel="noopener noreferrer" class="">Mix networks</a>. This is strongly inspired by how <a href=https://tribler.org/ target=_blank rel="noopener noreferrer" class="">Tribler</a> works, but adapted to Logos' infrastructure and constraints. When fully mature, Logos Storage will leverage mix network technology to provide <em>fully anonymous filesharing</em>; that is, a system in which neither providers nor downloaders can be linked to the content they are providing/downloading.</p>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=how-to-use-logos-storage>How to use Logos Storage<a href=#how-to-use-logos-storage class=hash-link aria-label="Direct link to How to use Logos Storage" title="Direct link to How to use Logos Storage" translate=no></a></h2>
|
||
<p>The <a class="" href=/storage/get-started/set-up-and-use-logos-storage-ui>Storage UI App</a> is probably the fastest and simplest way to try out Logos storage. To run a node on a more permanent basis or build on Logos Storage, check out <a class="" href=/storage/get-started/run-logos-storage-node>how to run a storage node</a> and the <a href=https://logos-co.github.io/logos-storage-module/latest/api_reference.html target=_blank rel="noopener noreferrer" class="">Storage module API reference</a>.</div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/logos-co/logos-docs/tree/main/docs/storage/introduction-to-logos-storage.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href=/storage/get-started/run-logos-storage-node><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Run a Logos storage node</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#the-basics class="table-of-contents__link toc-highlight">The basics</a><li><a href=#how-logos-storage-works class="table-of-contents__link toc-highlight">How Logos Storage works</a><ul><li><a href=#organic-replication class="table-of-contents__link toc-highlight">Organic replication</a><li><a href=#privacy class="table-of-contents__link toc-highlight">Privacy</a></ul><li><a href=#how-to-use-logos-storage class="table-of-contents__link toc-highlight">How to use Logos Storage</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/get-started/what-is-logos>Get started</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/logos-co/logos-docs target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Legal</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://logos.co/terms-and-conditions target=_blank rel="noopener noreferrer" class=footer__link-item>Terms and Conditions<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2026 Logos. Built with Docusaurus.</div></div></div></footer></div></body> |