หน้าแรก>การเขียนโปรแกรมที่เกี่ยวข้อง>ซอร์สโค้ดอื่น ๆ

การปรับปรุงโครงการ

เมื่อต้นปี 2024 Eiger เข้ามาเป็นเจ้าของพื้นที่เก็บข้อมูล Beerus และเป็นผู้นำของโครงการ Beerus เริ่มต้นโดยทีม Starkware Exploration Team และเรารู้สึกขอบคุณสำหรับความไว้วางใจและผลงานที่ยอดเยี่ยมที่พวกเขาได้ทำ

หนึ่งในเป้าหมายของเราคือการรวม Beerus เข้ากับกระเป๋าเงินบนเว็บ ทำให้ผู้ใช้สามารถสลับไปใช้โหมดไคลเอนต์แบบเบาได้อย่างราบรื่น การเปลี่ยนแปลงนี้มีความสำคัญอย่างยิ่งสำหรับผู้ที่ไม่ต้องการพึ่งพาผู้ให้บริการ RPC ที่ไม่น่าเชื่อถือ ซึ่งเป็นขั้นตอนสำคัญในการดำเนินงานที่ไร้ความน่าเชื่อถือ

เราโพสต์การอัปเดตการพัฒนาในช่อง Telegram

เริ่มต้นใช้งาน

วิ่ง Beerus เป็นครั้งแรก

คัดลอกไฟล์การกำหนดค่าจาก 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}"

ผู้ให้บริการ RPC

Beerus อาศัยจุดสิ้นสุด RPC ที่ไม่น่าเชื่อถือสองจุด หนึ่งจุดสำหรับ L1 (Ethereum) และอีกจุดหนึ่งสำหรับ L2 (Starknet) เนื่องจากสิ่งเหล่านี้ไม่น่าเชื่อถือ โดยทั่วไปแล้วจะไม่ใช่โหนดที่ทำงานบนโฮสต์ในพื้นที่ของคุณหรือเครือข่ายท้องถิ่นของคุณ

จุดสิ้นสุด Starknet RPC

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 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 มีให้ "ตามสภาพ" โดยไม่มี การรับประกัน ใดๆ ใช้ความเสี่ยงของคุณเอง

ขยาย
ข้อมูลเพิ่มเติม