ホーム>プログラミング関連>その他のソースコード

プロジェクトの更新情報

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}"

RPC プロバイダー

Beerus は、L1 (Ethereum) 用と L2 (Starknet) 用の 2 つの信頼できない RPC エンドポイントに依存しています。これらは信頼されていないため、通常はローカル ホストまたはローカル ネットワーク上で実行されるノードではありません。

Starknet 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 プロバイダーについては、こちらをご覧ください。

イーサリアム RPC エンドポイント

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 は、いかなる保証もなく「現状のまま」提供されます。ご自身の責任でご使用ください。

拡大する
追加情報