طرق 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 Lookup | v1.15.0 | v1.15.0 |
BPF Loader | n/a | stable |
BPF Upgradeable Loader | stable | stable |
Config | stable | |
SPL Associated Token Account | n/a | stable |
SPL Memo | n/a | stable |
SPL Token | stable | stable |
SPL Token 2022 | stable | stable |
Stake | stable | stable |
Vote | stable | stable |
يمكن العثور على قائمة محللات الحسابات هنا، ومحللات التعليمات هنا.
معايير التصفية
تدعم بعض الطرق توفير كائن 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?