Solana Web3.js النسخة 2.x: ترقية كبيرة لمكتبة JavaScript الغنية بالميزات
تم إصدار Solana Web3.js، كمكتبة JavaScript غنية بالميزات، رسميًا في نوفمبر من هذا العام بإصدار 2.x. مقارنة بإصدار 1.x، فقد شهد الإصدار الجديد تغييرات ملحوظة في الهيكل وطريقة الاستخدام. ستقوم هذه المقالة بتلخيص هذه التغييرات الرئيسية لمساعدة المطورين في الاستعداد للانتقال في المستقبل.
مقارنة الإصدارات
تستخدم مكتبة Web3.js الإصدار 1.x بشكل بسيط ومباشر. لديها حزمة رئيسية واحدة فقط: @solana/web3.js، حيث تتركز جميع الوظائف في هذه الحزمة. تعتمد على تصميم قائم على الفئات، حيث تغلف مجموعة كبيرة من العمليات الشائعة الاستخدام. على سبيل المثال، توفر فئة Connection العشرات من الطرق، والتي تغطي تقريبًا جميع الوظائف التي يحتاجها المطورون.
ومع ذلك، فإن هذا التصميم يسبب بعض المشكلات. على الرغم من أن الوظائف التي يستخدمها المطورون فعليًا قد تكون مجرد جزء صغير من المكتبة، إلا أن مكتبة الأكواد الكاملة يتم تنزيلها على جهاز المستخدم، مما قد يؤدي إلى زيادة زمن التحميل.
تتبنى النسخة 2.x نهجًا مختلفًا. قامت فريق التطوير بتقسيم الكود الأصلي إلى عدة وحدات صغيرة، مثل @solana/accounts و@solana/codecs و@solana/rpc و@solana/signers و@solana/transactions. كما أن النسخة الجديدة تخلت عن التنفيذ القائم على الفئات، وبدلاً من ذلك اعتمدت أكثر على طريقة الوظائف الفردية. هذه الطريقة تسهل تحسين كود JavaScript أثناء البناء، حيث يمكن حذف الكود غير المستخدم، مما يعني أنه لن يتم تنزيله على أجهزة المستخدم.
وفقًا للإحصاءات، يمكن أن تؤدي استخدام النسخة الجديدة من التطبيقات اللامركزية (DApp) عادةً إلى تحسين حجم الكود بنسبة تصل إلى حوالي 30%. إذا تم استخدام عدد قليل فقط من الميزات، فقد تكون نسبة التحسين أعلى.
من الخصائص المهمة الأخرى للإصدار 2.x هي عدم الاعتماد على أي شيء. قد لا تكون هذه الميزة بارزة للعديد من المستخدمين، ولكن بالنظر إلى الهجمات على سلسلة التوريد التي حدثت مؤخرًا في الإصدارات 1.95.5 و 1.95.6 من @solana/web3.js، فإن تقليل الاعتماد على العناصر الخارجية يمكن أن يقلل بشكل كبير من مخاطر الأمان. قرر فريق تطوير Web3.js استخدام الميزات الأصلية بشكل أكبر، وإلغاء الاعتماد على العناصر الخارجية وإدخال Polyfills.
عند استدعاء sendAndConfirmTransaction لإرسال المعاملة، سيقوم النظام تلقائيًا بإجراء طلب HTTPS، وإنشاء اتصال WSS للاشتراك في حالة المعاملة، وعند تأكيد المعاملة، سيتم إرجاع تجزئة المعاملة.
زوج المفاتيح
في إصدار 2.x، تم استبدال الفئات القديمة Keypair و PublicKey بسلسلة من الدوال. على سبيل المثال، يمكنك استخدام await generateKeyPair() لإنشاء زوج مفاتيح، بدلاً من Keypair.generate() السابق. تستفيد التنفيذات الجديدة من واجهة برمجة التطبيقات Web Crypto الخاصة بجافا سكريبت، وتستخدم تنفيذ Ed25519 الأصلي.
إرسال المعاملة
لم يعد يتم استخدام فئات Transaction وVersionedTransaction في إصدار 2.x. كما يجب استيراد طرق نظام البرنامج من أماكن أخرى. على سبيل المثال، تحتاج الآن تعليمات transfer إلى استدعاء دالة getTransferSolInstruction من @solana-program/system.
تقدم النسخة الجديدة شكل pipe المستخدم غالبًا في البرمجة الوظيفية. فيما يلي مثال على كيفية تنفيذ وظيفة تحويل الأموال باستخدام دالة pipe:
ومن الجدير بالذكر أن مشروع @solana/web3.js يتضمن أيضًا مكتبة تسمى @solana/react، والتي توفر بعض Hooks الخاصة بـ React، وتحتوي على ميزات مثل signIn.
ملخص
أظهر إصدار النسخة 2.x من @solana/web3.js التزام فريق Solana بالتطور المستمر والتحسين. يوفر الإصدار الجديد للمطورين وسيلة أكثر كفاءة ومرونة وقابلية للتخصيص للتفاعل مع شبكة Solana، مما يُتوقع أن يعزز اعتماد المنصة وتطورها.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 14
أعجبني
14
5
مشاركة
تعليق
0/400
rekt_but_resilient
· 07-11 16:59
لقد تم الترقية أخيرًا، كان تطوير البرمجيات مؤلمًا جدًا.
شاهد النسخة الأصليةرد0
ThatsNotARugPull
· 07-08 18:57
أخيرًا نجحت في فقدان الوزن
شاهد النسخة الأصليةرد0
CompoundPersonality
· 07-08 18:57
يا له من شعور رائع، أخيرًا لن أضطر لكتابة الكثير من الأكواد بعد الآن.
تم إصدار إصدار Solana Web3.js 2.x تحسين حجم الكود اسقاط 30%
Solana Web3.js النسخة 2.x: ترقية كبيرة لمكتبة JavaScript الغنية بالميزات
تم إصدار Solana Web3.js، كمكتبة JavaScript غنية بالميزات، رسميًا في نوفمبر من هذا العام بإصدار 2.x. مقارنة بإصدار 1.x، فقد شهد الإصدار الجديد تغييرات ملحوظة في الهيكل وطريقة الاستخدام. ستقوم هذه المقالة بتلخيص هذه التغييرات الرئيسية لمساعدة المطورين في الاستعداد للانتقال في المستقبل.
مقارنة الإصدارات
تستخدم مكتبة Web3.js الإصدار 1.x بشكل بسيط ومباشر. لديها حزمة رئيسية واحدة فقط: @solana/web3.js، حيث تتركز جميع الوظائف في هذه الحزمة. تعتمد على تصميم قائم على الفئات، حيث تغلف مجموعة كبيرة من العمليات الشائعة الاستخدام. على سبيل المثال، توفر فئة Connection العشرات من الطرق، والتي تغطي تقريبًا جميع الوظائف التي يحتاجها المطورون.
ومع ذلك، فإن هذا التصميم يسبب بعض المشكلات. على الرغم من أن الوظائف التي يستخدمها المطورون فعليًا قد تكون مجرد جزء صغير من المكتبة، إلا أن مكتبة الأكواد الكاملة يتم تنزيلها على جهاز المستخدم، مما قد يؤدي إلى زيادة زمن التحميل.
تتبنى النسخة 2.x نهجًا مختلفًا. قامت فريق التطوير بتقسيم الكود الأصلي إلى عدة وحدات صغيرة، مثل @solana/accounts و@solana/codecs و@solana/rpc و@solana/signers و@solana/transactions. كما أن النسخة الجديدة تخلت عن التنفيذ القائم على الفئات، وبدلاً من ذلك اعتمدت أكثر على طريقة الوظائف الفردية. هذه الطريقة تسهل تحسين كود JavaScript أثناء البناء، حيث يمكن حذف الكود غير المستخدم، مما يعني أنه لن يتم تنزيله على أجهزة المستخدم.
وفقًا للإحصاءات، يمكن أن تؤدي استخدام النسخة الجديدة من التطبيقات اللامركزية (DApp) عادةً إلى تحسين حجم الكود بنسبة تصل إلى حوالي 30%. إذا تم استخدام عدد قليل فقط من الميزات، فقد تكون نسبة التحسين أعلى.
من الخصائص المهمة الأخرى للإصدار 2.x هي عدم الاعتماد على أي شيء. قد لا تكون هذه الميزة بارزة للعديد من المستخدمين، ولكن بالنظر إلى الهجمات على سلسلة التوريد التي حدثت مؤخرًا في الإصدارات 1.95.5 و 1.95.6 من @solana/web3.js، فإن تقليل الاعتماد على العناصر الخارجية يمكن أن يقلل بشكل كبير من مخاطر الأمان. قرر فريق تطوير Web3.js استخدام الميزات الأصلية بشكل أكبر، وإلغاء الاعتماد على العناصر الخارجية وإدخال Polyfills.
نقاط التغيير الهامة
الاتصال
في إصدار 2.x، أصبحت طرق الاتصال أكثر وظيفية:
جافا سكريبت استيراد { createSolanaRpc } من "@solana / web3.js" ؛
const rpc = createSolanaRpc("");
عند استدعاء sendAndConfirmTransaction لإرسال المعاملة، سيقوم النظام تلقائيًا بإجراء طلب HTTPS، وإنشاء اتصال WSS للاشتراك في حالة المعاملة، وعند تأكيد المعاملة، سيتم إرجاع تجزئة المعاملة.
زوج المفاتيح
في إصدار 2.x، تم استبدال الفئات القديمة Keypair و PublicKey بسلسلة من الدوال. على سبيل المثال، يمكنك استخدام await generateKeyPair() لإنشاء زوج مفاتيح، بدلاً من Keypair.generate() السابق. تستفيد التنفيذات الجديدة من واجهة برمجة التطبيقات Web Crypto الخاصة بجافا سكريبت، وتستخدم تنفيذ Ed25519 الأصلي.
إرسال المعاملة
لم يعد يتم استخدام فئات Transaction وVersionedTransaction في إصدار 2.x. كما يجب استيراد طرق نظام البرنامج من أماكن أخرى. على سبيل المثال، تحتاج الآن تعليمات transfer إلى استدعاء دالة getTransferSolInstruction من @solana-program/system.
تقدم النسخة الجديدة شكل pipe المستخدم غالبًا في البرمجة الوظيفية. فيما يلي مثال على كيفية تنفيذ وظيفة تحويل الأموال باستخدام دالة pipe:
جافا سكريبت استيراد { الأنابيب } من "@solana / web3.js" ؛
معاملة CONST = pipe( createTransaction({ الإصدار: 0 }) ، addInstruction(getTransferSolInstruction({ من: المرسل, إلى: المستلم, المبلغ: transferAmount, })), setTransactionFeePayer(sender)، );
توقيع const = انتظار sendAndConfirmTransaction(rpc ، معاملة ، [senderKeypair]) ؛
دعم React
ومن الجدير بالذكر أن مشروع @solana/web3.js يتضمن أيضًا مكتبة تسمى @solana/react، والتي توفر بعض Hooks الخاصة بـ React، وتحتوي على ميزات مثل signIn.
ملخص
أظهر إصدار النسخة 2.x من @solana/web3.js التزام فريق Solana بالتطور المستمر والتحسين. يوفر الإصدار الجديد للمطورين وسيلة أكثر كفاءة ومرونة وقابلية للتخصيص للتفاعل مع شبكة Solana، مما يُتوقع أن يعزز اعتماد المنصة وتطورها.