Solana Web3.js 2.x إصدار: عصر البرمجة الوظيفية الجديد
تم إطلاق إصدار 2.x لمكتبة Solana Web3.js في نوفمبر من هذا العام، مقارنة بالإصدار 1.x، حيث قدم الإصدار الجديد تغييرات كبيرة. ستقدم هذه المقالة نظرة عامة على التغييرات الرئيسية، مما يساعد المطورين في التحضير لعمليات الانتقال المستقبلية.
مقارنة الإصدارات
على الرغم من أن الإصدار 1.x سهل الاستخدام، إلا أنه يحتوي على بعض المشكلات. فهو يجمع جميع الميزات في حزمة واحدة، مما يعني أنه حتى لو استخدم المطورون عددًا قليلاً من الميزات، فإنهم يحتاجون إلى تحميل المكتبة بالكامل. وهذا لا يزيد فقط من وقت التحميل، بل قد يؤثر أيضًا على تجربة المستخدم.
تم تصميم الإصدار 2.x بشكل مُعدَّل، حيث تم تقسيم مكتبة الأكواد الأصلية إلى عدة وحدات صغيرة مثل @solana/accounts و @solana/codecs. في الوقت نفسه، تخلت النسخة الجديدة عن التنفيذ القائم على الفئات، وانتقلت إلى استخدام وظيفة واحدة. تساعد هذه التصميمات في تحسين بناء كود JavaScript، حيث سيتم حذف الأكواد غير المستخدمة، ولن يتم تحميلها على أجهزة المستخدمين. وفقًا للبيانات الرسمية، فإن استخدام النسخة الجديدة من DApp يمكن أن يحقق عادةً تحسينًا في حجم الكود بنسبة 30٪، وفي بعض الحالات قد تكون النسبة أعلى.
ومع ذلك، فإن التصميم المعياري الجديد للنسخة قد فرض متطلبات أعلى على وثائق فريق Solana. كيف نساعد المطورين في تحديد الوظائف المطلوبة بسرعة أصبح سؤالًا رئيسيًا. حاليًا، تتمتع أسماء الوحدات المختلفة بدلالة جيدة، مما يقلل إلى حد ما من صعوبة انتقال المطورين.
من المهم الإشارة إلى أن الإصدار 2.x قد حقق عدم الاعتماد على أي شيء. نظرًا للهجمات التي حدثت مؤخرًا في الإصدارين 1.95.5 و1.95.6 على سلسلة التوريد، فإن تقليل الاعتماد الخارجي يزيد بلا شك من أمان المكتبة.
نقاط التغيير المهمة
الاتصال
يعتمد الإصدار 2.x على نهج أكثر وظيفية لمعالجة الاتصالات. يقوم الإصدار الجديد بإنشاء مرسل طلبات من خلال تكوين عنوان طلب RPC، ثم يستخدم هذا المرسل لبدء أنواع مختلفة من الطلبات.
زوج المفاتيح
حدثت تغييرات كبيرة في معالجة المفاتيح العامة والخاصة. تم استبدال الفئات الشائعة الاستخدام Keypair و PublicKey في الإصدار 1.x بمجموعة من الدوال. على سبيل المثال، يمكن الآن استخدام await generateKeyPair() لتوليد أزواج المفاتيح، بدلاً من Keypair.generate() السابقة. تُرجع الطريقة الجديدة Promise، وذلك لأنها تستخدم واجهة برمجة تطبيقات Web Crypto الخاصة بـ JavaScript، مع الاستفادة من تنفيذ Ed25519 الأصلي.
إرسال الصفقة
لا تستخدم إصدارات 2.x فئات Transaction و VersionedTransaction بعد الآن. تم إزالة طرق برنامج النظام ذات الصلة، ويجب استيرادها من مكان آخر. على سبيل المثال، تتطلب تعليمات transfer الآن استدعاء دالة getTransferSolInstruction في @solana-program/system.
الإصدار الجديد يوفر شكل pipe الشائع الاستخدام في البرمجة الوظيفية. على سبيل المثال، يمكن تحقيق وظيفة التحويل التي كانت موجودة في الإصدار 1.x من خلال دالة pipe. من الجدير بالذكر أن الطريقة الجديدة تعتمد أكثر على WSS، مما يضع متطلبات أعلى على استقرار خدمات مزودي RPC.
دعم React
@solana/web3.js المشروع يتضمن أيضًا مكتبة @solana/react، التي توفر بعض React Hook وتحتوي على ميزات مثل signIn.
ملخص
إصدار النسخة 2.x من Solana Web3.js يظهر التزام فريق Solana بالتحسين المستمر. توفر النسخة الجديدة للمطورين وسيلة تفاعل أكثر كفاءة ومرونة وقابلة للتخصيص مع شبكة Solana، مما يعزز الأمل في دفع تطوير النظام الأساسي واستخدامه إلى الأمام.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
ترقية كبيرة في Solana Web3.js 2.x: تصميم معياري يعزز الأداء والأمان
Solana Web3.js 2.x إصدار: عصر البرمجة الوظيفية الجديد
تم إطلاق إصدار 2.x لمكتبة Solana Web3.js في نوفمبر من هذا العام، مقارنة بالإصدار 1.x، حيث قدم الإصدار الجديد تغييرات كبيرة. ستقدم هذه المقالة نظرة عامة على التغييرات الرئيسية، مما يساعد المطورين في التحضير لعمليات الانتقال المستقبلية.
مقارنة الإصدارات
على الرغم من أن الإصدار 1.x سهل الاستخدام، إلا أنه يحتوي على بعض المشكلات. فهو يجمع جميع الميزات في حزمة واحدة، مما يعني أنه حتى لو استخدم المطورون عددًا قليلاً من الميزات، فإنهم يحتاجون إلى تحميل المكتبة بالكامل. وهذا لا يزيد فقط من وقت التحميل، بل قد يؤثر أيضًا على تجربة المستخدم.
تم تصميم الإصدار 2.x بشكل مُعدَّل، حيث تم تقسيم مكتبة الأكواد الأصلية إلى عدة وحدات صغيرة مثل @solana/accounts و @solana/codecs. في الوقت نفسه، تخلت النسخة الجديدة عن التنفيذ القائم على الفئات، وانتقلت إلى استخدام وظيفة واحدة. تساعد هذه التصميمات في تحسين بناء كود JavaScript، حيث سيتم حذف الأكواد غير المستخدمة، ولن يتم تحميلها على أجهزة المستخدمين. وفقًا للبيانات الرسمية، فإن استخدام النسخة الجديدة من DApp يمكن أن يحقق عادةً تحسينًا في حجم الكود بنسبة 30٪، وفي بعض الحالات قد تكون النسبة أعلى.
ومع ذلك، فإن التصميم المعياري الجديد للنسخة قد فرض متطلبات أعلى على وثائق فريق Solana. كيف نساعد المطورين في تحديد الوظائف المطلوبة بسرعة أصبح سؤالًا رئيسيًا. حاليًا، تتمتع أسماء الوحدات المختلفة بدلالة جيدة، مما يقلل إلى حد ما من صعوبة انتقال المطورين.
من المهم الإشارة إلى أن الإصدار 2.x قد حقق عدم الاعتماد على أي شيء. نظرًا للهجمات التي حدثت مؤخرًا في الإصدارين 1.95.5 و1.95.6 على سلسلة التوريد، فإن تقليل الاعتماد الخارجي يزيد بلا شك من أمان المكتبة.
نقاط التغيير المهمة
الاتصال
يعتمد الإصدار 2.x على نهج أكثر وظيفية لمعالجة الاتصالات. يقوم الإصدار الجديد بإنشاء مرسل طلبات من خلال تكوين عنوان طلب RPC، ثم يستخدم هذا المرسل لبدء أنواع مختلفة من الطلبات.
زوج المفاتيح
حدثت تغييرات كبيرة في معالجة المفاتيح العامة والخاصة. تم استبدال الفئات الشائعة الاستخدام Keypair و PublicKey في الإصدار 1.x بمجموعة من الدوال. على سبيل المثال، يمكن الآن استخدام await generateKeyPair() لتوليد أزواج المفاتيح، بدلاً من Keypair.generate() السابقة. تُرجع الطريقة الجديدة Promise، وذلك لأنها تستخدم واجهة برمجة تطبيقات Web Crypto الخاصة بـ JavaScript، مع الاستفادة من تنفيذ Ed25519 الأصلي.
إرسال الصفقة
لا تستخدم إصدارات 2.x فئات Transaction و VersionedTransaction بعد الآن. تم إزالة طرق برنامج النظام ذات الصلة، ويجب استيرادها من مكان آخر. على سبيل المثال، تتطلب تعليمات transfer الآن استدعاء دالة getTransferSolInstruction في @solana-program/system.
الإصدار الجديد يوفر شكل pipe الشائع الاستخدام في البرمجة الوظيفية. على سبيل المثال، يمكن تحقيق وظيفة التحويل التي كانت موجودة في الإصدار 1.x من خلال دالة pipe. من الجدير بالذكر أن الطريقة الجديدة تعتمد أكثر على WSS، مما يضع متطلبات أعلى على استقرار خدمات مزودي RPC.
دعم React
@solana/web3.js المشروع يتضمن أيضًا مكتبة @solana/react، التي توفر بعض React Hook وتحتوي على ميزات مثل signIn.
ملخص
إصدار النسخة 2.x من Solana Web3.js يظهر التزام فريق Solana بالتحسين المستمر. توفر النسخة الجديدة للمطورين وسيلة تفاعل أكثر كفاءة ومرونة وقابلة للتخصيص مع شبكة Solana، مما يعزز الأمل في دفع تطوير النظام الأساسي واستخدامه إلى الأمام.