mirror of
https://github.com/status-im/ift-docs.git
synced 2026-08-31 11:51:14 +00:00
205 lines
59 KiB
HTML
205 lines
59 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.jpg /><meta data-rh=true name=twitter:image content=https://docs.logos.co/img/social-card.jpg /><meta data-rh=true property=og:url content=https://docs.logos.co/run-a-node/get-started/run-logos-node-blockchain-storage-delivery /><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."/><meta data-rh=true property=og:description content="Get started running a full Logos node with all three core modules on testnet v0.2."/><link data-rh=true rel=icon href=/img/favicon.png /><link data-rh=true rel=canonical href=https://docs.logos.co/run-a-node/get-started/run-logos-node-blockchain-storage-delivery /><link data-rh=true rel=alternate href=https://docs.logos.co/run-a-node/get-started/run-logos-node-blockchain-storage-delivery hreflang=en /><link data-rh=true rel=alternate href=https://docs.logos.co/run-a-node/get-started/run-logos-node-blockchain-storage-delivery 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/get-started/run-logos-node-blockchain-storage-delivery","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)"><link rel=stylesheet href=/assets/css/styles.e45c7411.css /><script src=/assets/js/runtime~main.ea6c7eaa.js defer></script><script src=/assets/js/main.78385118.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/get-started/run-logos-node-blockchain-storage-delivery>Run a node</a><li><a class=dropdown__link href=/build-an-app>Build an app</a><li><a class=dropdown__link href=/contribute/welcome>Contribute</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/get-started/install-logos-basecamp>Basecamp</a><li><a class=dropdown__link href=/blockchain/get-started/introduction-to-the-logos-blockchain>Blockchain</a><li><a class=dropdown__link href=/lez/get-started/introduction-to-the-logos-execution-zone>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/get-started/introduction-to-logos-messaging>Messaging</a><li><a class=dropdown__link href=/storage/get-started/run-logos-storage-node>Storage</a><li><a class=dropdown__link href=/mixnet/get-started/discover-nodes-and-send-messages-via-the-anoncomms-mixnet-demo-app>Mixnet</a><li><a class=dropdown__link href=/peer-discovery/welcome>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></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/get-started/run-logos-node-blockchain-storage-delivery><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-v02>Get started running a full Logos node with all three core modules on testnet v0.2.<a href=#get-started-running-a-full-logos-node-with-all-three-core-modules-on-testnet-v02 class=hash-link aria-label="Direct link to Get started running a full Logos node with all three core modules on testnet v0.2." title="Direct link to Get started running a full Logos node with all three core modules on testnet v0.2." translate=no></a></h4>
|
||
<p>This procedure covers installing and running a single <a href=https://docs.logos.co/get-started/glossary#logos-node target=_blank rel="noopener noreferrer" class="">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>
|
||
<p>Before you start, make sure you have the following:</p>
|
||
<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>
|
||
<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 href=https://docs.logos.co/get-started/glossary#module target=_blank rel="noopener noreferrer" class="">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 plain">curl -fsSL https://raw.githubusercontent.com/logos-co/logos-docs/main/resources/scripts/install-node-tools.sh | sh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export PATH="$PWD/bin:$PATH"</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 plain">apt-get update</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">apt-get install -y curl jq wget 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, these are the current download URLs as of 2026-06-25:</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">wget https://github.com/logos-co/logos-logoscore-cli/releases/download/v3/logoscore-x86_64-linux.AppImage</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">wget https://github.com/logos-co/logos-package-downloader/releases/download/pre-release-99d70db-7/lgpd-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">wget https://github.com/logos-co/logos-package-manager/releases/download/pre-release-05b2cf8-7/lgpm-x86_64-linux.tar.gz</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 plain">install -m755 logoscore-x86_64-linux.AppImage /usr/local/bin/logoscore</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">tar -xzf lgpd-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">install -m755 lgpd-x86_64.AppImage /usr/local/bin/lgpd</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">tar -xzf lgpm-x86_64-linux.tar.gz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">install -m755 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 --help</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpd --help</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpm --help</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 plain">useradd --system --home /var/lib/logos-node --create-home --shell /usr/sbin/nologin logos</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mkdir -p /opt/logos-node/modules /opt/logos-node/packages</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mkdir -p /var/lib/logos-node/blockchain-module-testnet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mkdir -p /var/lib/logos-node/storage-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mkdir -p /var/lib/logos-node/delivery-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">chown -R 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 href=https://docs.logos.co/get-started/glossary#catalogue target=_blank rel="noopener noreferrer" class="">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:</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 --version 0.2.0 --output /opt/logos-node/packages</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpd download storage_module --output /opt/logos-node/packages</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpd download delivery_module --output /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 install --file /opt/logos-node/packages/blockchain_module-0.2.0.lgx</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpm --modules-dir /opt/logos-node/modules install --file /opt/logos-node/packages/storage_module-*.lgx</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lgpm --modules-dir /opt/logos-node/modules install --file /opt/logos-node/packages/delivery_module-*.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 -r '.name + " " + .version' /opt/logos-node/modules/*/manifest.json</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>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 plain">cd /var/lib/logos-node</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore -m /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>
|
||
<li class="">For a detached run, pass <code>-D</code> to start in daemon mode: <code>logoscore -m /opt/logos-node/modules -D</code></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 plain">cd /var/lib/logos-node/blockchain-module-testnet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cat > peers.json <<EOF</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"> "initial_peers": [</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "/ip4/65.109.51.37/udp/3000/quic-v1/p2p/12D3KooWFrouXfmrR4nsLMtE7wu15DoMJ6VtoUtHinREZCvbWHar",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "/ip4/65.109.51.37/udp/3001/quic-v1/p2p/12D3KooWJRGau8M1rjT7R5e4YYsgdFhsMX35nRDtMwCDjxQkXAHz",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "/ip4/65.109.51.37/udp/3002/quic-v1/p2p/12D3KooWQXJavMDTRscjauFSgVAB1VLB6Rzpy2uY5SU9Tk7927tb",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "/ip4/65.109.51.37/udp/50001/quic-v1/p2p/12D3KooWSQc7CcGtvWDPF1yCbBthFnQjprfCVHmfmNDUrSmqQsU1"</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><div class=token-line style=color:#393A34><span class="token plain">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">cd /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 "$(cat peers.json)"</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">chmod 600 /var/lib/logos-node/user_config.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><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 | jq -r .result.value | jq .</span><br/></div></code></pre></div></div>
|
||
</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. Replace <code><public-ip></code> with the node's public IPv4 address before running these commands.</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 plain">cd /var/lib/logos-node/storage-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mkdir -p storage-data</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cat > config.json <<EOF</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"> "data-dir": "./storage-data",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "log-level": "INFO",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "listen-ip": "0.0.0.0",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "listen-port": 8091,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "disc-port": 8090,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "nat": "extip:<public-ip>",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "network": "logos.test"</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">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-ip</code><td>Local TCP bind address<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>nat</code><td>Public IP advertisement mode<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>
|
||
<li class="">Fields</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>
|
||
</li>
|
||
</ol>
|
||
<p>To run storage with <a href=https://docs.logos.co/get-started/glossary#mix target=_blank rel="noopener noreferrer" class="">mix</a> support, generate the config from the published mix bootstrap data:</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">cd /var/lib/logos-node/storage-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cat > make-mix-storage-config.sh <<'EOF'</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">#!/usr/bin/env bash</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">set -e</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">data_dir=${1:-"./logos-storage-data"}</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">udp_spr_json=$(curl -s https://logos-storage-network.fra1.digitaloceanspaces.com/v0.2/udp-sprs.json)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">tcp_spr_json=$(curl -s https://logos-storage-network.fra1.digitaloceanspaces.com/v0.2/tcp-sprs.json)</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">wget https://logos-storage-network.fra1.digitaloceanspaces.com/v0.2/mix-pool.json</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mp_path=$(realpath "./mix-pool.json")</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">cat <<JSON</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"> "nat": "any",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "log-level": "DEBUG",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "mix-enabled": true,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "listen-port": 8080,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "disc-port": 8090,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "bootstrap-node": $udp_spr_json,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "dht-mix-proxy": $tcp_spr_json,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "data-dir": "${data_dir}",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "mix-pool": "${mp_path}"</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">JSON</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">EOF</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">chmod 755 make-mix-storage-config.sh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">./make-mix-storage-config.sh > config.json</span><br/></div></code></pre></div></div>
|
||
<p>:::</p>
|
||
<ol>
|
||
<li class="">
|
||
<p>Load and start the <a href=https://docs.logos.co/get-started/glossary#storage-module target=_blank rel="noopener noreferrer" class="">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 plain">cd /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>
|
||
<ul>
|
||
<li class="">
|
||
<p>If using the mix config, 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 true</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call storage_module downloadToUrl zDvZRwzkzrrYB6sS1rRpRLt4gBhc1pWoyTSjkfszfmj1seaYYLCZ ./farewell-to-westphalia.pdf false 65536</span><br/></div></code></pre></div></div>
|
||
</li>
|
||
</ul>
|
||
</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 delivery config 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 plain">cd /var/lib/logos-node/delivery-module</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cat > config.json <<EOF</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"> "preset": "logos.test",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "mode": "Core",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "logLevel": "INFO",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "tcpPort": 30303,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "discv5UdpPort": 9000,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "discv5Discovery": true,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> "nat": "extip:<public-ip>"</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">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>preset</code><td>Network preset<tr><td><code>mode</code><td>Delivery node mode<tr><td><code>logLevel</code><td>Log verbosity<tr><td><code>tcpPort</code><td>Public TCP P2P port<tr><td><code>discv5UdpPort</code><td>Public UDP discovery port<tr><td><code>discv5Discovery</code><td>Enable discv5 discovery<tr><td><code>nat</code><td>Public IP advertisement mode</table>
|
||
<ul>
|
||
<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 href=https://docs.logos.co/get-started/glossary#delivery-module target=_blank rel="noopener noreferrer" class="">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 plain">cd /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 getNodeInfo Version</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logoscore call delivery_module getNodeInfo MyBoundPorts</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 --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 -lntup | egrep '(: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 | jq -r .result.value | jq .</span><br/></div></code></pre></div></div>
|
||
</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 MyBoundPorts</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 storage module, load and start the blockchain 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><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><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2026 Logos. Built with Docusaurus.</div></div></div></footer></div></body> |