في 17 ديسمبر ، علمت أن نقش CIAS سيتم نشره على Celestia ، وخططت للعمل على أساس مؤقت لكتابة سيناريو لتنظيف النقش. الآن ، لدي الكثير لأشكو منه سيليستيا ونظامها البيئي Cosmos ، بالإضافة إلى حدث CIAS نفسه.
في الواقع ، ليس من الصعب كتابة برنامج نصي لتنظيف النقوش ، والذي ينقسم بشكل أساسي إلى ثلاث وحدات: إنشاء المحفظة ، وربط العقد ، ومعاملات الفيضانات. ** يجب العثور على الخطوتين الأوليين فقط في وثائق المطور للسلسلة العامة المستهدفة للعثور على تنفيذ سريع.
ذهبت أولا إلى موقع Celestia الرسمي و Github لإلقاء نظرة ، ولا توجد حالات استخدام للمطورين لبناء سيناريوهات المستخدم ، وخاصة تشغيل العقدة والوثائق الأخرى ذات الصلة. بالطبع ، هذا أمر مفهوم ، لأن Celestia ليست سلسلة كتل ToC. تذكر Celestia فقط في مكان غامض أنها تستند إلى Cosmos وأنه من الممكن التفاعل مع شبكتها الرئيسية مع CosmJS.
لذلك ذهبت مباشرة إلى CosmJS. ولكن ماذا عن كوزموس ، فهي ليست جيدة حتى في التوثيق. ** ذهبت مباشرة إلى Github ، ووفقا للحس السليم ، سيكون لهذا النوع من JS عموما حالة استخدام على Github. لكن البرنامج التعليمي الخاص به مخفي في صفحة ثانوية.,وبعد النقر عليه.,اتبع تكوينه للقيام بتمرير.,أخيرا ، تم الإبلاغ عن خطأ.。
** هذا الخطأ ليس مشكلة بيئية.,ذلك لأن البرنامج التعليمي الخاص به لم يتم تحديثه بإصدار البرنامج التعليمي.** غالبا ما يتم تغيير اسم هذه الفئة ولا يمكن ضبطه ، وما إلى ذلك.。 لقد تحولت إلى إصدار مكتبة npm في إصدار البرنامج التعليمي القديم ، ولا تزال هناك بعض حالات الاستخدام التي لا تعمل ، لذلك استسلمت بعد القذف لفترة من الوقت.
لذلك بحثت عنه في Google مرة أخرى ، واتضح أن الوثائق الصحيحة كانت على الموقع الرسمي بدلا من Github ، وهو أمر غير بديهي بعض الشيء. ** مرة أخرى ، أليس من الجيد تحديث البرنامج التعليمي التمهيدي Github إلى الموقع الرسمي؟
بعد الحصول على البرنامج التعليمي الصحيح ، أكملت بسرعة خطوتي بناء المحفظة وتوصيل العقد ، وبدأت في إنشاء وحدة معاملات الفيضان. ببساطة ، هذه الوحدة عبارة عن حلقة for تعالج توقيعات المعاملات + طلبات الشبكة. ولكن هنا بعض المشاكل:
** تعرض جميع طرق المعاملات في مكتبة CosmJS معلمات المعاملة نفسها فقط ، لكن تسلسلها غير مكشوف ** (التسلسل مشابه ل nonce في ورشة عمل ETH ، وهو عداد معاملات تم تعيينه لمنع هجمات إعادة التشغيل ، وبعد إصدار كل معاملة ، يكون nonce والتسلسل تلقائيا +1).
التسلسل هو في الواقع أنه يتصل بالشبكة للحصول عليها عند التوقيع (chainId ، إلخ) عند التوقيع ، ويجب أن يمر عبر sendTokens() -> signAndBroadCast -> sign(). ** الذهاب إلى الشبكة لطلب وانتظار العودة في كل مرة يتم فيها تقديم معاملة سيؤثر على سرعة الفرشاة ، وسيزيد أيضا من طلبات الشبكة غير المجدية ، وهو أمر غير جيد للفيضان ، وبالطبع لا يفضي إلى تسريع / إلغاء المعاملة. **
دعنا نراجع طريقة Web3JS ETH لإرسال المعاملات ، حيث يمكنك تحديد nonce بنفسك. ولكن ليس في CosmJS. ** ما زلت أعتقد أن تصميم ETH Fang أكثر منطقية ، يمكنك تحديد nonce مباشرة لإلغاء / تسريع المعاملة ** ، إذا كانت المعاملة عالقة ، يمكنك تخصيص nonce بنفس المعاملة لاستبدال المعاملة العالقة ، بالطبع ، يمكن استخدامه أيضا لهجوم الفيضانات لدينا.
نظرا لضيق الوقت ، كانت هناك العديد من الوظائف الأخرى في المكتبة التي تحتاج إلى تعديل ، ** قررت عدم استخدام Proxy لإلغاء كتابة إعادة الكتابة ، ولكن لتعديلها مباشرة في مكتبة CosmJS. **
تتمثل فكرة البرنامج النصي لتشغيل معاملة الفيضان في بدء المعاملة باستمرار من خلال حلقة for وإنشاء توقيع ، وإرساله إلى عقدة RPC ، وبعد بدء المعاملة ، سيكون التسلسل / nonce +1 ، وبعد بدء 20 معاملة ، سيتم إعادة تدوير الدورة.
يتم سحب التسلسلات محليا فقط قبل بدء كل دورة فيضان ، وليس هناك حاجة لإعادة طلب التسلسلات من العقد بعد كل معاملة ، كما هو افتراضي في مكتبة CosmJS. من ناحية أخرى ، تتم كتابة chainId كقيمة ثابتة ولا يلزم طلبها بشكل متكرر من العقدة. (ملاحظة المحرر: تم تعيين عدد الحلقات هنا منخفضا نسبيا ، ومن الواضح أن المؤلف ليس عنيفا جدا.) قام شخص ما ، عند كتابة نقش Conflux ، بتغيير عدد الدورات لكل دورة إلى 1000 ، وإرسال حوالي 200 معاملة مختلفة في الدقيقة)
في النهاية ، حصلت على نص Celestia بدائي ، والذي اختبرته لفترة وجيزة بعد فصل CIAS في ليلة 17 ديسمبر ، وأرسلت مئات المعاملات. بعد استئناف CIAS في الساعات الأولى من يوم 19 ديسمبر ، أصابت بعض CIAS (حوالي 1800). ولكن لا تزال هناك أشياء أخرى للشكوى منها:**
في 17 ديسمبر ، واجهت عقدة RPC الخاصة ب Celestia مشكلة خطيرة في البيانات غير المتزامنة ، ويختلف ارتفاع الكتلة لعقد RPC المختلفة اختلافا كبيرا ، وعندما تطلب العقدة إلى تسلسل حسابك ، تكون نتيجة الإرجاع غير متسقة بشكل أساسي ، وهو أمر مؤلم للغاية. مستكشف كتلة Celestia غير متوفر أيضا ، وهو أعمى بشكل أساسي. يمكن القول أنه في هذا الوقت ، على الرغم من أن شبكة Celestia ليست معطلة ولا يزال بإمكانها إنتاج كتل ، إلا أنه يقدر أنها وصلت إلى الحد الأقصى تقريبا.
في نفس اليوم ، رأى مسؤول نقش CIAS أن Celestia كانت على وشك أن تكون غير قادرة على تحملها ، وأعلن مؤقتا أن جميع معاملات سك النقش على السلسلة بعد ارتفاع الكتلة 48460 كانت غير صالحة ، وهو اتجاه كبير إلى “فصل كابل الشبكة الخاص بالتبادل”. وانهار موقع CIAS الخاص.
لا يوجد تعليق على التصور بأن بروتوكول الإجماع الأصلي لسلسلة Cosmos يقوم بعمل ضعيف في الإجماع على الكتل ، ولكن من الواضح أن الغرض من قيام CIAS بسحب كابل الشبكة الليلة الماضية مثير للاهتمام.
في 17 ديسمبر ، من الصعب اختيار عقدة بها أسرع بيانات متزامنة ، لأن جميع عقد RPC تقريبا مكتظة وغالبا ما لا تستجيب. حاولت لاحقا كتابة بعض التعليمات البرمجية التي تقوم تلقائيا بتبديل العقد.
تنسيق النقش في CIAS نفسه لا يتوافق تماما مع النقوش الأخرى ، على سبيل المثال ، في json من brc-20 ، جميع الأرقام عبارة عن سلاسل ، بينما في CIA-20 هو رقم.
ارتفعت تكلفة نقوش CIAS إلى 1.5 ~ 2U لكل نقش عندما كانت الأعلى الليلة الماضية ، وحتى أن بعض الناس دفعوا 80U مقابل نقش. تعكس هذه الرسوم المرتفعة TPS المحدودة ، ويدعي مؤسس Celestia أنه يمكنه معالجة 10 آلاف معاملة في الثانية ، وهو أمر من الواضح أنه هراء.
بشكل عام ، كانت تجربة ليلة 17 ديسمبر جملة واحدة: لم تكن Celestia بالتأكيد مستعدة للتعامل مع حركة المرور على نطاق واسع ، وكانت روتينية للغاية من حيث تكوين عقدة RPC (من الصعب تخيل أنه يمكن تفجير العشرات من عقد RPC في 1 ساعة). **
في ليلة 19 ، كان الوضع أفضل بكثير ، باستثناء رسوم الغاز المرتفعة ، لم تكن هناك مشكلة كبيرة في جوانب أخرى ، لا يمكن القول إلا أن Celestia ، كشبكة DA مخصصة لتوزيع البيانات على العقد الخفيفة ، صمدت مؤقتا أمام الاختبار ، لكنني لا أعرف ما إذا كان سيكون هناك أي مزالق أخرى في المستقبل.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
بعد كتابة نص سيليستيا وكتابة النقش اشتكى: المهارات الأساسية للكون ليست صلبة
المؤلف: Wuyue ، المهوس Web3
في 17 ديسمبر ، علمت أن نقش CIAS سيتم نشره على Celestia ، وخططت للعمل على أساس مؤقت لكتابة سيناريو لتنظيف النقش. الآن ، لدي الكثير لأشكو منه سيليستيا ونظامها البيئي Cosmos ، بالإضافة إلى حدث CIAS نفسه.
في الواقع ، ليس من الصعب كتابة برنامج نصي لتنظيف النقوش ، والذي ينقسم بشكل أساسي إلى ثلاث وحدات: إنشاء المحفظة ، وربط العقد ، ومعاملات الفيضانات. ** يجب العثور على الخطوتين الأوليين فقط في وثائق المطور للسلسلة العامة المستهدفة للعثور على تنفيذ سريع.
ذهبت أولا إلى موقع Celestia الرسمي و Github لإلقاء نظرة ، ولا توجد حالات استخدام للمطورين لبناء سيناريوهات المستخدم ، وخاصة تشغيل العقدة والوثائق الأخرى ذات الصلة. بالطبع ، هذا أمر مفهوم ، لأن Celestia ليست سلسلة كتل ToC. تذكر Celestia فقط في مكان غامض أنها تستند إلى Cosmos وأنه من الممكن التفاعل مع شبكتها الرئيسية مع CosmJS.
لذلك ذهبت مباشرة إلى CosmJS. ولكن ماذا عن كوزموس ، فهي ليست جيدة حتى في التوثيق. ** ذهبت مباشرة إلى Github ، ووفقا للحس السليم ، سيكون لهذا النوع من JS عموما حالة استخدام على Github. لكن البرنامج التعليمي الخاص به مخفي في صفحة ثانوية.,وبعد النقر عليه.,اتبع تكوينه للقيام بتمرير.,أخيرا ، تم الإبلاغ عن خطأ.。
** هذا الخطأ ليس مشكلة بيئية.,ذلك لأن البرنامج التعليمي الخاص به لم يتم تحديثه بإصدار البرنامج التعليمي.** غالبا ما يتم تغيير اسم هذه الفئة ولا يمكن ضبطه ، وما إلى ذلك.。 لقد تحولت إلى إصدار مكتبة npm في إصدار البرنامج التعليمي القديم ، ولا تزال هناك بعض حالات الاستخدام التي لا تعمل ، لذلك استسلمت بعد القذف لفترة من الوقت.
لذلك بحثت عنه في Google مرة أخرى ، واتضح أن الوثائق الصحيحة كانت على الموقع الرسمي بدلا من Github ، وهو أمر غير بديهي بعض الشيء. ** مرة أخرى ، أليس من الجيد تحديث البرنامج التعليمي التمهيدي Github إلى الموقع الرسمي؟
بعد الحصول على البرنامج التعليمي الصحيح ، أكملت بسرعة خطوتي بناء المحفظة وتوصيل العقد ، وبدأت في إنشاء وحدة معاملات الفيضان. ببساطة ، هذه الوحدة عبارة عن حلقة for تعالج توقيعات المعاملات + طلبات الشبكة. ولكن هنا بعض المشاكل:
** تعرض جميع طرق المعاملات في مكتبة CosmJS معلمات المعاملة نفسها فقط ، لكن تسلسلها غير مكشوف ** (التسلسل مشابه ل nonce في ورشة عمل ETH ، وهو عداد معاملات تم تعيينه لمنع هجمات إعادة التشغيل ، وبعد إصدار كل معاملة ، يكون nonce والتسلسل تلقائيا +1).
التسلسل هو في الواقع أنه يتصل بالشبكة للحصول عليها عند التوقيع (chainId ، إلخ) عند التوقيع ، ويجب أن يمر عبر sendTokens() -> signAndBroadCast -> sign(). ** الذهاب إلى الشبكة لطلب وانتظار العودة في كل مرة يتم فيها تقديم معاملة سيؤثر على سرعة الفرشاة ، وسيزيد أيضا من طلبات الشبكة غير المجدية ، وهو أمر غير جيد للفيضان ، وبالطبع لا يفضي إلى تسريع / إلغاء المعاملة. **
دعنا نراجع طريقة Web3JS ETH لإرسال المعاملات ، حيث يمكنك تحديد nonce بنفسك. ولكن ليس في CosmJS. ** ما زلت أعتقد أن تصميم ETH Fang أكثر منطقية ، يمكنك تحديد nonce مباشرة لإلغاء / تسريع المعاملة ** ، إذا كانت المعاملة عالقة ، يمكنك تخصيص nonce بنفس المعاملة لاستبدال المعاملة العالقة ، بالطبع ، يمكن استخدامه أيضا لهجوم الفيضانات لدينا.
نظرا لضيق الوقت ، كانت هناك العديد من الوظائف الأخرى في المكتبة التي تحتاج إلى تعديل ، ** قررت عدم استخدام Proxy لإلغاء كتابة إعادة الكتابة ، ولكن لتعديلها مباشرة في مكتبة CosmJS. **
تتمثل فكرة البرنامج النصي لتشغيل معاملة الفيضان في بدء المعاملة باستمرار من خلال حلقة for وإنشاء توقيع ، وإرساله إلى عقدة RPC ، وبعد بدء المعاملة ، سيكون التسلسل / nonce +1 ، وبعد بدء 20 معاملة ، سيتم إعادة تدوير الدورة.
يتم سحب التسلسلات محليا فقط قبل بدء كل دورة فيضان ، وليس هناك حاجة لإعادة طلب التسلسلات من العقد بعد كل معاملة ، كما هو افتراضي في مكتبة CosmJS. من ناحية أخرى ، تتم كتابة chainId كقيمة ثابتة ولا يلزم طلبها بشكل متكرر من العقدة. (ملاحظة المحرر: تم تعيين عدد الحلقات هنا منخفضا نسبيا ، ومن الواضح أن المؤلف ليس عنيفا جدا.) قام شخص ما ، عند كتابة نقش Conflux ، بتغيير عدد الدورات لكل دورة إلى 1000 ، وإرسال حوالي 200 معاملة مختلفة في الدقيقة)
في النهاية ، حصلت على نص Celestia بدائي ، والذي اختبرته لفترة وجيزة بعد فصل CIAS في ليلة 17 ديسمبر ، وأرسلت مئات المعاملات. بعد استئناف CIAS في الساعات الأولى من يوم 19 ديسمبر ، أصابت بعض CIAS (حوالي 1800). ولكن لا تزال هناك أشياء أخرى للشكوى منها:**
بشكل عام ، كانت تجربة ليلة 17 ديسمبر جملة واحدة: لم تكن Celestia بالتأكيد مستعدة للتعامل مع حركة المرور على نطاق واسع ، وكانت روتينية للغاية من حيث تكوين عقدة RPC (من الصعب تخيل أنه يمكن تفجير العشرات من عقد RPC في 1 ساعة). **
في ليلة 19 ، كان الوضع أفضل بكثير ، باستثناء رسوم الغاز المرتفعة ، لم تكن هناك مشكلة كبيرة في جوانب أخرى ، لا يمكن القول إلا أن Celestia ، كشبكة DA مخصصة لتوزيع البيانات على العقد الخفيفة ، صمدت مؤقتا أمام الاختبار ، لكنني لا أعرف ما إذا كان سيكون هناك أي مزالق أخرى في المستقبل.