طرق HTTP لواجهة برمجة التطبيقات RPC لسولانا
تقبل عقد سولانا طلبات HTTP باستخدام مواصفات JSON-RPC 2.0.
بالنسبة لتطبيقات JavaScript، استخدم مكتبة @solana/web3.js كواجهة مناسبة لطرق RPC للتفاعل مع عقدة سولانا. للاتصال بواسطة PubSub بعقدة سولانا، استخدم واجهة برمجة تطبيقات Websocket.
نقطة نهاية HTTP RPC
المنفذ الافتراضي: 8899
تنسيق الطلب
لإرسال طلب JSON-RPC، أرسل طلب HTTP POST مع رأس Content-Type: application/json
.
يجب أن تحتوي بيانات طلب JSON على 4 حقول:
jsonrpc: <string>
- يتم تعيينه إلى"2.0"
id: <string | number | null>
- معرف فريد للطلب، يتم إنشاؤه بواسطة العميل. عادة ما يكون سلسلة نصية أو رقمًا، على الرغم من أن القيمة null مسموح بها تقنيًا ولكن لا ينصح بهاmethod: <string>
- سلسلة نصية تحتوي على الطريقة المراد استدعاؤهاparams: <array>
- مصفوفة JSON من قيم المعلمات المرتبة
مثال باستخدام curl:
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","id": 1,"method": "getBalance","params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"]}'
سيكون إخراج الاستجابة كائن JSON مع الحقول التالية:
jsonrpc: <string>
- مطابق لمواصفات الطلبid: <number>
- مطابق لمعرف الطلبresult: <array|number|object|string>
- البيانات المطلوبة أو تأكيد النجاح
يمكن إرسال الطلبات في دفعات عن طريق إرسال مصفوفة من كائنات طلب JSON-RPC كبيانات لطلب POST واحد.
مثال على الطلب
يجب تضمين معلمة الالتزام كآخر عنصر في مصفوفة params
:
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","id": 1,"method": "getBalance","params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",{"commitment": "finalized"}]}'
التعريفات
- التجزئة (Hash): تجزئة SHA-256 لقطعة من البيانات.
- المفتاح العام (Pubkey): المفتاح العام لزوج مفاتيح Ed25519.
- المعاملة (Transaction): قائمة من تعليمات سولانا موقعة بواسطة زوج مفاتيح العميل للتصريح بتلك الإجراءات.
- التوقيع (Signature): توقيع Ed25519 لبيانات حمولة المعاملة بما في ذلك التعليمات. يمكن استخدام هذا لتحديد المعاملات.
فحص الصحة
على الرغم من أنها ليست واجهة برمجة تطبيقات JSON RPC، إلا أن طلب GET /health
في
نقطة نهاية HTTP RPC يوفر آلية فحص الصحة للاستخدام من قبل موازنات التحميل أو
غيرها من البنية التحتية للشبكة. سيعيد هذا الطلب دائمًا استجابة HTTP 200 OK مع نص
"ok" أو "behind" أو "unknown":
ok
: العقدة ضمنHEALTH_CHECK_SLOT_DISTANCE
slot من آخر slot مؤكد في الشبكةbehind { distance }
: العقدة متأخرة بـdistance
slot عن آخر slot مؤكد في الشبكة حيثdistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: العقدة غير قادرة على تحديد موقعها بالنسبة للشبكة
Is this page helpful?