تحديث Solana Web3.js 2.x: تصميم معياري يعزز الأداء والأمان

robot
إنشاء الملخص قيد التقدم

تحديث إصدار Solana Web3.js 2.x: احتضان البرمجة الوظيفية

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

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

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

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

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

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

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

اتصال

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

زوج المفاتيح

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

إرسال المعاملة

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

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

دعم React

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

ملخص

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

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

SOL1.6%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 5
  • إعادة النشر
  • مشاركة
تعليق
0/400
DiamondHandsvip
· 07-27 11:54
أخيرًا وصل v2 لـ sol
شاهد النسخة الأصليةرد0
GasGrillMastervip
· 07-26 04:37
اعتماد صفر بالكامل؟ أود أن أرى ذلك
شاهد النسخة الأصليةرد0
GweiObservervip
· 07-24 21:40
سولانا أخيرًا على الطريق
شاهد النسخة الأصليةرد0
ThreeHornBlastsvip
· 07-24 21:22
سولانا أخيرًا أعطت قوة مرة واحدة!
شاهد النسخة الأصليةرد0
PretendingSeriousvip
· 07-24 21:20
هذا التحديث أخيراً جاء، احسب أنك ذكي.
شاهد النسخة الأصليةرد0
  • تثبيت