مكتبة Solana Web3.js هي مكتبة JavaScript غنية بالميزات، وقد أصدرت مؤخرًا الإصدار 2.x. بالمقارنة مع الإصدار 1.x، هناك تغييرات كبيرة في الإصدار الجديد، وستقوم هذه المقالة بتلخيص التحديثات الرئيسية.
على الرغم من أن الإصدار 2.x تم إصداره مؤخرًا ولا يزال الاستخدام منخفضًا، إلا أن العديد من المكتبات المستخدمة على نطاق واسع لم يتم ترحيلها بعد، إلا أن فهم هذه التغييرات مسبقًا سيساعد في التحضير للترقيات المستقبلية.
مقارنة الإصدارات
الإصدار القديم كان سهل الاستخدام نسبياً، حيث كانت جميع الوظائف مركزة في حزمة @solana/web3.js، وقد تم تغليف العديد من العمليات الشائعة بناءً على تصميم قائم على الفئات. ومع ذلك، فإن هذا التصميم جلب أيضاً بعض المشاكل، مثل تنزيل المكتبة بأكملها على جهاز المستخدم، حتى عند استخدام جزء صغير جداً من الوظائف.
تم تقسيم مكتبة الشفرات في الإصدار 2.x إلى عدة وحدات صغيرة مثل @solana/accounts و @solana/codecs و @solana/rpc وغيرها. تخلت النسخة الجديدة عن التنفيذ القائم على الفئات وبدلاً من ذلك اعتمدت أكثر على الوظائف الفردية، مما يسهل تحسين بناء الشفرات في JavaScript. سيتم حذف الشفرات غير المستخدمة، ولن يتم تحميلها على أجهزة المستخدمين. وفقًا للإحصاءات الرسمية، فإن التطبيقات التي تستخدم النسخة الجديدة يمكن أن تحقق تحسينًا في الحجم بنسبة 30%.
يضع التصميم المعياري للإصدار الجديد مطالب أعلى على وثائق التطوير. حاليا ، تحتوي أسماء الوحدات النمطية على دلالات جيدة لمساعدة المطورين في العثور بسرعة على الميزات التي يحتاجونها. ومع ذلك ، منذ إصداره للتو ، لم يتم ترحيل العديد من المشاريع بعد ، وهناك أمثلة قليلة على ذلك.
تتمثل إحدى الميزات المهمة الأخرى للإصدار 2.x في عدم الاعتماد على أي شيء. قد لا تؤثر هذه الميزة كثيرًا على المستخدمين العاديين، لكنها مهمة جدًا من منظور الأمان. قرر فريق التطوير استخدام الميزات الأصلية بشكل أكبر، وإلغاء الاعتماد على الجهات الخارجية وإدخال Polyfills، من أجل تقليل مخاطر الأمان.
التغييرات الرئيسية
معالجة الاتصال
يتخذ الإصدار الجديد نهجا أكثر وظيفية للاتصال. على سبيل المثال، عند إرسال حركة، يتم إجراء طلب HTTPS تلقائيا ويتم إنشاء اتصال WSS، ويتم الاشتراك في حالة الحركة، ويتم إرجاع تجزئة الحركة بعد تأكيد الحركة.
إدارة مفتاح الزوج
لقد حدثت تغييرات كبيرة في وظائف المفاتيح العامة والخاصة. لم تعد الفئات Keypair و PublicKey المستخدمة بشكل شائع في الإصدار 1.x موجودة، وقد تم استبدالها ببعض الدوال. على سبيل المثال، يمكنك استخدام await generateKeyPair() لإنشاء زوج المفاتيح، بدلاً من Keypair.generate() السابقة.
التنفيذ الجديد يستفيد قدر الإمكان من واجهة برمجة تطبيقات Web Crypto الخاصة بـ JavaScript، باستخدام تنفيذ Ed25519 الأصلي. أدى ذلك إلى تحويل بعض الطرق إلى غير متزامنة، لكن بالنسبة للمطورين المألوفين بـ Promise، فإن ذلك ليس مشكلة كبيرة.
إرسال المعاملة
لم يعد هناك فئة Transaction و VersionedTransaction في الإصدار 2.x. لم تعد طرق System Program موجودة أيضًا ، ويجب استيرادها من وحدات أخرى.
تقدم النسخة الجديدة شكل pipe الشائع الاستخدام في البرمجة الوظيفية. على سبيل المثال، عند تنفيذ وظيفة تحويل الأموال، لم يعد يتم بدء المعاملات عبر Connection، بل يتم بدء المعاملات من خلال وظيفة معينة يتم إنشاؤها بواسطة مزود RPC المحدد. على الرغم من أن كمية الشيفرة قد زادت، إلا أنها توفر تخصيصًا أقوى.
من الجدير بالذكر أن مشروع @solana/web3.js يتضمن أيضًا مكتبة @solana/react، التي توفر بعض Hooks لـ React، وتحتوي على ميزات مثل signIn.
ملخص
أظهر إصدار النسخة 2.x من Solana Web3.js التزام فريق التطوير بالتحسين المستمر. تقدم النسخة الجديدة للمطورين طريقة تفاعل أكثر كفاءة ومرونة وقابلية للتخصيص مع شبكة Solana، مما يُتوقع أن يعزز اعتماد المنصة وتطورها.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 15
أعجبني
15
9
مشاركة
تعليق
0/400
ProbablyNothing
· 07-19 15:36
أخيرًا أصبحت سول تتصاعد
شاهد النسخة الأصليةرد0
GweiWatcher
· 07-18 09:24
الاتصال هو الملك!
شاهد النسخة الأصليةرد0
MoonBoi42
· 07-18 08:31
前排吃瓜 صاعد sol
شاهد النسخة الأصليةرد0
CryptoMotivator
· 07-17 01:02
أخيرًا انتظرت هذا التحديث!
شاهد النسخة الأصليةرد0
Anon32942
· 07-17 01:01
أخيرًا تم تحسينه ، يبدو أن ما كان سابقًا لم يكن جيدًا حقًا.
تحديثات كبيرة في إصدار Solana Web3.js 2.x: تصميم معياري يعزز الأداء والأمان
Solana Web3.js 2.x الإصدار: تقسيم وتحسين الوظائف
مكتبة Solana Web3.js هي مكتبة JavaScript غنية بالميزات، وقد أصدرت مؤخرًا الإصدار 2.x. بالمقارنة مع الإصدار 1.x، هناك تغييرات كبيرة في الإصدار الجديد، وستقوم هذه المقالة بتلخيص التحديثات الرئيسية.
على الرغم من أن الإصدار 2.x تم إصداره مؤخرًا ولا يزال الاستخدام منخفضًا، إلا أن العديد من المكتبات المستخدمة على نطاق واسع لم يتم ترحيلها بعد، إلا أن فهم هذه التغييرات مسبقًا سيساعد في التحضير للترقيات المستقبلية.
مقارنة الإصدارات
الإصدار القديم كان سهل الاستخدام نسبياً، حيث كانت جميع الوظائف مركزة في حزمة @solana/web3.js، وقد تم تغليف العديد من العمليات الشائعة بناءً على تصميم قائم على الفئات. ومع ذلك، فإن هذا التصميم جلب أيضاً بعض المشاكل، مثل تنزيل المكتبة بأكملها على جهاز المستخدم، حتى عند استخدام جزء صغير جداً من الوظائف.
تم تقسيم مكتبة الشفرات في الإصدار 2.x إلى عدة وحدات صغيرة مثل @solana/accounts و @solana/codecs و @solana/rpc وغيرها. تخلت النسخة الجديدة عن التنفيذ القائم على الفئات وبدلاً من ذلك اعتمدت أكثر على الوظائف الفردية، مما يسهل تحسين بناء الشفرات في JavaScript. سيتم حذف الشفرات غير المستخدمة، ولن يتم تحميلها على أجهزة المستخدمين. وفقًا للإحصاءات الرسمية، فإن التطبيقات التي تستخدم النسخة الجديدة يمكن أن تحقق تحسينًا في الحجم بنسبة 30%.
يضع التصميم المعياري للإصدار الجديد مطالب أعلى على وثائق التطوير. حاليا ، تحتوي أسماء الوحدات النمطية على دلالات جيدة لمساعدة المطورين في العثور بسرعة على الميزات التي يحتاجونها. ومع ذلك ، منذ إصداره للتو ، لم يتم ترحيل العديد من المشاريع بعد ، وهناك أمثلة قليلة على ذلك.
تتمثل إحدى الميزات المهمة الأخرى للإصدار 2.x في عدم الاعتماد على أي شيء. قد لا تؤثر هذه الميزة كثيرًا على المستخدمين العاديين، لكنها مهمة جدًا من منظور الأمان. قرر فريق التطوير استخدام الميزات الأصلية بشكل أكبر، وإلغاء الاعتماد على الجهات الخارجية وإدخال Polyfills، من أجل تقليل مخاطر الأمان.
التغييرات الرئيسية
معالجة الاتصال
يتخذ الإصدار الجديد نهجا أكثر وظيفية للاتصال. على سبيل المثال، عند إرسال حركة، يتم إجراء طلب HTTPS تلقائيا ويتم إنشاء اتصال WSS، ويتم الاشتراك في حالة الحركة، ويتم إرجاع تجزئة الحركة بعد تأكيد الحركة.
إدارة مفتاح الزوج
لقد حدثت تغييرات كبيرة في وظائف المفاتيح العامة والخاصة. لم تعد الفئات Keypair و PublicKey المستخدمة بشكل شائع في الإصدار 1.x موجودة، وقد تم استبدالها ببعض الدوال. على سبيل المثال، يمكنك استخدام await generateKeyPair() لإنشاء زوج المفاتيح، بدلاً من Keypair.generate() السابقة.
التنفيذ الجديد يستفيد قدر الإمكان من واجهة برمجة تطبيقات Web Crypto الخاصة بـ JavaScript، باستخدام تنفيذ Ed25519 الأصلي. أدى ذلك إلى تحويل بعض الطرق إلى غير متزامنة، لكن بالنسبة للمطورين المألوفين بـ Promise، فإن ذلك ليس مشكلة كبيرة.
إرسال المعاملة
لم يعد هناك فئة Transaction و VersionedTransaction في الإصدار 2.x. لم تعد طرق System Program موجودة أيضًا ، ويجب استيرادها من وحدات أخرى.
تقدم النسخة الجديدة شكل pipe الشائع الاستخدام في البرمجة الوظيفية. على سبيل المثال، عند تنفيذ وظيفة تحويل الأموال، لم يعد يتم بدء المعاملات عبر Connection، بل يتم بدء المعاملات من خلال وظيفة معينة يتم إنشاؤها بواسطة مزود RPC المحدد. على الرغم من أن كمية الشيفرة قد زادت، إلا أنها توفر تخصيصًا أقوى.
! سلسلة Web3 Starter: قم بالترقية @solana/web3.js 2.x الآن لتمكين البرمجة الوظيفية
React يدعم
من الجدير بالذكر أن مشروع @solana/web3.js يتضمن أيضًا مكتبة @solana/react، التي توفر بعض Hooks لـ React، وتحتوي على ميزات مثل signIn.
ملخص
أظهر إصدار النسخة 2.x من Solana Web3.js التزام فريق التطوير بالتحسين المستمر. تقدم النسخة الجديدة للمطورين طريقة تفاعل أكثر كفاءة ومرونة وقابلية للتخصيص مع شبكة Solana، مما يُتوقع أن يعزز اعتماد المنصة وتطورها.