تم إصدار نسخة 2.x من Solana Web3.js رسميًا في نوفمبر من هذا العام، حيث جلبت النسخة الجديدة تغييرات كبيرة مقارنةً بالنسخة 1.x. ستقوم هذه المقالة بتلخيص التغييرات الرئيسية استعدادًا لهجرة المطورين في المستقبل.
مقارنة الإصدارات
على الرغم من أن الإصدار 1.x سهل الاستخدام، إلا أنه يحتوي على بعض المشكلات. فهو يجمع جميع الوظائف في حزمة واحدة، مما يؤدي إلى حاجة أجهزة المستخدمين إلى تنزيل كود كبير قد لا يحتاجون إليه.
تستخدم النسخة 2.x تصميمًا معياريًا، حيث يتم تقسيم مكتبة الشفرة إلى عدة وحدات صغيرة، مثل @solana/accounts و @solana/codecs. تتخلى النسخة الجديدة عن التنفيذ القائم على الفئات، وتتبنى بدلاً من ذلك طريقة الوظائف الفردية، مما يساعد على تحسين بناء شفرة JavaScript. وفقًا للبيانات الرسمية، فإن DApp التي تستخدم النسخة الجديدة تحقق عادةً تحسينًا في الحجم بنسبة 30٪، وللتطبيقات التي تستخدم عددًا قليلاً من الوظائف، قد تكون نسبة التحسين أعلى.
ومع ذلك، فإن هذا يضع متطلبات أعلى على جودة الوثائق لفريق Solana. حاليًا، فإن دلالة أسماء الحزم جيدة، مما يساعد على تقليل صعوبة انتقال المطورين. لكن نظرًا لأن الإصدار الجديد تم إصداره مؤخرًا، فإن العديد من المشاريع لم تنتقل بعد، كما أن أمثلة الإصدار 2.x على Solana Cookbook لا تزال قليلة نسبيًا.
تتمثل سمة أخرى مهمة من إصدار 2.x في عدم الاعتماد على أي شيء. هذه الميزة لها أهمية كبيرة في تعزيز الأمان، خاصة عند أخذ الهجمات على سلسلة التوريد التي حدثت مؤخرًا على الإصدارين 1.95.5 و 1.95.6 في الاعتبار.
نقاط التغيير المهمة
الاتصال
تستخدم النسخة 2.x طريقة أكثر وظيفية لمعالجة الاتصالات. لم يعد يتم استخدام فئة Connection، بل يتم إنشاء مرسل الطلبات من خلال تكوين عنوان طلب RPC.
زوج المفاتيح
في الإصدار الجديد، تم استبدال فئتي Keypair و PublicKey بمجموعة من الدوال. على سبيل المثال، الآن يتم استخدام await generateKeyPair() لإنشاء زوج مفاتيح بدلاً من Keypair.generate() السابق. تُعيد الطريقة الجديدة Promise، وذلك بفضل استخدام واجهة برمجة تطبيقات Web Crypto الخاصة بـ JavaScript، التي تستخدم تنفيذ Ed25519 الأصلي.
إرسال الصفقة
لم تعد إصدارات 2.x تستخدم فئات Transaction وVersionedTransaction. يجب أيضًا استيراد طرق النظام الخاصة بالبرنامج من مصادر أخرى. على سبيل المثال، تتطلب تعليمات transfer الآن استدعاء دالة getTransferSolInstruction من @solana-program/system.
يوفر الإصدار الجديد شكل pipe المستخدم عادة في البرمجة الوظيفية. لم تعد المعاملات تُ initiated من خلال Connection، بل تُ initiated من خلال توليد دوال محددة عبر مزود RPC المعرفة. هذا يزيد من قابلية تخصيص الكود، ولكنه يزيد قليلاً من حجم الكود.
دعم React
يتضمن مشروع @solana/web3.js أيضًا مكتبة @solana/react، التي توفر بعض React Hook، وتحتوي على ميزات مثل signIn.
ملخص
تظهر إصدار النسخة 2.x من @solana/web3.js التزام فريق Solana بالتحسين المستمر. توفر النسخة الجديدة للمطورين وسيلة أكثر كفاءة ومرونة وقابلية للتخصيص للتفاعل مع شبكة Solana، مما من المتوقع أن يعزز من تطوير واعتماد هذه المنصة.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 12
أعجبني
12
6
مشاركة
تعليق
0/400
JustHodlIt
· 07-21 20:58
2.x ثابتة انطلق انطلق انطلق
شاهد النسخة الأصليةرد0
CryptoMom
· 07-20 08:14
أخيرًا تم التحديث دعني ألقي نظرة على 2.x
شاهد النسخة الأصليةرد0
ETHReserveBank
· 07-19 17:40
افتح الشمبانيا، انتظر الترقية في الصف الأمامي
شاهد النسخة الأصليةرد0
LuckyHashValue
· 07-19 17:40
سولا عادت للحياة من جديد
شاهد النسخة الأصليةرد0
LiquidityNinja
· 07-19 17:37
سولانا لا تزال ثور
شاهد النسخة الأصليةرد0
EyeOfTheTokenStorm
· 07-19 17:13
بيانات تظهر مقدمة موجة جديدة من الثور؟ ادخل مركز لا
إصدار 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 على Solana Cookbook لا تزال قليلة نسبيًا.
تتمثل سمة أخرى مهمة من إصدار 2.x في عدم الاعتماد على أي شيء. هذه الميزة لها أهمية كبيرة في تعزيز الأمان، خاصة عند أخذ الهجمات على سلسلة التوريد التي حدثت مؤخرًا على الإصدارين 1.95.5 و 1.95.6 في الاعتبار.
نقاط التغيير المهمة
الاتصال
تستخدم النسخة 2.x طريقة أكثر وظيفية لمعالجة الاتصالات. لم يعد يتم استخدام فئة Connection، بل يتم إنشاء مرسل الطلبات من خلال تكوين عنوان طلب RPC.
زوج المفاتيح
في الإصدار الجديد، تم استبدال فئتي Keypair و PublicKey بمجموعة من الدوال. على سبيل المثال، الآن يتم استخدام await generateKeyPair() لإنشاء زوج مفاتيح بدلاً من Keypair.generate() السابق. تُعيد الطريقة الجديدة Promise، وذلك بفضل استخدام واجهة برمجة تطبيقات Web Crypto الخاصة بـ JavaScript، التي تستخدم تنفيذ Ed25519 الأصلي.
إرسال الصفقة
لم تعد إصدارات 2.x تستخدم فئات Transaction وVersionedTransaction. يجب أيضًا استيراد طرق النظام الخاصة بالبرنامج من مصادر أخرى. على سبيل المثال، تتطلب تعليمات transfer الآن استدعاء دالة getTransferSolInstruction من @solana-program/system.
يوفر الإصدار الجديد شكل pipe المستخدم عادة في البرمجة الوظيفية. لم تعد المعاملات تُ initiated من خلال Connection، بل تُ initiated من خلال توليد دوال محددة عبر مزود RPC المعرفة. هذا يزيد من قابلية تخصيص الكود، ولكنه يزيد قليلاً من حجم الكود.
دعم React
يتضمن مشروع @solana/web3.js أيضًا مكتبة @solana/react، التي توفر بعض React Hook، وتحتوي على ميزات مثل signIn.
ملخص
تظهر إصدار النسخة 2.x من @solana/web3.js التزام فريق Solana بالتحسين المستمر. توفر النسخة الجديدة للمطورين وسيلة أكثر كفاءة ومرونة وقابلية للتخصيص للتفاعل مع شبكة Solana، مما من المتوقع أن يعزز من تطوير واعتماد هذه المنصة.