المؤلف: Arweave Oasis
في مقالتنا السابقة "فهم عملية تكرار آلية الإجماع في Arweave" لقد تعرفت على عملية تكرار تقنية Arweave في السنوات الخمس الماضية، ووعدت في المقالة بمقارنة الإصدار 2.6 مرة أخرى. تحليل شامل. ستفي هذه المقالة بهذا الوعد وستأخذك عبر تفاصيل التصميم الخاصة بآلية الإجماع الخاصة بإصدار Arweave 2.6.
مكتوب من قبل
في غضون شهر تقريبًا، ستبدأ عملة البيتكوين جولتها التالية من التنصيف. لكن المؤلف يعتقد أن رؤية ساتوشي ناكاموتو -الإجماع الذي يمكن للجميع المشاركة فيه باستخدام وحدة المعالجة المركزية- لم تتحقق قط. في هذا الصدد، قد يكون تكرار آلية Arweave أكثر إخلاصًا لرؤية ساتوشي ناكاموتو الأصلية، ويسمح الإصدار 2.6 لشبكة Arweave بالامتثال الحقيقي لتوقعات ساتوشي ناكاموتو. بالمقارنة مع الإصدار السابق، تم تحسينه بشكل كبير لتحقيق ما يلي:
الحد من تسريع الأجهزة، تكفي وحدة المعالجة المركزية للأغراض العامة + محرك الأقراص الصلبة الميكانيكي. المشاركة في صيانة النظام بالإجماع لتقليل تكاليف التخزين؛
توجيه تكاليف الإجماع قدر الإمكان إلى التخزين الفعال للبيانات بدلاً من سباق التسلح المجزأ الذي يستهلك الطاقة؛
p>
يتم تحفيز القائمين بالتعدين على إنشاء نسختهم الخاصة من مجموعة بيانات Arweave الكاملة، مما يسمح بتوجيه البيانات بشكل أسرع وتخزينها بشكل أكثر توزيعًا.
آلية الإجماع
بناءً على الأهداف المذكورة أعلاه، فإن آلية الإصدار 2.6 هي تقريبًا كما يلي:
في آلية SPoRA الأصلية، يوجد مكون جديد يسمى Hash Chain، وهي ساعة خوارزمية التشفير المذكورة سابقًا وتقوم بإنشاء SHA واحد كل ثانية. تجزئة -256.
يختار المُعدِّن فهرس القسم في قسم البيانات الذي يخزنه، ويستخدمه مع تجزئة التعدين وعنوان التعدين كمعلومات إدخال التعدين لبدء التعدين.
قم بإنشاء نطاق مراجعة 1 في القسم الذي اختاره القائم بالتعدين، ونطاق مراجعة ثانٍ 2 في موقع عشوائي في الشبكة المضفرة.
استخدم مجموعات بيانات التتبع (الأجزاء) ضمن نطاق التتبع 1 بدورها لحساب وتجربة ما إذا كان هذا حلاً للكتلة. إذا كانت نتيجة الحساب أكبر من صعوبة الشبكة الحالية، فسيحصل القائم بالتعدين على الحق في إنتاج الكتلة؛ وإذا لم ينجح، فسيتم حساب كتلة التتبع التالية في نطاق التتبع.
يمكن أيضًا التحقق من كتل بيانات التتبع في النطاق 2 حسابيًا، ولكن الحل هناك يتطلب تجزئة النطاق 1.
الشكل 1: رسم تخطيطي للإصدار 2.6 من آلية الإجماع
دعونا نتعرف على مفاهيم الأسماء المختلفة التي تظهر في هذه الآلية:< /p>
بيانات Arweave:تُعرف أيضًا باسم "الشبكة المنسوجة". يتم تقسيم جميع البيانات الموجودة في الشبكة إلى كتل بيانات واحدة تلو الأخرى، والاسم الإنجليزي هو Chunk (الكتل مثل "الجدران المصنوعة من الطوب" في الصورة أعلاه هي قطع). يمكن توزيع هذه الكتل بالتساوي في شبكة Arweave، ويتم إنشاء نظام عنونة (يسمى أيضًا Global Offset) لكل كتلة بيانات من خلال شجرة Merkle لتحديد أي موقع في كتلة بيانات الشبكة.
المجموعة: يبلغ حجم كل مجموعة بيانات عادةً 256 كيلو بايت. للفوز بالحق في إنتاج الكتل، يجب على القائمين بالتعدين حزم وتجزئة كتل البيانات المقابلة وإثبات أثناء عملية تعدين SPoRA أنهم قاموا بتخزين نسخة من البيانات.
التقسيم: "التقسيم" هو مفهوم جديد في الإصدار 2.6. كل 3.6 تيرابايت عبارة عن قسم. يتم ترقيم الأقسام من بداية الشبكة المنسوجة (الفهرس 0) حتى عدد الأقسام التي تغطي الشبكة المنسوجة بأكملها.
نطاق الاستدعاء: يعد نطاق الاستدعاء أيضًا مفهومًا جديدًا في الإصدار 2.6. وهي عبارة عن سلسلة من قطع البيانات المتجاورة (Chunk) بطول 100 ميجابايت تبدأ من إزاحة محددة في شبكة النسيج. استنادًا إلى كتلة بيانات تبلغ 256 كيلو بايت، يتضمن نطاق التتبع 400 كتلة بيانات. في هذه الآلية، سيكون هناك نطاقين للاسترجاع، سيتم شرحهما بالتفصيل أدناه.
الحلول المحتملة:ستكون كل كتلة بيانات بحجم 256 كيلو بايت ضمن نطاق المراجعة حلاً محتملاً للحصول على حق إنتاج الكتلة. كجزء من عملية التعدين، يتم تجزئة كل كتلة من البيانات لاختبار ما إذا كانت تلبي متطلبات الصعوبة الخاصة بالشبكة. في حالة رضاه، يفوز عامل التعدين بالحق في إنتاج الكتلة ويحصل على مكافأة التعدين. إذا لم تكن راضيًا، فسوف يستمر المُعدن في محاولة التراجع إلى الكتلة التالية التي يبلغ حجمها 256 كيلو بايت في النطاق.
Hash Chain: Hash Chain هو تحديث رئيسي في الإصدار 2.6، والذي يضيف ساعة تشفير إلى SPoRA السابقة، والتي تلعب دور تحديد السرعة دور في الحد من الحد الأقصى لمبلغ التجزئة. يتم إنشاء سلسلة التجزئة عن طريق تجزئة جزء من البيانات مرات متتالية باستخدام وظيفة SHA-256. لا يمكن حساب هذه العملية بالتوازي (يمكن لوحدات المعالجة المركزية من فئة المستهلك القيام بذلك بسهولة)، وتحقق سلسلة التجزئة تأخيرًا قدره ثانية واحدة عن طريق تنفيذ عدد معين من عمليات التجزئة المتتالية.
تعدين التجزئة: بعد عدد كافٍ من التجزئة المتتالية (أي تأخير لمدة ثانية واحدة)، تنتج السلسلة تجزئة تعتبر صالحة للتعدين. ومن الجدير بالذكر أن تجزئة التعدين متسقة بين جميع القائمين بالتعدين ويمكن التحقق منها من قبل جميع القائمين بالتعدين.
بعد تقديم جميع مفاهيم الأسماء الضرورية، يمكننا أن نفهم بشكل أفضل كيفية عمل الإصدار 2.6 معًا من خلال كيفية الحصول على أفضل استراتيجية.
أفضل استراتيجية
تم تقديم الهدف العام لـ Arweave عدة مرات من قبل، وهو زيادة عدد نسخ البيانات المخزنة على الشبكة إلى أقصى حد. . ولكن حفظ ماذا؟ كيفية حفظ؟ هناك أيضًا العديد من المتطلبات والمداخل. هنا نناقش كيفية اعتماد استراتيجية مثالية.
النسخ المتماثلة والنسخ
منذ الإصدار 2.6، رأى المؤلف بشكل متكرر كلمتين، النسخ المتماثلة والنسخ، في مواد فنية مختلفة. يمكن ترجمة هذين المفهومين إلى اللغة الصينية كنسخة، ولكن في الواقع هناك فرق كبير جدًا بينهما، مما تسبب أيضًا في الكثير من العوائق بالنسبة لي لفهم الآلية. لتسهيل الفهم، أميل إلى ترجمة النسخ المتماثلة على أنها "نسخة" والنسخ على أنها "نسخة احتياطية".
النسخ الاحتياطية تشير إلى مجرد نسخ البيانات، ولا يوجد فرق بين النسخ الاحتياطية لنفس البيانات.
النسخ المتماثلة تعني التفرد، وهي عملية تخزين البيانات بعد المعالجة الفريدة. تشجع شبكة Arweave على تخزين النسخ، بدلاً من تخزين النسخ الاحتياطية فقط.
ملاحظة: في الإصدار 2.7، أصبحت آلية الإجماع هي SPoRes، وهي إثباتات موجزة للنسخ المتماثل، ويعتمد إثبات النسخ المتماثل البسيط على تخزين النسخ المتماثلة، وسأشرح ذلك في المستقبل.
تعبئة النسخ المتماثلة الفريدة
تعتبر النسخ المتماثلة الفريدة مهمة جدًا في آلية Arweave. إذا أراد القائمون بالتعدين الحصول على حق إنتاج الكتل، فيجب عليهم الاحتفاظ بالبيانات وتعبئتها ومعالجتها بتنسيق محدد لتكوين نسخة فريدة خاصة بها، وهو شرط أساسي.
إذا كنت تريد تشغيل عقدة جديدة، فليس من الممكن نسخ البيانات التي تم حزمها بواسطة عمال مناجم آخرين مباشرة. تحتاج أولاً إلى تنزيل البيانات الأصلية ومزامنتها في شبكة Arweave للنسيج (بالطبع لا ترغب في تنزيلها كلها، يمكنك تنزيل جزء منها فقط. يمكنك أيضًا تعيين سياسة البيانات الخاصة بك لتصفية البيانات الخطرة )، ثم قم بتجميعها من خلال وظيفة RandomX. كل جزء من البيانات الأولية يجعلها حلاً محتملاً للتعدين.
تتضمن عملية التعبئة توفير مفتاح التعبئة لوظيفة RandomX، مما يسمح باستخدام النتيجة الناتجة عنها لتعبئة كتلة البيانات الأصلية من خلال عمليات متعددة. عملية فك ضغط كتلة البيانات المجمعة هي نفسها، حيث يتم توفير مفتاح التعبئة، ويتم استخدام النتيجة الناتجة عن عمليات متعددة لفك ضغط كتلة البيانات المجمعة.
في الإصدار 2.5، النسخ الاحتياطي لمفتاح التعبئة هو تجزئة SHA256 المرتبطة بـchunk_offset (إزاحة كتلة البيانات، والتي يمكن فهمها أيضًا على أنها معلمة موضع كتلة البيانات) وtx_root (جذر المعاملة). وهذا يضمن أن كل حل تعدين يأتي من نسخة فريدة من كتل البيانات الموجودة في كتلة معينة. إذا كانت هناك نسخ متعددة من كتلة البيانات في مواقع مختلفة على الشبكة التالفة، فيجب إجراء نسخ احتياطي لكل نسخة احتياطية بشكل فردي كنسخة فريدة.
في الإصدار 2.6، تم توسيع مفتاح النسخ الاحتياطي هذا إلى تجزئة SHA256 المرتبطة بـchunk_offset وtx_root وminer_address. وهذا يعني أن كل نسخة فريدة أيضًا لكل عنوان تعدين.
مزايا تخزين النسخ الكاملة
تنصح الخوارزمية القائمين بالتعدين ببناء نسخة كاملة فريدة بدلاً من نسخة جزئية يتم نسخها عدة مرات، مما يجعل الشبكة: يتم توزيع البيانات بالتساوي.
كيف نفهم هذا الجزء؟ دعونا نفهم من خلال مقارنة الصورتين أدناه.
أولاً، لنفترض أن شبكة كسر Arweave بأكملها تولد إجمالي 16 قسمًا من البيانات.
الموقف الأول:
يعتقد عامل المنجم بوب أن تنزيل البيانات يستغرق وقتًا طويلاً- مستهلكة لذلك تم تنزيل بيانات الأقسام الأربعة الأولى التي دمرت الشبكة فقط.
من أجل تعظيم نسخ التعدين لهذه الأقسام الأربعة، خطرت لبوب فكرة وقام بنسخ 4 نسخ من بيانات هذه الأقسام الأربعة، واستخدم 4 نموذج عناوين التعدين المختلفة إلى 4 موارد نسخ فريدة لملء مساحة التخزين الخاصة بهم، لذا يوجد الآن 16 قسمًا في مساحة تخزين Bob. هذه ليست مشكلة وتتوافق مع قاعدة النسخ الفريدة.
بعد ذلك، عندما يحصل بوب على تجزئة التعدين (Mining Hash) كل ثانية، يمكنه إنشاء مادة نطاق تتبع لكل قسم وإجراء اختبار التطفل على كتل البيانات الموجودة فيه. . وهذا يعطي بوب 400*16=6400 حلاً محتملاً للتعدين في ثانية واحدة.
لكن بوب دفع أيضًا الثمن الثاني لذكائه الصغير، لأنه كان عليه أن يخسر فرصة تعدين في النطاق الخلفي. هل ترى "علامات الاستفهام الصغيرة" هذه؟؟ إنها تمثل نطاق استرجاع مرتبط بالمرة الثانية التي لم يتم العثور عليها على القرص الصلب الخاص بـ Bob لأنها تحدد قسم بيانات Bob غير المخزن فيه. بالطبع، ولحسن الحظ، هناك ضوء مؤشر سفلي يمثل الأقسام الأربعة المخزنة لدى Bob، والتي تمثل 25% فقط، أو 1600 حل محتمل.
لذا فإن هذه الإستراتيجية تمنح بوب 6400+1600=8000 حلًا محتملاً في الثانية.
الشكل 2: الموقف الأول، استراتيجية بوب "الذكية قليلاً"
< قوية >الموقف الثاني:
ثم دعونا ننظر إلى الموقف الثاني. نظرًا للترتيب الميكانيكي لنطاقي الاسترجاع، فإن الإستراتيجية الأفضل هي تخزين النسخة الوحيدة التي بها أكبر عدد من المشكلات. كما هو مبين في الشكل 3.
إن عاملة المنجم أليس ليست "ذكية" مثل بوب. لقد قامت بتنزيل بيانات القسم لجميع الأقسام الستة عشر واستخدمت عنوان تعدين واحدًا فقط تشكيل نسخة فريدة من 16 نسخة احتياطية.
نظرًا لأن Alice تحتوي أيضًا على 16 قسمًا، فإن إجمالي الحلول المحتملة لنطاق المراجعة الأول يتوافق مع Bob، وهو أيضًا 6400.
ولكن في هذه الحالة، تحصل أليس على جميع الحلول المحتملة لنطاق المراجعة الثاني. هذا 6400 إضافي.
وهذا يعطي استراتيجية أليس 6400+6400=12800 حلًا محتملاً في الثانية. المزايا واضحة بذاتها.
الشكل 3: من الواضح أن استراتيجية أليس تتمتع بمزايا أكبر
دور نطاق التتبع
قد تتفاجأ أنه قبل الإصدار 2.5، تم تجزئة إزاحة كتلة تتبع واحدة بشكل عشوائي من خلال وظيفة وسمحت لعمال المناجم بالعثور على دليل التخزين وتوفيره مرة أخرى. تنتج التجزئة نطاق تتبع في 2.6؟
السبب في الواقع سهل الفهم. يتكون نطاق التتبع من كتل بيانات مستمرة. هذه البنية ليست لشيء آخر. والغرض منها هو تقليل حركة رأس القراءة للقرص الصلب الميكانيكي (HDD). ). . تتيح التحسينات المادية التي جلبها هذا الأسلوب أن يكون أداء القراءة لمحركات الأقراص الثابتة مشابهًا لأداء محركات الأقراص الصلبة SSD (SSD) الأكثر تكلفة. إنه مثل ربط يد واحدة وقدم واحدة بمحرك أقراص SSD، وبالطبع فإن امتلاك محرك أقراص SSD باهظ الثمن يمكنه نقل أربعة نطاقات تتبع في الثانية لا يزال يتمتع بميزة سرعة طفيفة. لكن عددها سيكون مقياسًا رئيسيًا ليختاره القائمون بالتعدين مقارنة بمحركات الأقراص الصلبة الرخيصة.
التحقق من سلسلة التجزئة
الآن دعونا نناقش التحقق من الكتلة الجديدة التالية.
لقبول كتلة جديدة، يحتاج المدقق إلى التحقق من الكتلة الجديدة التي تمت مزامنتها بواسطة منتج الكتلة، وتتمثل الطريقة في استخدام تجزئة التعدين التي تم إنشاؤها بنفسه للتحقق من تجزئة التعدين للكتلة الجديدة.
إذا لم يكن المدقق في الرأس الحالي لسلسلة التجزئة، فإن كل تجزئة تعدين تتكون من 25 نقطة تفتيش تبلغ 40 مللي ثانية. نقاط التفتيش هذه هي نتيجة 40 مللي ثانية من التجزئة المتتالية، وتمثل معًا فاصل زمني مدته ثانية واحدة من بداية التجزئة من المنجم السابق.
سوف يقوم المدقق بإكمال التحقق بسرعة من أول 25 نقطة تفتيش في غضون 40 مللي ثانية قبل نشر الكتلة المستلمة حديثًا إلى العقد الأخرى. إذا نجح التحقق، فسيتم تشغيل كتلة النشر ومواصلة الاكتمال. من نقاط التفتيش المتبقية. يتم إكمال نقطة التفتيش الكاملة من خلال التحقق من صحة جميع نقاط التفتيش المتبقية. أول 25 نقطة تفتيش يتبعها 500 نقطة تحقق، ثم 500 نقطة تحقق، مع مضاعفة 500 نقطة تحقق لاحقة لكل مجموعة.
عندما تقوم سلسلة التجزئة بإنشاء تجزئة التعدين، يجب تنفيذها في سطر واحد بالتسلسل. ومع ذلك، يمكن للمدققين إجراء التحقق من التجزئة عند التحقق من نقاط التفتيش، مما قد يؤدي إلى تقليل الوقت للتحقق من الكتل وتحسين الكفاءة.
الشكل 4: عملية التحقق من سلسلة التجزئة
بذرة سلسلة التجزئة
إذا كان المُعدِّن أو مجمعات التعدين تتمتع بقوة تجزئة SHA256 أسرع وقد تكون سلاسل التجزئة الخاصة بها متقدمة على العقد الأخرى في الشبكة. بمرور الوقت، يمكن أن تتراكم ميزة سرعة الكتلة هذه في إزاحة سلسلة تجزئة ضخمة، مما يؤدي إلى تعدين التجزئة غير المتزامنة مع بقية أدوات التحقق من الصحة. قد يؤدي هذا إلى سلسلة من ظواهر التشعب وإعادة التنظيم التي لا يمكن السيطرة عليها.
لتقليل احتمالية انجراف سلسلة التجزئة هذه، تقوم Arweave بمزامنة سلسلة التجزئة العالمية باستخدام الرموز المميزة من الكتل التاريخية على فترات زمنية محددة. يوفر هذا بشكل دوري بذرة جديدة لسلسلة التجزئة، مما يؤدي إلى مزامنة سلسلة التجزئة الخاصة بعامل التعدين مع كتلة تم التحقق منها.
الفاصل الزمني لبذرة سلسلة التجزئة هو كل 50 * 120 تجزئة تعدين (50 يمثل عدد الكتل، 120 يمثل عدد تجزئة التعدين خلال دقيقتين من دورة إنتاج الكتلة).اختر بذرة جديدة حاجز. وهذا يجعل الكتلة الأولية تظهر مرة واحدة تقريبًا كل 50 كتلة Arweave تقريبًا، ولكن نظرًا لبعض الاختلاف في أوقات الكتلة، قد تظهر الكتلة الأولية قبل 50 كتلة.
الشكل 5: كيفية إنشاء بذور سلسلة التجزئة
ما ورد أعلاه هو ما قضى المؤلف بعض الوقت في تعلمه من مواصفات 2.6 المقتبسة من المحتوى، يمكن ملاحظة أن Arweave قد حقق استهلاكًا منخفضًا للطاقة منذ 2.6. بعد ذلك، يتم استخدام آلية أيديولوجية أكثر لامركزية لتشغيل الشبكة بأكملها. تم تنفيذ رؤية ساتوشي ناكاموتو في Arweave.
Arweave 2.6:
https://2-6-spec.arweave.dev/https://2-6-spec.arweave. ديف