Beerus は、Helios からインスピレーションを得て使用している Starknet ライト クライアントです。
2024 年の初めに、Eiger が Beerus リポジトリの所有権とプロジェクトのリーダーシップを引き継ぎました。 Beerus は Starkware Exploration Team によって設立され、私たちは彼らの信頼と彼らが行った素晴らしい仕事に感謝しています。
私たちの目標の 1 つは、Beerus を Web ベースのウォレットに統合し、ユーザーがライト クライアント モードにシームレスに切り替えられるようにすることです。この移行は、信頼できない 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 |
データディレクトリ | 一時 | L1 データと L2 データの両方を保存するためのOPTIONAL 場所 |
ポーリング秒数 | 5 | SN 状態のクエリを待機するOPTIONAL 秒数、最小 = 1、最大 = 3600 |
rpc_addr | 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 は、L1 (Ethereum) 用と L2 (Starknet) 用の 2 つの信頼できない RPC エンドポイントに依存しています。これらは信頼されていないため、通常はローカル ホストまたはローカル ネットワーク上で実行されるノードではありません。
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 プロバイダーについては、こちらをご覧ください。
Ethereum RPC プロバイダーの場合、特別な要件はありません。プロバイダーは Ethereum JSON-RPC 仕様をサポートする必要があります
注: 有効なチェックポイント値とコンセンサス RPC URL の両方を helios に依存しています。
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 は、いかなる保証もなく「現状のまま」提供されます。ご自身の責任でご使用ください。