Solana Web3.js 2.x: إعادة بناء معيارية وتحسين الأداء

Solana Web3.js 2.x: تقسيم الميزات وتحسين الأداء

تم إصدار Solana Web3.js ك مكتبة JavaScript غنية بالميزات في نوفمبر من هذا العام بإصدار 2.x. مقارنةً بإصدار 1.x، شهد الإصدار الجديد تغييرات ملحوظة في الهيكل وطريقة التنفيذ. سيوفر هذا المقال ملخصًا لهذه التغييرات الرئيسية لمساعدة المطورين في الاستعداد للانتقال في المستقبل.

Web3 مبتدئين السلسلة: الآن ترقية @solana/web3.js 2.x لفتح البرمجة الوظيفية

مقارنة الإصدارات

النسخة 1.x تتميز بأنها بسيطة وسهلة الاستخدام. إنها تحتوي فقط على حزمة واحدة @solana/web3.js، وتعتمد على تصميم قائم على الفئات، مما يتيح تغليف عدد كبير من العمليات الشائعة. على سبيل المثال، توفر فئة Connection عشرات الطرق، والتي تغطي تقريبًا جميع الوظائف التي يحتاجها المطورون. ومع ذلك، فإن هذا التصميم يجلب أيضًا بعض المشكلات، مثل حجم المكتبة الكبير، حيث يحتاج جهاز المستخدم إلى تنزيل كمية كبيرة من الشفرات التي قد لا تُستخدم.

تبنت النسخة 2.x استراتيجية مختلفة. قامت فريق التطوير بتقسيم قاعدة الشيفرة إلى عدة وحدات صغيرة، مثل @solana/accounts و @solana/codecs و @solana/rpc وما إلى ذلك. النسخة الجديدة تخلت عن التنفيذ القائم على الفئات، وانتقلت إلى طريقة دالة واحدة، مما يساعد على تحسين بناء الشيفرة في JavaScript. سيتم حذف الشيفرة غير المستخدمة، ولن يتم تحميلها على أجهزة المستخدمين. وفقًا للإحصائيات الرسمية، فإن استخدام النسخة الجديدة من DApp عادةً ما يمكن أن يحقق تحسينًا في الحجم بنسبة 30%، وإذا تم استخدام عدد قليل من الميزات، يمكن أن تكون نسبة التحسين أعلى.

الخاصية المهمة الأخرى في الإصدار 2.x هي عدم الاعتماد على أي شيء. نظرًا للهجمات التي وقعت مؤخرًا على الإصدارات 1.95.5 و 1.95.6 في سلسلة التوريد، فإن تقليل الاعتماد الخارجي يمكن أن يقلل بشكل كبير من المخاطر الأمنية. الإصدار الجديد يستخدم المزيد من الوظائف الأصلية، ويُلغي الاعتماد الخارجي وإدخال Polyfills.

نقاط التغيير الهامة

الاتصال

تمتلك النسخة 2.x طريقة أكثر وظيفية للتعامل مع الاتصالات. لم يعد يتم استخدام فئة Connection، بل يتم إنشاء مرسل الطلبات عن طريق تكوين عنوان طلب RPC. على سبيل المثال، عند إرسال صفقة، سيتم تلقائيًا بدء طلب HTTPS وإنشاء اتصال WSS للاشتراك في حالة الصفقة.

زوج المفاتيح

تغيرت معالجة المفاتيح العامة والخاصة أيضًا. تم استبدال الفئات الشائعة الاستخدام Keypair و PublicKey في الإصدار 1.x ببعض الدوال. على سبيل المثال، يتم الآن استخدام await generateKeyPair() لإنشاء زوج المفاتيح بدلاً من Keypair.generate() السابقة. تستفيد التنفيذات الجديدة من واجهة برمجة تطبيقات Web Crypto في JavaScript، حيث تستخدم تنفيذ Ed25519 الأصلي، مما أدى إلى تحول بعض الطرق إلى غير متزامنة.

إرسال الصفقة

لم يعد يتم استخدام فئتي Transaction و VersionedTransaction في الإصدار 2.x. كما يجب استيراد طرق برنامج النظام من أماكن أخرى. على سبيل المثال، تتطلب تعليمات النقل الآن استدعاء دالة getTransferSolInstruction من @solana-program/system.

تقدم النسخة الجديدة شكل pipe المستخدم بشكل شائع في البرمجة الوظيفية. يمكن للمطورين استخدام دالة pipe لتنفيذ وظيفة التحويل التي كانت موجودة في النسخة 1.x. على الرغم من زيادة كمية الشيفرة، إلا أنها توفر قابلية تخصيص أقوى.

دعم React

من الجدير بالذكر أن مشروع @solana/web3.js يتضمن أيضًا مكتبة تُدعى @solana/react، والتي توفر بعض React Hook، وتحتوي على ميزات مثل signIn.

ملخص

إصدار النسخة 2.x من Solana Web3.js يظهر التزام الفريق المطور بتحسين مستمر. توفر النسخة الجديدة للمطورين وسيلة أكثر كفاءة ومرونة وقابلية للتخصيص للتفاعل مع شبكة Solana، مما يُتوقع أن يدفع نحو مزيد من التطور والتطبيق للمنصة. على الرغم من أن العديد من المشاريع لم تنتقل بعد إلى النسخة الجديدة، إلا أن فهم هذه التغييرات سيساعد المطورين في الاستعداد للتحويلات المستقبلية.

Web3 سلسلة المبتدئين: الآن ترقية @solana/web3.js 2.x لفتح البرمجة الوظيفية

SOL-4.23%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 5
  • مشاركة
تعليق
0/400
StablecoinArbitrageurvip
· 07-30 14:36
*يعدل نظارته* همم... بناءً على تحليل مؤشرات أدائي، يجب أن يؤدي تقسيمها إلى وحدات إلى تقليل وقت الإستجابة بنسبة ~47 نقطة أساس
شاهد النسخة الأصليةرد0
MissingSatsvip
· 07-30 14:34
أخيرًا انتظرت الترقية لقد انتظرت عامًا
شاهد النسخة الأصليةرد0
LucidSleepwalkervip
· 07-30 14:34
2.x قد جاء، لم أعد قادرًا على التعلم.
شاهد النسخة الأصليةرد0
DuckFluffvip
· 07-30 14:27
ها، لا زلت تستخدم الإصدار 1.x، يجب عليك الترقية.
شاهد النسخة الأصليةرد0
BrokenYieldvip
· 07-30 14:15
أخيرًا بعض إدارة المخاطر في سول... لقد استغرقوا وقتًا طويلاً smh
شاهد النسخة الأصليةرد0
  • تثبيت