Beerus 是一个 Starknet Light 客户端,受到 Helios 的启发并使用它。
2024 年初,Eiger 接管了 Beerus 存储库的所有权和该项目的领导权。 Beerus 由 Starkware 探索团队发起,我们感谢他们的信任和所做的出色工作。
我们的目标之一是将 Beerus 集成到基于网络的钱包中,使用户能够无缝切换到轻客户端模式。对于那些不想依赖不受信任的 RPC 提供商的人来说,这种转变至关重要,这是实现去信任操作的关键一步。
我们在 Telegram 频道上发布开发更新
从etc/conf/beerus.toml
复制配置文件并在副本中设置 RPC 提供程序 URL。确保提供商兼容。在这里阅读有关提供商的更多信息
然后运行:
cargo run --release -- -c ./path/to/config.toml
一旦 Beerus 开始验证其是否已启动并运行,请尝试以下请求:
curl -H 'Content-type: application/json' -d'{
"jsonrpc": "2.0",
"method": "starknet_getStateRoot",
"params": [],
"id": 1
}' http://127.0.0.1:3030
成功的结果应类似于以下内容:
{"jsonrpc":"2.0","result":"0x539895aff28be4958188c1d4e8e68ee6772bdd49dd9362a4fbb189e61c54ff1","id":1}
场地 | 例子 | 描述 |
---|---|---|
以太坊rpc | https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY} | 不受信任的 L1 节点提供商 url |
斯塔克网络rpc | https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} | 不受信任的 L2 节点提供商 url |
数据目录 | tmp | 用于存储 L1 和 L2 数据的OPTIONAL 位置 |
轮询秒数 | 5 | 等待查询 sn 状态的OPTIONAL 秒数,最小值 = 1,最大值 = 3600 |
rpc_地址 | 127.0.0.1:3030 | 用于侦听 rpc 请求的OPTIONAL 本地地址 |
选择网络时,请检查ethereum_rpc
和starknet_rpc
url 是否也指向其相应的网络。例如:
主网
ethereum_rpc = "https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY}"
starknet_rpc = "https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY}"
塞波利亚
ethereum_rpc = "https://eth-sepolia.g.alchemy.com/v2/{YOUR_API_KEY}"
starknet_rpc = "https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY}"
Beerus 依赖于两个不受信任的 RPC 端点,一个用于 L1(以太坊),一个用于 L2(Starknet)。由于这些节点不受信任,因此它们通常不是在本地主机或本地网络上运行的节点。
Beerus 预计提供 Starknet OpenRPC 规范 v0.7.1 服务。
Starknet RPC 提供程序还必须支持 Pathfinder 的扩展 API pathfinder_getProof
端点。
您可以通过运行以下命令检查提供程序是否兼容:
# This is an example RPC url. Use your RPC provider url to check if the node is compatible.
STARKNET_RPC_URL= " https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} "
curl --request POST
--url $STARKNET_RPC_URL
--header ' content-type: application/json '
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "pathfinder_getProof",
"params": [
{
"block_number": 56072
},
"0x07cb0dca5767f238b056665d2f8350e83a2dee7eac8ec65e66bbc790a4fece8a",
[
"0x01d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"
]
]
}
'
如果您收到类似于以下内容的响应,则表明提供商不兼容。
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32601,
"message": "method 'pathfinder_getProof' not found"
}
}
我们建议使用以下提供商之一:
可以在这里找到更多 API 提供商。
对于以太坊 RPC 提供商来说,没有特殊要求。提供商必须支持以太坊 JSON-RPC 规范
注意:我们依赖 helios 来获取有效的检查点值和共识 RPC URL
cargo build --release
cargo test
# # Run integration tests against live endpoint
export STARKNET_MAINNET_URL=https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/ ${ALCHEMY_API_KEY}
export STARKNET_SEPOLIA_URL=https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/ ${ALCHEMY_API_KEY}
BEERUS_TEST_RUN=1 cargo test
docker build . -t beerus
docker run -e ETHEREUM_RPC= < arg > -e STARKNET_RPC= < arg > -it beerus
ALCHEMY_API_KEY= ' YOURAPIKEY ' cargo run --release --example call
ALCHEMY_API_KEY= ' YOURAPIKEY ' cargo run --release --example state
Beerus 遵循良好的安全实践,但不能保证 100% 的安全。 Beerus按“原样”提供,没有任何保证。使用风险自负。