<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>devops</title>
        <link>https://paragraph.com/@web3devops</link>
        <description>undefined</description>
        <lastBuildDate>Tue, 28 Apr 2026 15:12:51 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>devops</title>
            <url>https://storage.googleapis.com/papyrus_images/626d045bc09383f135a68b37696d952e94d5ea053aec05ec8b846c19b71d4437.png</url>
            <link>https://paragraph.com/@web3devops</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Sui全节点-Docker方式]]></title>
            <link>https://paragraph.com/@web3devops/sui-docker</link>
            <guid>KbFQlLzcYTVAvHtpMKPy</guid>
            <pubDate>Tue, 19 Jul 2022 06:41:49 GMT</pubDate>
            <description><![CDATA[硬件要求CPU：>= 2RAM: >= 8GStorages: >= 50GTips: 按照官方说法，每两周会重置一次数据软件要求操作系统建议采用Linux，发行版建议采用 Debian 或 Ubuntu，官方测试的版本是：Ubuntu version 18.04 (Bionic Beaver)，建议使用 Ubunt 18.04。依赖包（可选：需要本地构建则安装）$ apt-get update \ &#x26;&#x26; DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC &#x26;&#x26; \ apt-get install -y --no-install-recommends \ tzdata \ git \ ca-certificates \ curl \ build-essential \ libssl-dev \ pkg-config \ libclang-dev \ cmake 配置全节点配置全节点有两种方式，第一种方式是通过 Docker，第二种方式采用 源码编译Docker方式下面介绍采用docker的方式运行全节点安装 ...]]></description>
            <content:encoded><![CDATA[<h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">硬件要求</h2><ul><li><p>CPU：&gt;= 2</p></li><li><p>RAM: &gt;= 8G</p></li><li><p>Storages: &gt;= 50G</p></li></ul><blockquote><p>Tips: 按照官方说法，每两周会重置一次数据</p></blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">软件要求</h2><p>操作系统建议采用Linux，发行版建议采用 <code>Debian</code> 或 <code>Ubuntu</code>，官方测试的版本是：<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://releases.ubuntu.com/18.04/">Ubuntu version 18.04 (Bionic Beaver)</a>，建议使用 Ubunt 18.04。</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">依赖包（可选：需要本地构建则安装）</h3><pre data-type="codeBlock" text="$ apt-get update \
    &amp;&amp; DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC &amp;&amp; \
    apt-get install -y --no-install-recommends \
    tzdata \
    git \
    ca-certificates \
    curl \
    build-essential \
    libssl-dev \
    pkg-config \
    libclang-dev \
    cmake
"><code>$ apt<span class="hljs-operator">-</span>get update \
    <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> DEBIAN_FRONTEND<span class="hljs-operator">=</span>noninteractive TZ<span class="hljs-operator">=</span>Etc<span class="hljs-operator">/</span>UTC <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> \
    apt<span class="hljs-operator">-</span>get install <span class="hljs-operator">-</span>y <span class="hljs-operator">-</span><span class="hljs-operator">-</span>no<span class="hljs-operator">-</span>install<span class="hljs-operator">-</span>recommends \
    tzdata \
    git \
    ca<span class="hljs-operator">-</span>certificates \
    curl \
    build<span class="hljs-operator">-</span>essential \
    libssl<span class="hljs-operator">-</span>dev \
    pkg<span class="hljs-operator">-</span>config \
    libclang<span class="hljs-operator">-</span>dev \
    cmake
</code></pre><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">配置全节点</h2><p>配置全节点有两种方式，第一种方式是通过 <code>Docker</code>，第二种方式采用 <code>源码编译</code></p><h2 id="h-docker" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Docker方式</h2><p>下面介绍采用docker的方式运行全节点</p><h3 id="h-docker" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">安装 docker 运行环境</h3><h4 id="h-" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">移除旧版本（可选）</h4><p>如果系统自带了docker，建议删除，因为系统自带的docker一般版本都比较低，删除命令如下：</p><pre data-type="codeBlock" text="$ sudo apt-get remove docker docker-engine docker.io containerd runc
"><code>$ sudo apt<span class="hljs-operator">-</span>get remove docker docker<span class="hljs-operator">-</span>engine docker.io containerd runc
</code></pre><h4 id="h-docker" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">设置docker官方仓库</h4><p>1、更新apt源，并安装相关工具</p><pre data-type="codeBlock" text="$ sudo apt-get update \
        &amp;&amp;apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
"><code>$ sudo apt<span class="hljs-operator">-</span>get update \
        <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span>apt<span class="hljs-operator">-</span>get install \
        ca<span class="hljs-operator">-</span>certificates \
        curl \
        gnupg \
        lsb<span class="hljs-operator">-</span>release
</code></pre><p>2、增加 docker 官方 GPG key</p><pre data-type="codeBlock" text=" sudo mkdir -p /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
"><code> sudo mkdir <span class="hljs-operator">-</span>p <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>apt<span class="hljs-operator">/</span>keyrings
 curl <span class="hljs-operator">-</span>fsSL https:<span class="hljs-comment">//download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg</span>
</code></pre><p>3、使用以下命令设置存储库</p><pre data-type="codeBlock" text="$ echo \
  &quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
"><code>$ echo \
  <span class="hljs-string">"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable"</span> <span class="hljs-operator">|</span> sudo tee <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>apt<span class="hljs-operator">/</span>sources.list.d/docker.list <span class="hljs-operator">></span> <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null
</code></pre><h4 id="h-docker-engine" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">安装docker engine</h4><p>1、更新 <code>apt</code> 包索引，以及安装docker、containerd、以及docker-compose</p><pre data-type="codeBlock" text="$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
"><code>$ sudo apt<span class="hljs-operator">-</span>get update
$ sudo apt<span class="hljs-operator">-</span>get install docker<span class="hljs-operator">-</span>ce docker<span class="hljs-operator">-</span>ce<span class="hljs-operator">-</span>cli containerd.io docker<span class="hljs-operator">-</span>compose<span class="hljs-operator">-</span>plugin
</code></pre><h4 id="h-docker" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">查看docker 服务运行状态</h4><pre data-type="codeBlock" text="systemctl status docker
"><code>systemctl <span class="hljs-built_in">status</span> docker
</code></pre><h3 id="h-sui-full-node" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">配置 Sui Full Node</h3><p>首先建议创建一个目录用于存放相关的配置文件，这里我会创建一个 <code>/blockchain/sui/devtest</code> 目录，并 <code>cd /blockchain/sui/devnet</code> 进入该目录</p><blockquote><p>Tips: 后续所有的操作均在该目录中执行</p></blockquote><h4 id="h-tmux" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">配置 tmux（可选）</h4><p>为了防止由于网络中断导ssh断开，我一般会使用 tmux工具进行session的管理，防止网络断开。</p><p>1、安装 tmux</p><pre data-type="codeBlock" text="sudo apt install tmux
"><code></code></pre><p>2、创建 session</p><pre data-type="codeBlock" text="tmux new -s &quot;sui-devnet-docker-full-node&quot;
"><code>tmux <span class="hljs-keyword">new</span> <span class="hljs-operator">-</span>s <span class="hljs-string">"sui-devnet-docker-full-node"</span>
</code></pre><blockquote><p>Tips: 命名规则 项目-网络-运行环境-服务</p></blockquote><h4 id="h-docker-compose" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">下载 docker-compose 配置文件</h4><pre data-type="codeBlock" text="wget https://github.com/MystenLabs/sui/blob/main/docker/fullnode/docker-compose.yaml
"><code>wget https://github.com/MystenLabs/sui/blob/main/docker/fullnode/docker-compose.yaml
</code></pre><h4 id="h-" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">下载全节点配置文件</h4><pre data-type="codeBlock" text="wget https://github.com/MystenLabs/sui/raw/main/crates/sui-config/data/fullnode-template.yaml
"><code>wget https://github.com/MystenLabs/sui/raw/main/crates/sui-config/data/fullnode-template.yaml
</code></pre><h4 id="h-" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">下载创世文件</h4><pre data-type="codeBlock" text="wget https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
"><code>wget https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
</code></pre><h3 id="h-full-node" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">启动 full node</h3><pre data-type="codeBlock" text="docker-compose up
"><code>docker<span class="hljs-operator">-</span>compose up
</code></pre><blockquote><p>Tips: 这个过程会同步全网的交易信息，需要等待同步完成。</p></blockquote><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">测试节点是否正常启动</h3><p>一旦全节点启动并运行，测试一些 JSON-RPC 接口。</p><ul><li><p>获取最近的五笔交易</p></li></ul><pre data-type="codeBlock" text="curl --location --request POST &apos;http://127.0.0.1:9000/&apos; \
    --header &apos;Content-Type: application/json&apos; \
    --data-raw &apos;{ &quot;jsonrpc&quot;:&quot;2.0&quot;, &quot;id&quot;:1, &quot;method&quot;:&quot;sui_getRecentTransactions&quot;, &quot;params&quot;:[5] }&apos;
"><code>curl <span class="hljs-operator">-</span><span class="hljs-operator">-</span>location <span class="hljs-operator">-</span><span class="hljs-operator">-</span>request POST <span class="hljs-string">'http://127.0.0.1:9000/'</span> \
    <span class="hljs-operator">-</span><span class="hljs-operator">-</span>header <span class="hljs-string">'Content-Type: application/json'</span> \
    <span class="hljs-operator">-</span><span class="hljs-operator">-</span>data<span class="hljs-operator">-</span>raw <span class="hljs-string">'{ "jsonrpc":"2.0", "id":1, "method":"sui_getRecentTransactions", "params":[5] }'</span>
</code></pre><ul><li><p>获取特定的交易详情</p></li></ul><pre data-type="codeBlock" text="curl --location --request POST &apos;http://127.0.0.1:9000/&apos; \
    --header &apos;Content-Type: application/json&apos; \
    --data-raw &apos;{ &quot;jsonrpc&quot;:&quot;2.0&quot;, &quot;id&quot;:1, &quot;method&quot;:&quot;sui_getTransaction&quot;, &quot;params&quot;:[&quot;$RECENT_TXN_FROM_ABOVE&quot;] }&apos;
"><code>curl <span class="hljs-attr">--location</span> <span class="hljs-attr">--request</span> POST 'http://<span class="hljs-number">127.0</span>.<span class="hljs-number">0.1</span>:<span class="hljs-number">9000</span>/<span class="hljs-string">' \
    --header '</span>Content-Type: application/json<span class="hljs-string">' \
    --data-raw '</span>{ "jsonrpc":<span class="hljs-string">"2.0"</span>, <span class="hljs-string">"id"</span>:<span class="hljs-number">1</span>, <span class="hljs-string">"method"</span>:<span class="hljs-string">"sui_getTransaction"</span>, <span class="hljs-string">"params"</span>:[<span class="hljs-string">"$RECENT_TXN_FROM_ABOVE"</span>] }'
</code></pre><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">使用浏览器访问全节点</h3><p>!image-20220719142855225</p><h3 id="h-docker" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">常用 docker 命令</h3><h4 id="h-docker" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">后台方式启动docker</h4><pre data-type="codeBlock" text="docker-compose up -d
"><code>docker<span class="hljs-operator">-</span>compose up <span class="hljs-operator">-</span>d
</code></pre><h4 id="h-" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">停止节点</h4><pre data-type="codeBlock" text="docker-compose stop
"><code>docker-compose stop
</code></pre><h4 id="h-" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">重置环境</h4><p>重置之前建议备份您的相关配置文件</p><pre data-type="codeBlock" text="docker-compose down --volumes
"><code>docker<span class="hljs-operator">-</span>compose down <span class="hljs-operator">-</span><span class="hljs-operator">-</span>volumes
</code></pre><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">检查运行状态</h3><ul><li><p>获取容器id</p></li></ul><pre data-type="codeBlock" text="docker ps
"><code></code></pre><ul><li><p>进入容器</p></li></ul><pre data-type="codeBlock" text="docker exec -it -u 0 $CONTAINER_ID /bin/bash
"><code>docker exec <span class="hljs-operator">-</span>it <span class="hljs-operator">-</span>u <span class="hljs-number">0</span> $CONTAINER_ID <span class="hljs-operator">/</span>bin<span class="hljs-operator">/</span>bash
</code></pre><ul><li><p>检查数据库</p></li></ul><pre data-type="codeBlock" text="ls -la suidb/
"><code>ls <span class="hljs-operator">-</span>la suidb<span class="hljs-operator">/</span>
</code></pre><h3 id="h-rpc" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">调用本地 RPC 连接问题</h3><p>更新全节点配置中的 json-rpc-address 以监听所有地址：</p><pre data-type="codeBlock" text="sed -i &apos;s/127.0.0.1/0.0.0.0/&apos; fullnode-template.yaml

-json-rpc-address: &quot;127.0.0.1:9000&quot;
+json-rpc-address: &quot;0.0.0.0:9000&quot;
"><code>sed <span class="hljs-operator">-</span>i <span class="hljs-string">'s/127.0.0.1/0.0.0.0/'</span> fullnode<span class="hljs-operator">-</span>template.yaml

<span class="hljs-operator">-</span>json<span class="hljs-operator">-</span>rpc<span class="hljs-operator">-</span><span class="hljs-keyword">address</span>: <span class="hljs-string">"127.0.0.1:9000"</span>
<span class="hljs-operator">+</span>json<span class="hljs-operator">-</span>rpc<span class="hljs-operator">-</span><span class="hljs-keyword">address</span>: <span class="hljs-string">"0.0.0.0:9000"</span>
</code></pre>]]></content:encoded>
            <author>web3devops@newsletter.paragraph.com (devops)</author>
        </item>
    </channel>
</rss>