mirror of
https://github.com/logos-co/logos-docs.git
synced 2026-08-30 18:11:09 +00:00
275 lines
97 KiB
HTML
275 lines
97 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-run-a-node/get-started/run-logos-node-blockchain-storage-delivery" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.2"><title data-rh=true>Run a Logos node with blockchain, storage, and delivery | 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/run-a-node /><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="Run a Logos node with blockchain, storage, and delivery | Logos documentation"/><meta data-rh=true name=description content="Get started running a full Logos node with all three core modules on testnet v0.2.1."/><meta data-rh=true property=og:description content="Get started running a full Logos node with all three core modules on testnet v0.2.1."/><link data-rh=true rel=icon href=/img/favicon.png /><link data-rh=true rel=canonical href=https://docs.logos.co/run-a-node /><link data-rh=true rel=alternate href=https://docs.logos.co/run-a-node hreflang=en /><link data-rh=true rel=alternate href=https://docs.logos.co/run-a-node 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/run-a-node","name":"Run a Logos node with blockchain, storage, and delivery","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.b2f849ad.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 /><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 aria-current=page class="dropdown__link dropdown__link--active" 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 class=dropdown__link 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=/run-a-node><span class=linkLabel_WmDU>Run a Logos node with blockchain, storage, and delivery</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=/blockchain/get-started/run-a-logos-blockchain-node-from-cli><span class=categoryLinkLabel_W154>Blockchain node</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=/messaging/delivery/run-logos-delivery-node><span class=categoryLinkLabel_W154>Delivery node</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/get-started/run-logos-storage-node><span class=categoryLinkLabel_W154>Storage node</span></a></div></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>Run a Logos node with blockchain, storage, and delivery</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>Run a Logos node with blockchain, storage, and delivery</h1></header>
|
||
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=get-started-running-a-full-logos-node-with-all-three-core-modules-on-testnet-v021>Get started running a full Logos node with all three core modules on testnet v0.2.1.<a href=#get-started-running-a-full-logos-node-with-all-three-core-modules-on-testnet-v021 class=hash-link aria-label="Direct link to Get started running a full Logos node with all three core modules on testnet v0.2.1." title="Direct link to Get started running a full Logos node with all three core modules on testnet v0.2.1." translate=no></a></h4>
|
||
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 12 16"><path fill-rule=evenodd d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"/></svg></span>Version</div><div class=admonitionContent_BuS1><p>This document is accurate for <strong>Testnet v0.2.1</strong>.</div></div>
|
||
<p>This procedure covers installing and running a single <a class="" href=/get-started/glossary#logos-node>Logos node</a> with <code>logoscore</code> hosting the <code>blockchain_module</code>, <code>storage_module</code>, and <code>delivery_module</code> from one shared modules directory. It is intended for node operators who want to join the testnet and contribute to the Logos network. The steps assume a Linux host.</p>
|
||
<p>The default paths used throughout this procedure are:</p>
|
||
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">/usr/local/bin/logoscore</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">/usr/local/bin/lgpd</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">/usr/local/bin/lgpm</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">/opt/logos-node/modules</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">/opt/logos-node/packages</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">/var/lib/logos-node</span><br/></div></code></pre></div></div>
|
||
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>Prerequisites</div><div class=admonitionContent_BuS1><ul>
|
||
<li class="">Linux host with a public IPv4 address.</li>
|
||
<li class="">Ports <code>3000/udp</code>, <code>8090/udp</code>, <code>8091/tcp</code>, <code>9000/udp</code>, and <code>30303/tcp</code> open on the host firewall.</li>
|
||
<li class="">Root or <code>sudo</code> access to install tools and create system users.</li>
|
||
</ul><p>Make sure your hardware meets the following requirements for running a blockchain node:<ul>
|
||
<li class="">CPU: 2 Cores, 2Ghz. Modern multi-core processor.</li>
|
||
<li class="">Memory (RAM): Minimal (1 Gb).</li>
|
||
<li class="">Storage: SSD with 100+ GB free with ability to expand storage on demand.</li>
|
||
<li class="">Network: Relatively reliable network connection. 1Mbps of free bandwidth.</li>
|
||
</ul><p>To run a Blend node, make sure you have:<ul>
|
||
<li class="">A stable and accessible external IP.</li>
|
||
<li class="">A stable, low-latency connection (10 Mbps+ recommended) to handle multiple concurrent connections (recommended). This is beneficial for effective message blending and timing obfuscation.</li>
|
||
</ul></div></div>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=what-to-expect>What to expect<a href=#what-to-expect class=hash-link aria-label="Direct link to What to expect" title="Direct link to What to expect" translate=no></a></h2>
|
||
<ul>
|
||
<li class="">You can run a full Logos node with all three modules active and publicly reachable on the testnet.</li>
|
||
<li class="">You can verify each <a class="" href=/get-started/glossary#module>module</a> is healthy by querying the daemon and checking live port bindings.</li>
|
||
<li class="">You can configure the node for unattended operation using the systemd service pattern described in <a href=#optional-run-the-node-unattended-with-systemd class="">here</a>.</li>
|
||
</ul>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-1-install-runtime-tools>Step 1: Install runtime tools<a href=#step-1-install-runtime-tools class=hash-link aria-label="Direct link to Step 1: Install runtime tools" title="Direct link to Step 1: Install runtime tools" translate=no></a></h2>
|
||
<p>Install the system dependencies and download the three Logos CLI tools.</p>
|
||
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>info</div><div class=admonitionContent_BuS1><p>You can also install these tools by running:<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>curl</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-fsSL</span><span class="token plain"> https://raw.githubusercontent.com/logos-co/logos-docs/main/resources/scripts/install-node-tools.sh </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>sh</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable environment constant" style=color:#36acaa>PATH</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"</span><span class="token string environment constant" style=color:#36acaa>$PWD</span><span class="token string" style=color:#e3116c>/bin:</span><span class="token string environment constant" style=color:#36acaa>$PATH</span><span class="token string" style=color:#e3116c>"</span><br/></div></code></pre></div></div></div></div>
|
||
<ol>
|
||
<li class="">
|
||
<p>Install <code>curl</code>, <code>jq</code>, <code>wget</code>, and FUSE support for AppImage binaries:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>apt-get</span><span class="token plain"> update</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>apt-get</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-y</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>curl</span><span class="token plain"> jq </span><span class="token function" style=color:#d73a49>wget</span><span class="token plain"> fuse3</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Download the Linux release assets for <code>logoscore</code>, <code>lgpd</code>, and <code>lgpm</code>:</p>
|
||
<table><thead><tr><th>Tool<th>Repository<tbody><tr><td><code>logoscore</code><td><code>https://github.com/logos-co/logos-logoscore-cli</code><tr><td><code>lgpd</code><td><code>https://github.com/logos-co/logos-package-downloader</code><tr><td><code>lgpm</code><td><code>https://github.com/logos-co/logos-package-manager</code></table>
|
||
<p>For x86_64 Linux, download the pinned testnet tool versions:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>wget</span><span class="token plain"> https://github.com/logos-co/logos-logoscore-cli/releases/download/0.2.2/logoscore-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>wget</span><span class="token plain"> https://github.com/logos-co/logos-package-downloader/releases/download/0.2.1/lgpd-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>wget</span><span class="token plain"> https://github.com/logos-co/logos-package-manager/releases/download/0.2.1/lgpm-x86_64-linux.tar.gz</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Verify the runtime-tool archives against the SHA-256 digests recorded for the pinned GitHub release assets:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">sha256sum </span><span class="token parameter variable" style=color:#36acaa>--check</span><span class="token plain"> </span><span class="token operator" style=color:#393A34><<</span><span class="token string" style=color:#e3116c>'EOF'</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>6f216f4b807520194dd0e4d1a3d69bd2bc83f38781a5e7b2c1abf66e40143b33 logoscore-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>2581f5bb6618623b9eb27b8bba37d39647b33c56d2f5bf15b41d0da286d45aee lgpd-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>41c897a6da6db0ecabe03c0098b9bd0652ea8cd2eaf091e2d646a65b71260780 lgpm-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>EOF</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Install the tools under <code>/usr/local/bin</code>:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>tar</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-xzf</span><span class="token plain"> logoscore-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-m755</span><span class="token plain"> logoscore-x86_64.AppImage /usr/local/bin/logoscore</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>tar</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-xzf</span><span class="token plain"> lgpd-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-m755</span><span class="token plain"> lgpd-x86_64.AppImage /usr/local/bin/lgpd</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>tar</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-xzf</span><span class="token plain"> lgpm-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-m755</span><span class="token plain"> lgpm-x86_64.AppImage /usr/local/bin/lgpm</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Verify all three tools are accessible:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore </span><span class="token parameter variable" style=color:#36acaa>--version</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpd </span><span class="token parameter variable" style=color:#36acaa>--version</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpm </span><span class="token parameter variable" style=color:#36acaa>--version</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-2-prepare-the-host>Step 2: Prepare the host<a href=#step-2-prepare-the-host class=hash-link aria-label="Direct link to Step 2: Prepare the host" title="Direct link to Step 2: Prepare the host" translate=no></a></h2>
|
||
<p>Create the runtime user and the directory layout the node uses at runtime.</p>
|
||
<ol>
|
||
<li class="">
|
||
<p>Create the <code>logos</code> system user and data directories:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>useradd</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>--system</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>--home</span><span class="token plain"> /var/lib/logos-node --create-home </span><span class="token parameter variable" style=color:#36acaa>--shell</span><span class="token plain"> /usr/sbin/nologin logos</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>mkdir</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-p</span><span class="token plain"> /opt/logos-node/modules /opt/logos-node/packages</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>mkdir</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-p</span><span class="token plain"> /var/lib/logos-node/blockchain-module-testnet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>mkdir</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-p</span><span class="token plain"> /var/lib/logos-node/storage-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>mkdir</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-p</span><span class="token plain"> /var/lib/logos-node/delivery-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>chown</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-R</span><span class="token plain"> logos:logos /var/lib/logos-node</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Open these on the host firewall:</p>
|
||
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">3000/udp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">8090/udp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">8091/tcp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">9000/udp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">30303/tcp</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-3-install-modules>Step 3: Install modules<a href=#step-3-install-modules class=hash-link aria-label="Direct link to Step 3: Install modules" title="Direct link to Step 3: Install modules" translate=no></a></h2>
|
||
<p>Download and install the three module packages from the configured module <a class="" href=/get-started/glossary#catalogue>catalogue</a>.</p>
|
||
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>info</div><div class=admonitionContent_BuS1><p><code>lgpd download</code> fetches the version published in the catalogue. It does not automatically pull the newest commit from module repositories. Ensure the intended versions are published in the catalogue before running these commands.</div></div>
|
||
<ol>
|
||
<li class="">
|
||
<p>Download the module packages. The root hash selects the exact published package identity for the pinned version:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">lgpd download blockchain_module </span><span class="token parameter variable" style=color:#36acaa>--version</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0.2</span><span class="token plain">.2 </span><span class="token parameter variable" style=color:#36acaa>--output</span><span class="token plain"> /opt/logos-node/packages</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpd download storage_module </span><span class="token parameter variable" style=color:#36acaa>--version</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>2.1</span><span class="token plain">.2 --root-hash c9ad6299dd62be478dc89a589cb88ab5876bee11812ed3bcaf97ecadcac0b34e </span><span class="token parameter variable" style=color:#36acaa>--output</span><span class="token plain"> /opt/logos-node/packages</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpd download delivery_module </span><span class="token parameter variable" style=color:#36acaa>--version</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0.2</span><span class="token plain">.0 --root-hash eb47c06575a6113f34a6d71e5e0b72d6d2db2ec7510b8be0ab9633b8385edd57 </span><span class="token parameter variable" style=color:#36acaa>--output</span><span class="token plain"> /opt/logos-node/packages</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Install all three packages into the shared modules directory:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">lgpm --modules-dir /opt/logos-node/modules </span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>--file</span><span class="token plain"> /opt/logos-node/packages/blockchain_module-0.2.2.lgx</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpm --modules-dir /opt/logos-node/modules </span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>--file</span><span class="token plain"> /opt/logos-node/packages/storage_module-2.1.0.lgx</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpm --modules-dir /opt/logos-node/modules </span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>--file</span><span class="token plain"> /opt/logos-node/packages/delivery_module-0.2.0.lgx</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Verify the installed versions:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">jq </span><span class="token parameter variable" style=color:#36acaa>-r</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>'.name + " " + .version'</span><span class="token plain"> /opt/logos-node/modules/*/manifest.json</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class="">The output must include:</li>
|
||
</ul>
|
||
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">blockchain_module 0.2.2</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">delivery_module 0.2.0</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">storage_module 2.1.0</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-4-start-logos-core>Step 4: Start Logos Core<a href=#step-4-start-logos-core class=hash-link aria-label="Direct link to Step 4: Start Logos Core" title="Direct link to Step 4: Start Logos Core" translate=no></a></h2>
|
||
<p>Start the <code>logoscore</code> daemon with the shared modules directory before loading any modules.</p>
|
||
<ol>
|
||
<li class="">
|
||
<p>As root, open a shell as the <code>logos</code> runtime user:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">runuser </span><span class="token parameter variable" style=color:#36acaa>-u</span><span class="token plain"> logos -- </span><span class="token function" style=color:#d73a49>env</span><span class="token plain"> </span><span class="token assign-left variable environment constant" style=color:#36acaa>HOME</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">/var/lib/logos-node </span><span class="token function" style=color:#d73a49>bash</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class="">Run the daemon, module configuration, module calls, and health checks from this shell. This keeps the daemon and CLI client on the same <code>/var/lib/logos-node/.logoscore</code> state and ensures generated files belong to <code>logos</code>.</li>
|
||
</ul>
|
||
</li>
|
||
<li class="">
|
||
<p>Start <code>logoscore</code> in the foreground for a first manual run:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> /var/lib/logos-node</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore </span><span class="token parameter variable" style=color:#36acaa>-D</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-m</span><span class="token plain"> /opt/logos-node/modules</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class="">Keep this terminal open. Use a second terminal for all module commands.</li>
|
||
</ul>
|
||
</li>
|
||
<li class="">
|
||
<p>Verify the daemon is running:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore status</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-5-configure-and-start-the-blockchain-module>Step 5: Configure and start the blockchain module<a href=#step-5-configure-and-start-the-blockchain-module class=hash-link aria-label="Direct link to Step 5: Configure and start the blockchain module" title="Direct link to Step 5: Configure and start the blockchain module" translate=no></a></h2>
|
||
<p>Load the blockchain module, generate the node config, and start the module.</p>
|
||
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>info</div><div class=admonitionContent_BuS1><p><code>user_config.yaml</code> contains node-local wallet and key-management configuration. Keep it private, restrict file permissions, and do not publish it. Generate a fresh file for each node.</div></div>
|
||
<ol>
|
||
<li class="">
|
||
<p>Create the peer bootstrap file:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> /var/lib/logos-node/blockchain-module-testnet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>cat</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>></span><span class="token plain"> peers.json </span><span class="token operator" style=color:#393A34><<</span><span class="token string" style=color:#e3116c>EOF</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>{</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "initial_peers": [</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "/ip4/65.109.51.37/udp/3000/quic-v1/p2p/12D3KooWFrouXfmrR4nsLMtE7wu15DoMJ6VtoUtHinREZCvbWHar",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "/ip4/65.109.51.37/udp/3001/quic-v1/p2p/12D3KooWJRGau8M1rjT7R5e4YYsgdFhsMX35nRDtMwCDjxQkXAHz",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "/ip4/65.109.51.37/udp/3002/quic-v1/p2p/12D3KooWQXJavMDTRscjauFSgVAB1VLB6Rzpy2uY5SU9Tk7927tb",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "/ip4/65.109.51.37/udp/50001/quic-v1/p2p/12D3KooWSQc7CcGtvWDPF1yCbBthFnQjprfCVHmfmNDUrSmqQsU1"</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> ]</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>}</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>EOF</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Load the module and generate <code>user_config.yaml</code>:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore load-module blockchain_module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> /var/lib/logos-node/blockchain-module-testnet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call blockchain_module generate_user_config </span><span class="token string" style=color:#e3116c>"</span><span class="token string variable" style=color:#36acaa>$(</span><span class="token string variable function" style=color:#d73a49>cat</span><span class="token string variable" style=color:#36acaa> peers.json</span><span class="token string variable" style=color:#36acaa>)</span><span class="token string" style=color:#e3116c>"</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>chmod</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>600</span><span class="token plain"> /var/lib/logos-node/user_config.yaml /var/lib/logos-node/keystore.yaml</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class=""><code>generate_user_config</code> writes <code>user_config.yaml</code> to the <code>logoscore</code> daemon working directory (<code>/var/lib/logos-node/user_config.yaml</code> with this guide's layout).</li>
|
||
<li class="">Important fields in <code>user_config.yaml</code> include:</li>
|
||
</ul>
|
||
<table><thead><tr><th>Field<th>Purpose<th>Guidance<tbody><tr><td><code>network.initial_peers</code><td>Bootstrap peers<td>Use the current network document<tr><td><code>network.port</code><td>Public UDP P2P port<td>Keep aligned with firewall/NAT, normally <code>3000</code><tr><td><code>api.listen_address</code><td>Local API bind<td>Keep private, normally <code>127.0.0.1:8080</code><tr><td><code>state.base_folder</code><td>State directory<td>Use a persistent local path<tr><td>logger filters<td>Log verbosity<td>Use <code>INFO</code> for unattended operation</table>
|
||
</li>
|
||
<li class="">
|
||
<p>Start the blockchain module:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call blockchain_module start /var/lib/logos-node/user_config.yaml </span><span class="token string" style=color:#e3116c>""</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class="">The second argument is intentionally an empty string; the blockchain module no longer requires a downloaded <code>deployment.yaml</code> file.</li>
|
||
</ul>
|
||
</li>
|
||
<li class="">
|
||
<p>Verify the module is running:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call blockchain_module get_cryptarchia_info </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> jq </span><span class="token parameter variable" style=color:#36acaa>-r</span><span class="token plain"> .result.value </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> jq </span><span class="token builtin class-name">.</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class="">Your node will take about an hour to finish <a class="" href=/get-started/glossary#bootstrapping>bootstrapping</a> and be in the <code>Online</code> state.</li>
|
||
</ul>
|
||
</li>
|
||
<li class="">
|
||
<p>To participate in consensus, you must request tokens from the <a href=https://testnet.blockchain.logos.co/web/faucet/ target=_blank rel="noopener noreferrer" class="">public faucet site</a> after your node reaches <code>Online</code> mode. First, find the keys associated with your node:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>grep</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-A3</span><span class="token plain"> known_keys user_config.yaml</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Choose any key from <code>known_keys</code>, enter it in <strong>Destination Public Key (Hex)</strong> on the faucet site, and press <strong>Request Funds</strong>.</p>
|
||
</li>
|
||
<li class="">
|
||
<p>Wait 1 to 2 minutes, then check your balance. Replace <code><your-chosen-key></code> with the key you used:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>curl</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-s</span><span class="token plain"> http://localhost:8080/wallet/</span><span class="token operator" style=color:#393A34><</span><span class="token plain">your-chosen-key</span><span class="token operator" style=color:#393A34>></span><span class="token plain">/balance </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> jq </span><span class="token builtin class-name">.</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=optional-join-the-blend-network>Optional: Join the Blend Network<a href=#optional-join-the-blend-network class=hash-link aria-label="Direct link to Optional: Join the Blend Network" title="Direct link to Optional: Join the Blend Network" translate=no></a></h3>
|
||
<p>With a running <a class="" href=/get-started/glossary#logos-blockchain>Logos Blockchain</a> node, it is possible - but not necessary - to participate in the <a class="" href=/get-started/glossary#blend-network>Blend Network</a>.</p>
|
||
<ol>
|
||
<li class="">Request funds to both the <code>BlendZk</code> and <code>SdpFunding</code> keys from your <code>keystore.yaml</code> from the <a href=https://testnet.blockchain.logos.co/web/faucet/ target=_blank rel="noopener noreferrer" class="">testnet faucet</a></li>
|
||
</ol>
|
||
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>info</div><div class=admonitionContent_BuS1><p>The public keys and <a class="" href=/get-started/glossary#note>note</a> IDs below are examples. Use the corresponding values from your own <code>keystore.yaml</code> and wallet responses when running these commands.</div></div>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token comment" style=color:#999988;font-style:italic># keystore.yaml</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">public_keys:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>..</span><span class="token plain">.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">BlendZk: 13cccf99f90fd78c2134891ce3c1afce0605753a7694b9d56678d63a8d471820</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>..</span><span class="token plain">.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">SdpFunding: 91d381a87e05d46fc9bc95246273b6930290506f0589ad039444decd3c24940e</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>..</span><span class="token plain">.</span><br/></div></code></pre></div></div>
|
||
<ol>
|
||
<li class="">
|
||
<p>Wait until both keys have received funds. Check each balance with wallet_get_notes. You may need to repeat the faucet requests since only one drip is allowed per block:</p>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call blockchain_module wallet_get_notes </span><span class="token operator" style=color:#393A34><</span><span class="token plain">ADDRESS</span><span class="token operator" style=color:#393A34>></span><span class="token plain"> </span><span class="token string" style=color:#e3116c>""</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> jq </span><span class="token parameter variable" style=color:#36acaa>-r</span><span class="token plain"> .result.value </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> jq .notes</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Join the Blend Network by locking one of the notes held by your <code>BlendZk</code> key.</p>
|
||
</li>
|
||
</ol>
|
||
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>info</div><div class=admonitionContent_BuS1><p>Make sure to open <code><YOUR_BLEND_PORT>/udp</code> on the public host firewall before running the following command. <code><YOUR_BLEND_PORT></code> can be found in <code>user_config.yaml</code> under <code>blend.core.backend.listening_address</code>. Configure the firewall and NAT forwarding before joining and verify the local listener and public reachability after activation.</div></div>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call blockchain_module blend_join_as_core_node </span><span class="token punctuation" style=color:#393A34>\</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token string" style=color:#e3116c>"/ip4/<YOUR_IP>/udp/<YOUR_BLEND_PORT>/quic-v1"</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>\</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token string" style=color:#e3116c>"<BLEND_ZK_NOTE_ID>"</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class=""><code><YOUR_IP></code>: Must be your external IP address</li>
|
||
<li class=""><code><YOUR_BLEND_PORT></code>: Your configured Blend port from the <code>user_config.yaml</code> file (<code>blend.core.backend.listening_address</code>). Note that if you do port-mapping, the external mapped port must be used.</li>
|
||
<li class=""><code><BLEND_ZK_NOTE_ID></code>: The note ID of one of the notes held by your <code>BlendZk</code> key, as queried above.</li>
|
||
<li class="">The Blend core listener starts only after the node's declaration becomes active.</li>
|
||
</ul>
|
||
<ol>
|
||
<li class="">
|
||
<p>Verify the declaration was accepted on chain by polling <code>/mantle/sdp/declarations</code>, looking for your declaration</p>
|
||
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">curl http://127.0.0.1:8080/mantle/sdp/declarations | jq . </span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > {</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "<DECLARATION_ID>": {</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "service_type": "BN",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "provider_id": "35d60d973560b8344f83dc266a3fe89e35a3dcf9959c492d0a7a0b7a85c5d2ce",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "locked_note_id": "<BLEND_ZK_NOTE_ID>",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "locators": [</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "/ip4/<YOUR_IP>/udp/<YOUR_BLEND_PORT>/quic-v1"</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > ],</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "zk_id": "13cccf99f90fd78c2134891ce3c1afce0605753a7694b9d56678d63a8d471820",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "created": 1,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "active": 3,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "withdraw_at": null,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > "nonce": 0</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > }</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># > }</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class="">The response is a JSON object keyed by declaration id (not a list). Find your entry by its <code>provider_id</code> (your BlendSigning key) or <code>zk_id</code> (your BlendZk key).</li>
|
||
<li class=""><code>service_type: BN</code> identifies it as a <a class="" href=/get-started/glossary#blend-node>Blend node</a> declaration.</li>
|
||
<li class=""><code>created</code> is the epoch your declaration was included; it takes effect about two <a class="" href=/get-started/glossary#epoch>epochs</a> later. <code>active</code> is the most recent epoch your node has re-attested activity for (via the periodic Active message), so it advances over time—equal to <code>created + 2</code> right after activation and higher on a long-running node.</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-6-configure-and-start-the-storage-module>Step 6: Configure and start the storage module<a href=#step-6-configure-and-start-the-storage-module class=hash-link aria-label="Direct link to Step 6: Configure and start the storage module" title="Direct link to Step 6: Configure and start the storage module" translate=no></a></h2>
|
||
<p>Create the storage config and start the module.</p>
|
||
<ol>
|
||
<li class="">
|
||
<p>Create the storage config:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> /var/lib/logos-node/storage-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>mkdir</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-p</span><span class="token plain"> storage-data</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>cat</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>></span><span class="token plain"> config.json </span><span class="token operator" style=color:#393A34><<</span><span class="token string" style=color:#e3116c>EOF</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>{</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "data-dir": "./storage-data",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "log-level": "INFO",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "listen-port": 8091,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "disc-port": 8090,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "network": "logos.test"</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>}</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>EOF</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class=""><code>config.json</code> includes the following fields:</li>
|
||
</ul>
|
||
<table><thead><tr><th>Field<th>Purpose<tbody><tr><td><code>data-dir</code><td>Storage repository path<tr><td><code>log-level</code><td>Log verbosity<tr><td><code>listen-port</code><td>Public TCP libp2p port<tr><td><code>disc-port</code><td>Public UDP discovery port<tr><td><code>network</code><td>Storage network preset</table>
|
||
<ul>
|
||
<li class="">Use fixed <code>listen-port</code> and <code>disc-port</code>; do not leave public nodes on random ports.</li>
|
||
<li class="">The <code>logos.test</code> preset provides the storage bootstrap settings.</li>
|
||
</ul>
|
||
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class=admonitionHeading_Gvgb><span class=admonitionIcon_Rf37><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>info</div><div class=admonitionContent_BuS1><p>To run storage with <a class="" href=/get-started/glossary#mix>mix</a> support, generate the config from the published mix bootstrap data. You can use the script provided here. Copy its contents into a file (for example <code>storage-config.sh</code>):<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token shebang important">#!/usr/bin/env bash</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Copy the contents of this file into a script named mix-config.sh</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">set</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-euo</span><span class="token plain"> pipefail</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>if</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>!</span><span class="token plain"> </span><span class="token builtin class-name">command</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-v</span><span class="token plain"> jq </span><span class="token operator" style=color:#393A34>&></span><span class="token plain"> /dev/null</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>then</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token builtin class-name">echo</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Please install jq first"</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token builtin class-name">exit</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>1</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>fi</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token assign-left variable" style=color:#36acaa>data_dir</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"</span><span class="token string variable" style=color:#36acaa>${1</span><span class="token string variable operator" style=color:#393A34>:-</span><span class="token string variable" style=color:#36acaa>.</span><span class="token string variable operator" style=color:#393A34>/</span><span class="token string variable" style=color:#36acaa>logos-storage-data}</span><span class="token string" style=color:#e3116c>"</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token assign-left variable" style=color:#36acaa>raw_data</span><span class="token operator" style=color:#393A34>=</span><span class="token variable" style=color:#36acaa>$(</span><span class="token variable function" style=color:#d73a49>curl</span><span class="token variable" style=color:#36acaa> </span><span class="token variable parameter variable" style=color:#36acaa>-s</span><span class="token variable" style=color:#36acaa> </span><span class="token variable parameter variable" style=color:#36acaa>-fsSL</span><span class="token variable" style=color:#36acaa> https://fleets.logos.co/logos-test/storage-network.json</span><span class="token variable" style=color:#36acaa>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token assign-left variable" style=color:#36acaa>mp_json</span><span class="token operator" style=color:#393A34>=</span><span class="token variable" style=color:#36acaa>$(</span><span class="token variable builtin class-name" style=color:#36acaa>echo</span><span class="token variable" style=color:#36acaa> $raw_data </span><span class="token variable operator" style=color:#393A34>|</span><span class="token variable" style=color:#36acaa> jq </span><span class="token variable parameter variable" style=color:#36acaa>-c</span><span class="token variable" style=color:#36acaa> '</span><span class="token variable punctuation" style=color:#393A34>{</span><span class="token variable" style=color:#36acaa></span><br/></div><div class=token-line style=color:#393A34><span class="token variable" style=color:#36acaa> </span><span class="token variable string" style=color:#e3116c>"version"</span><span class="token variable builtin class-name" style=color:#36acaa>:</span><span class="token variable" style=color:#36acaa> </span><span class="token variable number" style=color:#36acaa>1</span><span class="token variable" style=color:#36acaa>,</span><br/></div><div class=token-line style=color:#393A34><span class="token variable" style=color:#36acaa> </span><span class="token variable string" style=color:#e3116c>"relays"</span><span class="token variable builtin class-name" style=color:#36acaa>:</span><span class="token variable" style=color:#36acaa> map</span><span class="token variable punctuation" style=color:#393A34>(</span><span class="token variable punctuation" style=color:#393A34>{</span><span class="token variable" style=color:#36acaa></span><br/></div><div class=token-line style=color:#393A34><span class="token variable" style=color:#36acaa> </span><span class="token variable string" style=color:#e3116c>"peerId"</span><span class="token variable builtin class-name" style=color:#36acaa>:</span><span class="token variable" style=color:#36acaa> .peerId,</span><br/></div><div class=token-line style=color:#393A34><span class="token variable" style=color:#36acaa> </span><span class="token variable string" style=color:#e3116c>"mixPubKey"</span><span class="token variable builtin class-name" style=color:#36acaa>:</span><span class="token variable" style=color:#36acaa> .mixPubKey,</span><br/></div><div class=token-line style=color:#393A34><span class="token variable" style=color:#36acaa> </span><span class="token variable string" style=color:#e3116c>"libp2pPubKey"</span><span class="token variable builtin class-name" style=color:#36acaa>:</span><span class="token variable" style=color:#36acaa> .libp2pPubKey,</span><br/></div><div class=token-line style=color:#393A34><span class="token variable" style=color:#36acaa> </span><span class="token variable string" style=color:#e3116c>"multiAddr"</span><span class="token variable builtin class-name" style=color:#36acaa>:</span><span class="token variable" style=color:#36acaa> </span><span class="token variable string" style=color:#e3116c>"/ip4/\(.address)/tcp/\(.port)"</span><span class="token variable" style=color:#36acaa></span><br/></div><div class=token-line style=color:#393A34><span class="token variable" style=color:#36acaa> </span><span class="token variable punctuation" style=color:#393A34>}</span><span class="token variable" style=color:#36acaa>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>}</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> tostring</span><span class="token string" style=color:#e3116c>')</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c></span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>dht_proxy_sprs=$(echo $raw_data | jq '</span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">.</span><span class="token punctuation" style=color:#393A34>[</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain">.tcpSpr</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain">'</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>cat</span><span class="token plain"> </span><span class="token operator" style=color:#393A34><<</span><span class="token string" style=color:#e3116c>EOF</span><span class="token string bash punctuation" style=color:#393A34> </span><span class="token string bash punctuation operator" style=color:#393A34>|</span><span class="token string bash punctuation" style=color:#393A34> jq </span><span class="token string bash punctuation builtin class-name" style=color:#393A34>.</span><span class="token string" style=color:#e3116c></span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>{</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "data-dir": "</span><span class="token string variable" style=color:#36acaa>${data_dir}</span><span class="token string" style=color:#e3116c>",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "log-level": "INFO",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "listen-port": 8091,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "disc-port": 8090,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "network": "logos.test",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "mix-enabled": true,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "dht-mix-proxy": </span><span class="token string variable" style=color:#36acaa>${dht_proxy_sprs}</span><span class="token string" style=color:#e3116c>,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "mix-pool-json": </span><span class="token string variable" style=color:#36acaa>${mp_json}</span><span class="token string" style=color:#e3116c></span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>}</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>EOF</span><br/></div></code></pre></div></div><p>Then make it executable and run it:<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>chmod</span><span class="token plain"> +x storage-config.sh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">./storage-config.sh </span><span class="token operator" style=color:#393A34>></span><span class="token plain"> config.json</span><br/></div></code></pre></div></div><p>The script accepts an optional storage data directory as its first argument. Without one, it uses <code>logos-storage-data</code> under the current directory.</div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Load and start the <a class="" href=/get-started/glossary#storage-module>storage module</a>:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> /var/lib/logos-node/storage-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore load-module storage_module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call storage_module init @config.json</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call storage_module start</span><br/></div></code></pre></div></div>
|
||
<p><em>If using the mix config</em>, also enable private queries and verify with a test download:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call storage_module togglePrivateQueries </span><span class="token boolean" style=color:#36acaa>true</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call storage_module downloadToUrl zDvZRwzkzrrYB6sS1rRpRLt4gBhc1pWoyTSjkfszfmj1seaYYLCZ ./farewell-to-westphalia.pdf </span><span class="token boolean" style=color:#36acaa>false</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>65536</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-7-configure-and-start-the-delivery-module>Step 7: Configure and start the delivery module<a href=#step-7-configure-and-start-the-delivery-module class=hash-link aria-label="Direct link to Step 7: Configure and start the delivery module" title="Direct link to Step 7: Configure and start the delivery module" translate=no></a></h2>
|
||
<p>Create the kernel-only delivery config for a node operator and start the module. Replace <code><public-ip></code> with the node's public IPv4 address before running these commands.</p>
|
||
<ol>
|
||
<li class="">
|
||
<p>Create the delivery config:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> /var/lib/logos-node/delivery-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>cat</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>></span><span class="token plain"> config.json </span><span class="token operator" style=color:#393A34><<</span><span class="token string" style=color:#e3116c>EOF</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>{</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "entryLayer": "kernel",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "kernelConf": {</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "preset": "logos.test",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "relay": true,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "logLevel": "INFO",</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "tcpPort": 30303,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "discv5UdpPort": 9000,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "discv5Discovery": true,</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> "nat": "extip:<public-ip>"</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c> }</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>}</span><br/></div><div class=token-line style=color:#393A34><span class="token string" style=color:#e3116c>EOF</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class=""><code>config.json</code> includes the following fields:</li>
|
||
</ul>
|
||
<table><thead><tr><th>Field<th>Purpose<tbody><tr><td><code>entryLayer</code><td>Delivery stack layer; use <code>kernel</code> for a node-operator service<tr><td><code>kernelConf</code><td>Kernel node configuration<tr><td><code>kernelConf.preset</code><td>Network preset<tr><td><code>kernelConf.relay</code><td>Enable the <a class="" href=/get-started/glossary#relay>Relay</a> protocol<tr><td><code>kernelConf.logLevel</code><td>Log verbosity<tr><td><code>kernelConf.tcpPort</code><td>Public TCP P2P port<tr><td><code>kernelConf.discv5UdpPort</code><td>Public UDP discovery port<tr><td><code>kernelConf.discv5Discovery</code><td>Enable discv5 discovery<tr><td><code>kernelConf.nat</code><td>Public IP advertisement mode</table>
|
||
<ul>
|
||
<li class="">The kernel-only entry layer intentionally omits the messaging client and reliable channel manager.</li>
|
||
<li class="">Calls to <code>send</code>, <code>subscribe</code>, and <code>channel*</code> are unavailable, while <code>getNodeInfo</code>, <code>storeQuery</code>, and metrics remain available.</li>
|
||
<li class="">Use fixed <code>tcpPort</code> and <code>discv5UdpPort</code>; do not leave public nodes on random ports.</li>
|
||
<li class="">The <code>logos.test</code> preset provides the delivery network bootstrap settings.</li>
|
||
</ul>
|
||
</li>
|
||
<li class="">
|
||
<p>Load and start the <a class="" href=/get-started/glossary#delivery-module>delivery module</a>:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> /var/lib/logos-node/delivery-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore load-module delivery_module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call delivery_module createNode @config.json</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call delivery_module start</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Verify the delivery module is running:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call delivery_module getAvailableNodeInfoIDs</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call delivery_module getNodeInfo Version</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call delivery_module getNodeInfo MyMultiaddresses</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-8-verify-the-full-node-is-healthy>Step 8: Verify the full node is healthy<a href=#step-8-verify-the-full-node-is-healthy class=hash-link aria-label="Direct link to Step 8: Verify the full node is healthy" title="Direct link to Step 8: Verify the full node is healthy" translate=no></a></h2>
|
||
<p>Run health checks against the daemon and all three modules to confirm the node is fully operational.</p>
|
||
<ol>
|
||
<li class="">
|
||
<p>Check the daemon and all loaded modules:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore status </span><span class="token parameter variable" style=color:#36acaa>--json</span><br/></div></code></pre></div></div>
|
||
<p>Expected modules in the output: <code>storage_module</code>, <code>blockchain_module</code>, <code>delivery_module</code>, <code>capability_module</code>.</p>
|
||
</li>
|
||
<li class="">
|
||
<p>Verify all ports are bound correctly:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">ss </span><span class="token parameter variable" style=color:#36acaa>-lntup</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>egrep</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>'(:3000|:8090|:8091|:9000|:30303|:8080)'</span><br/></div></code></pre></div></div>
|
||
<p>Expected bindings:</p>
|
||
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">0.0.0.0:3000/udp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">0.0.0.0:8090/udp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">0.0.0.0:8091/tcp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">0.0.0.0:9000/udp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">0.0.0.0:30303/tcp</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">127.0.0.1:8080/tcp</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>Check the blockchain module sync state:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call blockchain_module get_cryptarchia_info </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> jq </span><span class="token parameter variable" style=color:#36acaa>-r</span><span class="token plain"> .result.value </span><span class="token operator" style=color:#393A34>|</span><span class="token plain"> jq </span><span class="token builtin class-name">.</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
<li class="">
|
||
<p>(Optional) Check the configured Blend UDP listener:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">ss </span><span class="token parameter variable" style=color:#36acaa>-lun</span><br/></div></code></pre></div></div>
|
||
<ul>
|
||
<li class="">Confirm that the local UDP port from <code>blend.core.backend.listening_address</code> is present. If the public Blend port differs, also confirm that NAT forwards <code><YOUR_BLEND_PORT>/udp</code> to this local port.</li>
|
||
</ul>
|
||
</li>
|
||
<li class="">
|
||
<p>Check the delivery module bound ports:</p>
|
||
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">logoscore call delivery_module getNodeInfo MyMultiaddresses</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ol>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=optional-run-the-node-unattended-with-systemd>Optional: Run the node unattended with systemd<a href=#optional-run-the-node-unattended-with-systemd class=hash-link aria-label="Direct link to Optional: Run the node unattended with systemd" title="Direct link to Optional: Run the node unattended with systemd" translate=no></a></h3>
|
||
<p>Use a dedicated service for <code>logoscore</code> and a separate bootstrap script for module startup. Do not start modules from <code>ExecStartPost</code> in the <code>logoscore</code> service—slow or failing module starts may cause systemd to kill the daemon.</p>
|
||
<p>Daemon service unit:</p>
|
||
<div class="language-ini codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-ini codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">[Unit]</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Description=Logos Node</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">After=network-online.target</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Wants=network-online.target</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[Service]</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">User=logos</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Group=logos</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">WorkingDirectory=/var/lib/logos-node</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Environment=HOME=/var/lib/logos-node</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">ExecStart=/usr/local/bin/logoscore -m /opt/logos-node/modules -D</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Restart=always</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">RestartSec=10</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">StandardOutput=journal</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">StandardError=journal</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[Install]</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">WantedBy=multi-user.target</span><br/></div></code></pre></div></div>
|
||
<p>The bootstrap script should wait for <code>logoscore status</code>, load and start the blockchain module, load and start the storage module, and load and start the delivery module. It should tolerate already-loaded modules and slow module starts.</p>
|
||
<p>Recommended journald retention to cap disk usage:</p>
|
||
<div class="language-ini codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-ini codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">[Journal]</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">SystemMaxUse=200M</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">SystemKeepFree=1G</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">MaxRetentionSec=7day</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">MaxFileSec=1day</span><br/></div></code></pre></div></div>
|
||
<p>Use the <code>INFO</code> log level for unattended operation; use <code>DEBUG</code> only for short troubleshooting windows.</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/run-a-node/get-started/run-logos-node-blockchain-storage-delivery.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"></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=#what-to-expect class="table-of-contents__link toc-highlight">What to expect</a><li><a href=#step-1-install-runtime-tools class="table-of-contents__link toc-highlight">Step 1: Install runtime tools</a><li><a href=#step-2-prepare-the-host class="table-of-contents__link toc-highlight">Step 2: Prepare the host</a><li><a href=#step-3-install-modules class="table-of-contents__link toc-highlight">Step 3: Install modules</a><li><a href=#step-4-start-logos-core class="table-of-contents__link toc-highlight">Step 4: Start Logos Core</a><li><a href=#step-5-configure-and-start-the-blockchain-module class="table-of-contents__link toc-highlight">Step 5: Configure and start the blockchain module</a><ul><li><a href=#optional-join-the-blend-network class="table-of-contents__link toc-highlight">Optional: Join the Blend Network</a></ul><li><a href=#step-6-configure-and-start-the-storage-module class="table-of-contents__link toc-highlight">Step 6: Configure and start the storage module</a><li><a href=#step-7-configure-and-start-the-delivery-module class="table-of-contents__link toc-highlight">Step 7: Configure and start the delivery module</a><li><a href=#step-8-verify-the-full-node-is-healthy class="table-of-contents__link toc-highlight">Step 8: Verify the full node is healthy</a><ul><li><a href=#optional-run-the-node-unattended-with-systemd class="table-of-contents__link toc-highlight">Optional: Run the node unattended with systemd</a></ul></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> |