导言
在和 RhizomeDAO 一些开发者交流时,我们发现不少朋友在进行 Berachain 上的开发过程中,都遇到了 RPC 相关的问题。
因此,我们翻译了 Manny Bera 撰写的面向开发者的 RPC 教程,指南后半部分也覆盖了 Berachain 全节点的运维教程和注意事项,以供对 Berachain 有兴趣的广大开发者参考。
Erica
Berachain 上有哪些可用的 RPC 服务及其他常见的 RPC 问题
在 Berachain,官方团队经常收到关于 RPC 服务以及相关内容的诸多问题。
在本文中,我们将深入探讨开发者在 Berachain 当前 V2 bArtio 测试网中可以利用的各种 RPC 服务细节。
Berachain V1 Artio 仍然活跃吗?
截至 2024 年 6 月,Berachain V1 Artio 已被弃用,取而代之的是 Berachain V2 bArtio。如果你想了解新的架构,请查阅由 Berachain 首席技术官 Dev Bear 撰写的文章。
点击阅读文章→《BeaconKit – A Modular Framework for Building EVM Consensus Clients ⛵️✨》
有哪些免费的 RPC 提供商?
对于 Berachain 的主 RPC 服务,我们推荐使用:https://bartio.rpc.berachain.com。
Berachain bArtio 网络配置:
Network:
Berachain bArtio
RPC URL:
https://bartio.rpc.berachain.com/
Chain ID:
80084
Currency Symbol:
BERA
Block Explorer URL:
https://bartio.beratrail.io/
ChainList 上也有越来越多的免费 RPC 提供商,但请注意,这些并未得到 Berachain 的认可。
此外,QuickNode、Nirvana Labs 和 Alchemy 都提供带有丰厚免费额度的私人 RPC 端点。
公共 RPC 提供商的速率限制是多少?
使用 https://bartio.rpc.berachain.com 时,当前的速率限制如下,但请注意,这些限制可能会随时更改。
Requests Per Second:
50
Requests Per Minute:
2000
Request Per Day:
100000
Berachain 提供 WebSocket 服务(WSS)吗?
Berachain 确实通过像 QuickNode、Nirvana Labs 和 Alchemy 这样的 RPC 提供商提供 WebSocket 服务。这些是专用的私人端点,用户需要注册各自的账户才能使用。
Berachain 通过公共 RPC 提供 WSS 服务吗?
目前,Berachain 不提供公共 WebSocket 服务。
你是否需要 WebSocket 服务?
除非你的团队正在进行高频交易,或在获取链上数据时有严格的时间要求(实时更新到秒级),通常推荐的做法是设置一个轮询策略来获取数据。
调试 RPC 方法请求是否可用?
由于调试 RPC 方法并非总是常见的功能,Berachain 的公共 RPC 不提供此功能,但可以通过其他 RPC 提供商获取。
Nirvana Labs
Nirvana 在其免费服务中提供调试功能。
https://nirvanalabs.io/pricing
调试请求示例:
curl --location 'https://berachain.nirvanalabs.xyz/YOUR-NODE-NAME?apikey=YOUR-NIRVANA-API-KEY' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"method": "debug_traceTransaction",
"params": [
"0xead913400b737358b6d6ad909fcc43b697c63ecd9895cc2fe4a41efd572bf12a"
],
"id": 86
}'
QuickNode
QuickNode 在其 Scale 或 Build 计划中提供 trace 和调试功能。
https://www.quicknode.com/pricing
其他选项
另一个选择是运行你自己的全节点,详细信息如下。
RPC 提供商是否提供不受保护(非 EIP155 签名)的交易?
这是开发者偶尔提出的边缘案例,Berachain 公共 RPC 及其他 RPC 提供商不提供此功能。
对于这种情况,我们建议运行全节点(使用 Geth、Reth 等),以允许不受保护的交易。
下面提供了关于如何运行节点的更多详细信息。
Berachain 的 RPC 是否提供 NFT API 数据端点?
目前,我们的现有 RPC 提供商并未提供任何 NFT RPC API 端点或 RPC 方法。这可能会在未来有所变化。
作为替代方案,一些其他提供商目前提供 NFT API 端点。
Routescan(Beratail 区块浏览器)
作为 Berachain 的主要区块浏览器,Routescan 提供 API 来获取特定钱包的资产,包括 NFT。
https://bartio.beratrail.io/documentation/api-swagger
Curl 请求示例:
curl --location 'https://api.routescan.io/v2/network/testnet/evm/80084/address/0xb7AE5De3e843a26Ca764605f6Bec916701f88556/erc721-holdings';
Reservoir
Reservoir 是获取所有与 NFT 数据和交易相关信息的一站式平台。
它提供了一个端点,用于检索 Berachain V2 bArtio 测试网上与钱包地址相关的所有 NFT。
Curl 请求示例:
# BASE API URL: https://api-berachain-testnet.reservoir.tools/
curl --location 'https://api-berachain-testnet.reservoir.tools/users/0xWALLE_ADDRESS/tokens/v6' \
--header 'x-api-key: <YOUR-RESERVOIR-API-KEY>'
如需了解有关该端点的更多详细信息,请查阅他们关于 getUsersUserTokens 的文档。
运行节点 & 我是否应该运行全节点?
运行节点的两个主要因素是维护知识和/或成本。
专业技能问题
Berachain 提供了一个简单的指南,帮助你入门并了解如何运行全节点。可以访问:https://docs.berachain.com/nodes/quickstart。
如果这超出了你的专业知识范围,特别是涉及到二进制更新和服务器维护,我们强烈建议使用像 QuickNode、Alchemy 或 Nirvana 这样的 RPC 提供商。
成本问题
运行全节点时,成本也可能是一个考虑因素,尤其是存档节点,这类节点需要更多的硬盘空间。
运行 BeaconKit 共识客户端和执行客户端(如 Reth 或 Geth)的系统要求如下(每个要求的规格都需乘以二):
OS: Linux / MacOS
CPU Architecture: AMD64 or ARM64 / ARM64 Darwin
CPU: 4 Physical Cores
RAM: 24GB
Storage: 500GB
注意:随着网络的增长,硬盘需求可能会增加。
为了提供一些参考,在 us-east-2 地区使用 AWS 的 c5ad.8xlarge 实例(32vCPUs、64GB RAM、2 x 600 NVMe SSD)的成本大约为每月 486.18 美元(详见 AWS 定价计算器)。
另一方面,如果你对配置专用服务器有更多的了解,你可能会对 Hetzner 作为一种选择感兴趣。
仍然想运行全节点吗?
如果你不担心成本或技术要求,那么可以前往 Berachain 文档的快速入门页面:运行节点。
我可以运行验证节点吗?
由于 Berachain V2 bArtio 测试网的需求量过高,我们目前不再接受测试网的申请。
我们欢迎有兴趣的验证人节点在 Berachain 主网启动时运行节点。
RPC 服务是否宕机了?
如果你发现我们的 Beratrail 区块浏览器上没有显示区块,这可能更多是区块浏览器的问题,而不是 RPC 服务的问题。
你可以运行以下 cURL 请求,如果区块编号发生变化,那么 RPC 服务应该是正常的:
curl --location 'https://bartio.rpc.berachain.com' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"method":"eth_blockNumber",
"params":[],
"id":84
}'
# [Expected Similar Output]:
# {
# "jsonrpc": "2.0",
# "id": 84,
# "result": "0x1ce748" // <----- THIS WILL CHANGE
# }
如果你没有得到以下结果,尝试使用其他地区的 VPN 以排除是否是地区性故障的问题。
如何报告错误/漏洞?
如果你在使用 Berachain RPC 服务时遇到错误,帮助我们解决问题的最佳方式是提供可复现的步骤,包括以下内容:
- 你从哪个地区发起了 RPC 请求?是否使用其他地区的 VPN 进行了测试以排除地区性问题?
- 你在什么时间范围内尝试发起了多少请求?这些请求是否在公共 RPC 端点限制内(参见上文)?
- 你的 HTTP 请求是什么样的?这个问题是否持续发生?(例如:RPC 方法、参数、URL、API 密钥等)
- 请求是否是调试请求或 pre-EIP-155 请求?(参见上文)
- 预期行为是什么,出现的意外结果是什么?(例如:错误信息、日志等)
- 你是如何发出请求的?使用的是 cURL、SDK、HTTP 客户端、后端服务、前端服务、浏览器插件等?你是否尝试过其他方法来排除是否是特定 SDK 的问题?
- 如果可能,能否在 GitHub Gist 这样的代码片段中分享你的合约代码?
- 我们也非常感谢任何截图,但请同时粘贴任何钱包或交易哈希,以便更轻松地复制和复现问题。
当你准备好这些信息后,欢迎在 Berachain 官方的 Discord 服务器或 Telegram 群组中给我们发送消息。
下一步是什么?
从 Berachain Faucet 获取一些测试网 $BERA 代币,开始 BUIDL 吧!
❤️ 别忘了为这篇文章点个赞 👏🏼
原创文章,作者:Erica,如若转载,请注明出处:https://www.dappchaser.com/berachain-rpc-tutorial/
评论列表(2条)
如果准备自己运行测试网节点,一定要严格参考官方 GitHub 仓库里 beacon-kit/testing/networks/80084 里的配置文件。这个配置文件经常迭代,细节更新不会在文档里讲。
赞的~一看就是跑过节点的说出来的话~