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以「現況」提供,沒有任何保證。使用風險自負。