طرق RPC لسولانا والتوثيق

تفاعل مع عقد سولانا مباشرة باستخدام واجهة برمجة تطبيقات JSON RPC عبر طرق HTTP و Websocket.

تكوين التزام الحالة

لعمليات فحص ما قبل الطيران ومعالجة المعاملات، تختار عقد سولانا حالة البنك التي يتم الاستعلام عنها بناءً على متطلب الالتزام الذي يحدده العميل. يصف الالتزام مدى نهائية الكتلة في تلك النقطة الزمنية. عند الاستعلام عن حالة دفتر الأستاذ، يُوصى باستخدام مستويات أقل من الالتزام للإبلاغ عن التقدم ومستويات أعلى لضمان عدم التراجع عن الحالة.

بترتيب تنازلي للالتزام (من الأكثر نهائية إلى الأقل نهائية)، يمكن للعملاء تحديد:

  • finalized - ستستعلم العقدة عن أحدث كتلة تم تأكيدها بواسطة الأغلبية العظمى من المجموعة على أنها وصلت إلى الحد الأقصى للإغلاق، مما يعني أن المجموعة قد اعترفت بهذه الكتلة كنهائية
  • confirmed - ستستعلم العقدة عن أحدث كتلة تم التصويت عليها من قبل الأغلبية العظمى من المجموعة.
    • وهي تتضمن الأصوات من النميمة وإعادة التشغيل.
    • لا تحسب الأصوات على أحفاد الكتلة، فقط الأصوات المباشرة على تلك الكتلة.
    • يدعم مستوى التأكيد هذا أيضًا ضمانات "التأكيد المتفائل" في الإصدار 1.3 وما بعده.
  • processed - ستستعلم العقدة عن أحدث كتلة لديها. لاحظ أن الكتلة قد لا تزال يتم تخطيها من قبل المجموعة.

لمعالجة العديد من المعاملات المترابطة في سلسلة، يُوصى باستخدام التزام confirmed، الذي يوازن بين السرعة وأمان التراجع. للأمان الكامل، يُوصى باستخدام التزام finalized.

الالتزام الافتراضي

إذا لم يتم توفير تكوين الالتزام، فإن العقدة ستستخدم التزام finalized افتراضيًا

فقط الطرق التي تستعلم عن حالة البنك تقبل معلمة الالتزام. وهي مشار إليها في مرجع واجهة برمجة التطبيقات أدناه.

بنية RpcResponse

العديد من الطرق التي تأخذ معلمة الالتزام تُرجع كائن JSON من نوع RpcResponse يتكون من جزأين:

  • context : بنية JSON من نوع RpcResponseContext تتضمن حقل slot الذي تم تقييم العملية عنده.
  • value : القيمة التي تُرجعها العملية نفسها.

الاستجابات المحللة

تدعم بعض الطرق معلمة encoding، ويمكنها إرجاع بيانات الحساب أو بيانات التعليمات في تنسيق JSON محلل إذا تم طلب "encoding":"jsonParsed" وكان لدى العقدة محلل للبرنامج المالك. تدعم عقد سولانا حاليًا تحليل JSON للبرامج الأصلية وبرامج SPL التالية:

البرنامجحالة الحسابالتعليمات
Address Lookupv1.15.0v1.15.0
BPF Loadern/astable
BPF Upgradeable Loaderstablestable
Configstable
SPL Associated Token Accountn/astable
SPL Memon/astable
SPL Tokenstablestable
SPL Token 2022stablestable
Stakestablestable
Votestablestable

يمكن العثور على قائمة محللات الحسابات هنا، ومحللات التعليمات هنا.

معايير التصفية

تدعم بعض الطرق توفير كائن filters لتمكين التصفية المسبقة للبيانات التي يتم إرجاعها داخل كائن JSON من نوع RpcResponse. توجد عوامل التصفية التالية:

  • memcmp: object - يقارن سلسلة البايتات المقدمة مع بيانات حساب البرنامج عند إزاحة معينة. الحقول:

    • offset: usize - الإزاحة في بيانات حساب البرنامج لبدء المقارنة
    • bytes: string - البيانات المراد مطابقتها، كسلسلة مشفرة
    • encoding: string - ترميز لبيانات الفلتر bytes، إما "base58" أو "base64". البيانات محدودة الحجم إلى 128 بايت مفكوك التشفير أو أقل.
      جديد: هذا الحقل، ودعم base64 بشكل عام، متاح فقط في solana-core الإصدار 1.14.0 أو أحدث. يرجى حذفه عند الاستعلام من العقد على الإصدارات السابقة
  • dataSize: u64 - يقارن طول بيانات حساب البرنامج مع حجم البيانات المقدم

Is this page helpful?

جدول المحتويات

تعديل الصفحة