本文介绍了如何使用 QuickNode 作为共识 RPC 终端来设置和运行 Celestia 轻节点。Celestia 是一个模块化区块链,轻节点执行数据可用性采样,验证区块数据的可用性,无需下载整个区块。文章详细说明了创建 QuickNode Celestia 终端、安装 Celestia 节点、配置认证、初始化轻节点以及提交和检索 blob 数据的方法。
Celestia 是模块化区块链,通过全栈控制为不可阻挡的应用程序提供动力。Celestia 中的轻节点执行数据可用性采样,允许它们验证块数据的可用性,而无需下载整个块。在本指南中,我们将展示如何使用 QuickNode 作为共识 RPC 端点来设置和运行 Celestia 轻节点。
Celestia 是一个模块化共识和数据可用性网络,旨在使任何人都能够轻松部署自己的区块链,且开销最小。与在单层中处理共识、执行和数据可用性的传统区块链不同,Celestia 专门专注于共识和数据可用性,允许其他链将其用作数据可用性层。
Celestia 中的轻节点很特别,因为它们参与数据可用性采样 (DAS)。它们:
这使得它们非常适合需要与 Celestia 交互而无需运行完整节点开销的应用程序。
要将你的轻节点连接到 Celestia,你需要访问一个共识节点。QuickNode 提供可靠、高性能的 Celestia RPC 端点,你的轻节点可以使用这些端点进行状态访问。创建一个帐户并注册一个 QuickNode 帐户,如果你还没有帐户。导航到你的仪表板并单击“创建端点”,然后从区块链选项中选择“Celestia”。为本指南选择“Mocha 测试网”。
创建完成后,你将看到如下所示的端点详细信息:
在你的端点仪表板中,在Security选项卡中找到身份验证部分,然后复制你的身份验证Token。稍后你需要用到它。
要向 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 提供了一个安装脚本,可自动下载并安装适合你系统的版本。在此处查看文档: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
在启动你的轻节点之前,你需要针对目标网络对其进行初始化。
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
我们需要使用此信息,并使用上面返回的适当值(即 TrustedHash
和 SampleFrom
)更新 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。
Celestia 轻节点的主要用例之一是提交和检索 blob 数据。让我们探索如何使用 blob。
Celestia 中的命名空间是组织 blob 数据的 29 字节标识符。它们必须正好是 29 字节长,在命令中使用时经过十六进制编码,并且格式正确以避免保留范围。
让我们为我们的示例创建一个简单的命名空间:
NAMESPACE=$(openssl rand -hex 10)
echo "Using namespace: $NAMESPACE"
现在我们将演示如何将 blob 数据提交到你的命名空间。在运行以下命令之前,请确保你的帐户已获得测试网 TIA 代币的资助。
celestia blob submit $NAMESPACE 'Hello, Celestia! This is my first blob submission. gm!'
成功提交返回:
{
"result": {
"height": 6837048,
"commitments": [\
"0x039d15a1dff9fef62fcce0e16822cdeeb0d70c732c9292e53ec55375671df58a"\
]
}
}
现在,使用以下命令,使用高度、命名空间和承诺来检索 blob 数据:
celestia blob get HEIGHT $NAMESPACE COMMITMENT_HASH
请记住将 HEIGHT
和 COMMITMENT_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 生态系统和应用程序,在你新获得的知识的基础上继续构建。
如果你有任何疑问或需要帮助,请通过 Discord 或 Twitter 与我们联系。
如果你有任何反馈或对新主题的请求,请告诉我们。我们很乐意听取你的意见。
- 原文链接: quicknode.com/guides/inf...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!