Beerus เป็นไคลเอนต์ Starknet Light ที่ได้รับแรงบันดาลใจจากและใช้ Helios
เมื่อต้นปี 2024 Eiger เข้ามาเป็นเจ้าของพื้นที่เก็บข้อมูล Beerus และเป็นผู้นำของโครงการ Beerus เริ่มต้นโดยทีม Starkware Exploration Team และเรารู้สึกขอบคุณสำหรับความไว้วางใจและผลงานที่ยอดเยี่ยมที่พวกเขาได้ทำ
หนึ่งในเป้าหมายของเราคือการรวม Beerus เข้ากับกระเป๋าเงินบนเว็บ ทำให้ผู้ใช้สามารถสลับไปใช้โหมดไคลเอนต์แบบเบาได้อย่างราบรื่น การเปลี่ยนแปลงนี้มีความสำคัญอย่างยิ่งสำหรับผู้ที่ไม่ต้องการพึ่งพาผู้ให้บริการ RPC ที่ไม่น่าเชื่อถือ ซึ่งเป็นขั้นตอนสำคัญในการดำเนินงานที่ไร้ความน่าเชื่อถือ
เราโพสต์การอัปเดตการพัฒนาในช่อง Telegram
คัดลอกไฟล์การกำหนดค่าจาก etc/conf/beerus.toml
และตั้งค่า URL ของผู้ให้บริการ RPC ในการคัดลอก ตรวจสอบให้แน่ใจว่าผู้ให้บริการเข้ากันได้ อ่านเพิ่มเติมเกี่ยวกับผู้ให้บริการที่นี่
จากนั้นเรียกใช้:
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}
สนาม | ตัวอย่าง | คำอธิบาย |
---|---|---|
ethereum_rpc | https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY} | URL ผู้ให้บริการโหนด L1 ที่ไม่น่าเชื่อถือ |
starknet_rpc | https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} | URL ผู้ให้บริการโหนด L2 ที่ไม่น่าเชื่อถือ |
data_dir | ทีเอ็มพี | ตำแหน่ง OPTIONAL เพื่อจัดเก็บข้อมูลทั้ง L1 และ L2 |
poll_secs | 5 | OPTIONAL วินาทีเพื่อรอการสืบค้นสถานะ sn ต่ำสุด = 1 และสูงสุด = 3600 |
rpc_addr | 127.0.0.1:3030 | ที่อยู่ในพื้นที่ OPTIONAL เพื่อรับฟังคำขอ rpc |
เมื่อคุณเลือกเครือข่าย ให้ตรวจสอบว่า URL ของ ethereum_rpc
และ starknet_rpc
ชี้ไปที่เครือข่ายที่เกี่ยวข้องด้วย ตัวอย่างเช่น:
เมนเน็ต
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 (Ethereum) และอีกจุดหนึ่งสำหรับ L2 (Starknet) เนื่องจากสิ่งเหล่านี้ไม่น่าเชื่อถือ โดยทั่วไปแล้วจะไม่ใช่โหนดที่ทำงานบนโฮสต์ในพื้นที่ของคุณหรือเครือข่ายท้องถิ่นของคุณ
Beerus คาดว่าจะให้บริการ v0.7.1 ของข้อกำหนด Starknet OpenRPC
ผู้ให้บริการ Starknet RPC ต้องสนับสนุนจุดสิ้นสุด API ส่วนขยาย pathfinder_getProof
ของ Pathfinder ด้วย
คุณสามารถตรวจสอบว่าผู้ให้บริการเข้ากันได้หรือไม่โดยรันคำสั่งนี้:
# 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
หมายเหตุ: เราอาศัย helios สำหรับทั้งค่าจุดตรวจสอบที่ถูกต้องและ URL rpc ที่เป็นเอกฉันท์
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 มีให้ "ตามสภาพ" โดยไม่มี การรับประกัน ใดๆ ใช้ความเสี่ยงของคุณเอง