الصفحة الرئيسية>المتعلقة بالبرمجة>شفرة المصدر الأخرى

تحديثات المشروع

وفي بداية عام 2024، استحوذت شركة Eiger على ملكية مستودع Beerus وقيادة المشروع. تم إنشاء Beerus بواسطة فريق Starkware Exploration ونحن ممتنون لثقتهم والعمل الممتاز الذي قاموا به.

أحد أهدافنا هو دمج 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 com.tmp موقع 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 تقديم الإصدار 0.7.1 من مواصفات Starknet OpenRPC.

يجب أن يدعم موفر Starknet RPC أيضًا نقطة نهاية API الخاصة بامتداد Pathfinder 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"
  }
}

نوصي باستخدام أحد مقدمي الخدمة هؤلاء:

يمكن العثور على المزيد من موفري واجهة برمجة التطبيقات هنا.

نقطة نهاية 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 "كما هو" دون أي ضمان . استخدم على مسؤوليتك الخاصة.

يوسع
معلومات إضافية