如何运行由 QuickNode 提供保护的 Celestia 轻节点

本文介绍了如何使用 QuickNode 作为共识 RPC 终端来设置和运行 Celestia 轻节点。Celestia 是一个模块化区块链,轻节点执行数据可用性采样,验证区块数据的可用性,无需下载整个区块。文章详细说明了创建 QuickNode Celestia 终端、安装 Celestia 节点、配置认证、初始化轻节点以及提交和检索 blob 数据的方法。

概述

Celestia 是模块化区块链,通过全栈控制为不可阻挡的应用程序提供动力。Celestia 中的轻节点执行数据可用性采样,允许它们验证块数据的可用性,而无需下载整个块。在本指南中,我们将展示如何使用 QuickNode 作为共识 RPC 端点来设置和运行 Celestia 轻节点。

你将要做什么

  • 了解 Celestia 区块链
  • 使用 QuickNode 身份验证设置 QuickNode Celestia 端点
  • 向 Celestia 提交 blob 数据以及从 Celestia 检索 blob 数据

你将需要什么

  • 对区块链概念和命令行工具的中级理解
  • 一个 QuickNode 帐户(在此处创建一个帐户
  • 用于 blob 提交的 Celestia 测试网代币 (TIA)

什么是 Celestia?

Celestia 是一个模块化共识和数据可用性网络,旨在使任何人都能够轻松部署自己的区块链,且开销最小。与在单层中处理共识、执行和数据可用性的传统区块链不同,Celestia 专门专注于共识和数据可用性,允许其他链将其用作数据可用性层。

了解轻节点

Celestia 中的轻节点很特别,因为它们参与数据可用性采样 (DAS)。它们:

  • 下载区块头并随机抽取少量区块数据
  • 无需下载完整区块即可验证数据可用性
  • 可以向网络提交 blob 数据以及从网络检索 blob 数据
  • 需要比完整节点少得多的存储和带宽

这使得它们非常适合需要与 Celestia 交互而无需运行完整节点开销的应用程序。

项目准备:创建一个 QuickNode Celestia 端点

要将你的轻节点连接到 Celestia,你需要访问一个共识节点。QuickNode 提供可靠、高性能的 Celestia RPC 端点,你的轻节点可以使用这些端点进行状态访问。创建一个帐户并注册一个 QuickNode 帐户,如果你还没有帐户。导航到你的仪表板并单击“创建端点”,然后从区块链选项中选择“Celestia”。为本指南选择“Mocha 测试网”。

创建完成后,你将看到如下所示的端点详细信息:

QuickNode Celestia 端点的屏幕截图

在你的端点仪表板中,在Security选项卡中找到身份验证部分,然后复制你的身份验证Token。稍后你需要用到它。

项目准备:获取 Celestia 测试网代币

要向 Celestia 提交 blob 数据,你需要测试网 TIA 代币来支付 gas 费用。你可以从 Celestia Discord faucet 或 Celenium 的 web faucet 获取这些代币。有关最新的 faucet 说明,请参阅此文档:https://docs.celestia.org/how-to-guides/mocha-testnet

此时我们不需要检索测试网代币,但稍后当我们初始化轻节点时,它将为我们生成一个钱包。但是,你可以使用自己的钱包,但需要使用 cel-key 实用程序工具进行配置,该工具位于 celestia-node 存储库的二进制文件中。就本指南而言,我们将不演示此操作,但可以在此处找到更多信息。

安装 Celestia 节点

Celestia 提供了一个安装脚本,可自动下载并安装适合你系统的版本。在此处查看文档:https://docs.celestia.org/how-to-guides/light-node

下载并安装

首先,使用 Mocha 或 Mainnet Beta 的特定版本运行安装脚本:

bash -c "$(curl -sL https://docs.celestia.org/celestia-node.sh)" -- -v v0.23.1-mocha

你可以在 Celestia 文档中找到最新版本

然后,检查安装是否成功:

celestia version

你应该会看到类似于以下的输出:

Semantic version: v0.23.1-mocha
Commit: a4f8e60c4865b89b0e3b0b31b7f7c7a8f4e8e60c
Build Date: Mon Oct 14 2024
System version: amd64/darwin
Golang version: go1.21.12

配置身份验证

在运行我们的轻节点之前,我们需要设置身份验证凭据,你的轻节点将使用这些凭据连接到共识 RPC(又名 QuickNode)。

创建身份验证文件

创建身份验证目录和文件:

mkdir -p ~/.celestia-auth

使用你的 QuickNode 身份验证Token创建 xtoken.json 文件:

cat > ~/.celestia-auth/xtoken.json << 'EOF'
{
 "token": "YOUR_QUICKNODE_AUTH_TOKEN_HERE"
}
EOF

YOUR_QUICKNODE_AUTH_TOKEN_HERE 替换为你 QuickNode 端点仪表板中的实际身份验证Token。

设置正确的权限

确保身份验证文件具有适当的权限:

chmod 600 ~/.celestia-auth/xtoken.json

初始化你的轻节点

在启动你的轻节点之前,你需要针对目标网络对其进行初始化。

初始化 Mocha 测试网

celestia light init --p2p.network mocha

这还将生成一个绑定到我们节点的钱包。稍后,我们可以使用检查你的帐户部分中的命令来引用你的公钥,以便在 faucet 中使用。

mocha 命令让配置知道我们要运行mocha测试网。

你将看到指示成功初始化的输出:

2024-01-15T10:30:45.123Z    INFO    node    Successfully initialized light node
2024-01-15T10:30:45.124Z    INFO    node    Node ID: 12D3KooWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
...

请注意,如果不存在密钥,你将在此处看到助记词和你的公共地址。

获取可信哈希和高度

在启动你的轻节点之前,我们需要从网络获取一个可信哈希和高度。这将有助于加快我们的同步时间以达到最新区块。

read -r TRUSTED_HEIGHT TRUSTED_HASH <<<"$(curl -s YOUR_QUICKNODE_ENDPOINT | jq -r '.result.header | "\(.height) \(.last_block_id.hash)"')" && export TRUSTED_HEIGHT TRUSTED_HASH && echo "Height: $TRUSTED_HEIGHT" && echo "Hash:   $TRUSTED_HASH"

YOUR_QUICKNODE_ENDPOINT 替换为你之前创建的实际 QuickNode 端点。

此命令将输出如下内容:

Height: 2847392
Hash:   7B3B0F4A8C9D2E1F6A5B8C7D4E3F2A1B9C8D7E6F5A4B3C2D1E0F9A8B7C6D5E4F3

我们需要使用此信息,并使用上面返回的适当值(即 TrustedHashSampleFrom)更新 config.toml 文件。如果使用 Mocha 测试网,该文件将位于 .celestia-light-mocha-4/config.toml 中。

启动你的轻节点

现在你可以运行以下命令来启动轻节点+连接到 QuickNode RPC 的命令:

celestia light start \
  --p2p.network mocha \
  --core.ip your-quicknode-endpoint.celestia-mocha.quiknode.pro \
  --core.port 9090 \
  --core.tls \
  --core.xtoken.path ~/.celestia-auth

重要参数:

  • --p2p.network mocha: 连接到 Mocha 测试网
  • --core.ip: 你的 QuickNode 端点主机名(不带 https://)
  • --core.port 9090: 用于共识通信的 gRPC 端口
  • --core.tls: 启用 TLS 加密以进行连接
  • --core.xtoken.path: 身份验证文件的路径

如果一切配置正确,你将看到指示成功连接的日志:

2024-01-15T10:35:12.456Z    INFO    light   Started light node
2024-01-15T10:35:12.457Z    INFO    core    Connected to core node
2024-01-15T10:35:12.458Z    INFO    p2p     Connected to 8 peers
2024-01-15T10:35:12.459Z    INFO    das     Started data availability sampling
...

小贴士

对于主网,删除 --p2p.network mocha,它将默认为主网。

与你的轻节点交互

启动轻节点后,你可以使用 Celestia CLI 与其交互。为以下命令打开一个新的终端窗口。

检查你的帐户

获取你的轻节点的帐户地址:

celestia state account-address

输出:

celestia1abc123def456ghi789jkl012mno345pqr678stu

检查你的余额

检查你的帐户余额(你需要测试网 TIA 才能提交 blob):

celestia state balance

输出:

{
 "denom": "utia",
 "amount": "1000000"
}

信息

余额以 micro-TIA (utia) 显示。1 TIA = 1,000,000 utia。

使用 Blob 数据

Celestia 轻节点的主要用例之一是提交和检索 blob 数据。让我们探索如何使用 blob。

了解命名空间

Celestia 中的命名空间是组织 blob 数据的 29 字节标识符。它们必须正好是 29 字节长,在命令中使用时经过十六进制编码,并且格式正确以避免保留范围。

创建命名空间

让我们为我们的示例创建一个简单的命名空间:

创建一个 29 字节的命名空间(58 个十六进制字符)

NAMESPACE=$(openssl rand -hex 10)
echo "Using namespace: $NAMESPACE"

提交 Blob 数据

现在我们将演示如何将 blob 数据提交到你的命名空间。在运行以下命令之前,请确保你的帐户已获得测试网 TIA 代币的资助。

celestia blob submit $NAMESPACE 'Hello, Celestia! This is my first blob submission. gm!'

成功提交返回:

{
  "result": {
    "height": 6837048,
    "commitments": [\
      "0x039d15a1dff9fef62fcce0e16822cdeeb0d70c732c9292e53ec55375671df58a"\
    ]
  }
}

检索 Blob 数据

现在,使用以下命令,使用高度、命名空间和承诺来检索 blob 数据:

celestia blob get HEIGHT $NAMESPACE COMMITMENT_HASH

请记住将 HEIGHTCOMMITMENT_HASH 变量替换为你的 blob 提交中的详细信息。

其中:

  • $NAMESPACE 是你用于提交的命名空间
  • $HEIGHT 是包含 blob 的区块高度

这将返回原始 blob 数据:

{
  "result": {
    "namespace": "0xa739ff2648ab440ac768",
    "data": "0xHello, Celestia! This is my first blob submission. gm!",
    "share_version": 0,
    "commitment": "0x039d15a1dff9fef62fcce0e16822cdeeb0d70c732c9292e53ec55375671df58a",
    "index": 514
  }
}

总结

就这样!你现在知道如何在 Celestia 上运行轻节点,以及如何使用 QuickNode 作为你的共识 RPC 端点。通过继续探索 Celestia 生态系统和应用程序,在你新获得的知识的基础上继续构建。

如果你有任何疑问或需要帮助,请通过 DiscordTwitter 与我们联系。

我们 ❤️ 反馈!

如果你有任何反馈或对新主题的请求,请告诉我们。我们很乐意听取你的意见。

  • 原文链接: quicknode.com/guides/inf...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。