136 قراءة٪ s

كانت مشكلة انتشار الكتل في Solana هائلة - وإليك كيفية إصلاحها

بواسطة 0xwizzdom4m2025/03/13
Read on Terminal Reader

طويل جدا؛ ليقرأ

تعمل Solana على تحسين انتشار الكتل باستخدام Turbine، وهي طريقة نشر البيانات من نظير إلى نظير والتي تتجنب ازدحام الشبكة وزيادة تحميل النطاق الترددي.
featured image - كانت مشكلة انتشار الكتل في Solana هائلة - وإليك كيفية إصلاحها
0xwizzdom HackerNoon profile picture

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


لنفترض شبكةً تضم 35,000 مُصدِّق. يحتاج القائد إلى إرسال كتلة بحجم 128 ميجابايت (حوالي 500,000 معاملة بمعدل 250 بايت لكل معاملة) إلى جميع المُصدِّقين البالغ عددهم 35,000. يتطلب تطبيق انتشار الكتل التقليدي أن يكون لدى القائد اتصال فريد بكل مُصدِّق، وأن يُرسل كامل الـ 128 ميجابايت 35,000 مرة. سيؤدي ذلك إلى نقل بيانات إجمالي يبلغ 4.69 تيرابايت، وهو ما يتجاوز بكثير إمكانيات النطاق الترددي النموذجية، وسيكون من الصعب استيعابه مع هذا العدد الكبير من الاتصالات.


لحل مشكلة بطء انتشار الكتل، قدمت سولانا آلية "توربين"، وهي آلية متعددة الطبقات لنشر الكتل تستخدمها العناقيد لبث مدخلات دفتر الأستاذ إلى جميع العقد. بشكل عام، تُقسّم آلية "توربين" الكتل إلى كتل أصغر وتنشرها عبر ترتيب من العقد، مما يُخفف العبء على كل عقدة.

ما هو التوربين؟

استُلهمت بنية توربين بشكل كبير من بنية بت تورنت. يعتمد كلاهما على تقسيم البيانات - أي تقسيم البيانات الكبيرة إلى أجزاء أصغر - ويستخدمان شبكة الند للند لنشر البيانات. توربين مُحسّن للبث، حيث ينقل البيانات باستخدام بروتوكول UDP فقط، مما يوفر مزايا تقليل زمن الوصول. يُطبّق مسارًا عشوائيًا لكل حزمة عبر الشبكة بينما يقوم مُنتجو الكتل (الرواد) ببث بياناتهم. هذه السرعة العالية لنشر الكتل تُمكّن سولانا من الحفاظ على إنتاجيته العالية.

علاوة على ذلك، يعالج توربين مشكلة توافر البيانات، مما يضمن وصول جميع العقد إلى البيانات المطلوبة للتحقق من صحة المعاملات بكفاءة. ويتم ذلك دون الحاجة إلى نطاق ترددي هائل، وهو ما يُمثل عقبة شائعة في شبكات البلوك تشين الأخرى.

عملية انتشار الكتلة للتوربين

قبل نشر أي كتلة، يقوم القائد ببناء الكتلة وترتيبها بناءً على تدفق المعاملات الواردة. بعد بناء الكتلة، تصبح جاهزة للإرسال عبر التوربين إلى بقية الشبكة. تُعرف هذه العملية باسم نشر الكتلة . بعد ذلك، تُمرر الرسائل بين المُصادقين، وتُغلّف هذه الرسائل داخل بيانات الكتلة لتحقيق حالة الالتزام "مؤكد" أو "نهائي".


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

ملاحظة: حصلت الكتلة المؤكدة على أغلبية كبيرة من أصوات السجل، في حين تم تأكيد الكتلة النهائية ولديها 31+ كتلة مؤكدة مبنية فوق الكتلة المستهدفة.

ترميز المسح

قبل إرسالها إلى شجرة التوربينات، تُشفَّر القطع باستخدام ترميز ريد-سولومون للمحو، وهو أسلوب لحماية البيانات يستخدم أنواعًا محددة من ترميز تصحيح الأخطاء. صُمِّمت هذه الطريقة للحماية من فقدان البيانات في حالة الأعطال أو الأخطاء. تُقسِّم هذه الطريقة البيانات إلى كتل أصغر، وتُشفَّر كل كتلة بمعلومات إضافية.


يعتمد التوربين بشكل كبير على إعادة إرسال الحزم بين المُصدِّقين الذين قد يُعيدون بث بيانات غير صحيحة أو ناقصة. نتيجةً لإعادة الإرسال، يتضاعف أي فقدان للحزم على مستوى الشبكة، ويزداد احتمال عدم وصول الحزمة إلى وجهتها في كل قفزة. على سبيل المثال، إذا أرسل قائد 20% من حزم الكتلة كرموز مسح، فيمكن للشبكة إسقاط أي 20% منها دون فقدان الكتلة. يمكن للقائدين تعديل هذا الرقم (معدل تصحيح الخطأ الأمامي) ديناميكيًا بناءً على ظروف الشبكة، مع مراعاة متغيرات مثل فقدان الحزم المُلاحَظ مؤخرًا على مستوى الشبكة وعمق الشجرة.


في سولانا، تُعدّ قطع البيانات كتلًا جزئية من الكتلة الأصلية التي أنشأها القائد، وقطع البيانات المستعادة هي كتل مُرمّزة بالمحوّ مُولّدة بواسطة ريد-سولومون. عادةً ما تستفيد الكتل في سولانا من نسبة تصحيح الخطأ (FEC) 32:32 (يمكن فقدان 32 حزمة من أصل 64 حزمة دون الحاجة إلى إعادة الإرسال).

شجرة التوربينات

يستخدم سولانا شجرة توربينية، وهي بنية شبكية منظمة، لتسهيل نشر البيانات بكفاءة بين المدققين. عند ترميز البيانات بشكل صحيح في مجموعاتها، تصبح جاهزة للنشر عبر شجرة التوربينية لإعلام المدققين الآخرين في الشبكة بأحدث حالة.

شجرة التوربينات، المعروفة للجميع، تضمن معرفة كل مُحقق بدقة بمسؤوليته عن نقل تلك البيانات. عادةً ما تكون شجرة التوربينات ذات قفزتين أو ثلاث قفزات (حسب عدد المُحققين النشطين)، بشرط أن تكون قيمة DATA_PLANE_FANOUT الحالية 200.


علاوة على ذلك، يمكن للعقد اللجوء إلى التكرار والإصلاح إذا لم تتلقَّ ما يكفي من الشظايا أو إذا تجاوز معدل الخسارة معدل تصحيح الخطأ الأمامي (FEC). في ظل التطبيق الحالي، تُرسل العقدة التي تفتقر إلى شظايا كافية لإعادة بناء الكتلة طلبًا إلى القائد لإعادة الإرسال. أما في التوربين الحتمي، فيمكن لأي عقدة تستقبل الكتلة كاملةً إرسال شظايا الإصلاح التي تحتاجها العقدة الطالبة، مما يدفع نقل البيانات إلى مناطق الشجرة التي تطلب البيانات.

خاتمة

في هذا التقرير، درسنا آلية انتشار كتلة التوربينات في سولانا، والتي تُقسّم الكتل الكبيرة إلى أجزاء أصغر لتوزيع البيانات بكفاءة عبر الشبكة. وسلّطنا الضوء على كيفية ضمان تشفير المسح سلامة البيانات، وكيف تُسهّل شجرة التوربينات النقل السريع بين المُصدّقين.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks