عندما تنضم عقدة جديدة إلى شبكة Spacemesh، يجب عليها أولاً أن تواكب بقية نظيراتها. يُشار إلى هذه العملية باسم "المزامنة" وهي شرط أساسي لتشغيل عقدة كاملة أو متداخلة. تاريخيًا، كان من الصعب على المتسللين مزامنة العقد الخاصة بهم بنجاح نظرًا لمدى استهلاك عملية المزامنة للوقت. في المقام الأول، تتضمن المزامنة التنزيل والتحقق بشكل مستقل من جميع الكتل والمعاملات ووحدات ATX، إلى جانب بعض البيانات الأخرى، وإعادة بناء الحالة الحالية من البداية. وبطبيعة الحال، استغرق هذا الشخص العادي الكثير من الوقت. على هذا النحو، واستجابة للصعوبة المتزايدة لمزامنة عقدة جديدة، قمنا بإعداد طريقة لتسريع عملية المزامنة. تقديم، المزامنة السريعة.
باستخدام Quicksync، بدلاً من تنفيذ كافة إجراءات المزامنة كما هو مذكور أعلاه وحساب حالة الشبكة منذ البداية، يحتاج المرء فقط إلى تنزيل الحالة الحالية من نظير موثوق به مثل فريق تطوير Spacemesh أو عقدة أخرى. على الرغم من أن هذا يتعارض مع فلسفة web3 المتمثلة في "لا تثق، تحقق"، فإننا نعتقد أن هذا قد يكون خيارًا قد يكون بعض المتسللين مهتمين به نظرًا لارتفاع معدل مشكلات المزامنة. علاوة على ذلك، لا شيء يمنع المتطفل من التحقق من هذه الحالة في الخلفية بمجرد تنزيله.
الحالة (وتسمى أيضًا الأرشيف) التي تم تنزيلها تكون على شكل ملف State.sql ويمكن تنزيلها تلقائيًا باستخدام Smapp، أو يدويًا باستخدام الأداة المساعدة quicksync-rs .
فيما يلي تعليمات استخدام quicksync-rs لتنزيل أحدث حالة. لاحظ أنه إذا كنت تستخدم أحدث إصدار من Smapp، فسوف يعرض تلقائيًا استخدام المزامنة السريعة لجلب أحدث حالة.
quicksync-windows-vX.XXzip من قسم إصدارات GitHub.quicksync.exe من الملف المضغوط الذي تم تنزيله في الخطوة 1.quicksync.exe إلى مجلد spacemesh الخاص بك. بشكل افتراضي، يوجد هذا المجلد في: C:Users{USERNAME}spacemesh .state.sql في مجلد بيانات العقدة (الموجود داخل دليل spacemesh ويسمى node-data افتراضيًا)، فاحذفه. بخلاف ذلك، تابع إلى الخطوة 5.spacemesh حيث يوجد ملف quicksync.exe . يمكنك القيام بذلك عن طريق الضغط على مفتاح "shift" والنقر بزر الماوس الأيمن وتحديد خيار "فتح Powershell هنا"..quicksync.exe --help ثم اضغط على زر الإدخال. سيظهر لك هذا الخيارات المتاحة..quicksync.exe download --node-data .node-data . هنا، .node-data هو المسار إلى مجلد بيانات العقدة.quicksync-rs بتنزيل الحالة التي تم تنزيلها وفك ضغطها والتحقق منها.state.sql . quicksync-linux-vX.XXzip من قسم إصدارات GitHub.quicksync من الملف المضغوط الذي تم تنزيله في الخطوة 1.quicksync قابلاً للتنفيذ باستخدام أمر واجهة سطر الأوامر: chmod +x quicksync . الآن لديك quicksync القابلة للتنفيذ.quicksync القابل للتنفيذ إلى دليل spacemesh (الموجود في ~/spacemesh افتراضيًا).state.sql في مجلد بيانات العقدة (الموجود داخل دليل spacemesh ويسمى node-data افتراضيًا)، فاحذفه. بخلاف ذلك، تابع إلى الخطوة 6.spacemesh حيث يوجد ملف quicksync القابل للتنفيذ، وقم بتشغيل هذا الأمر: ./quicksync download --node-data ./node-data . هنا، ./node-data هو المسار إلى مجلد بيانات العقدة.quicksync-rs بتنزيل الحالة التي تم تنزيلها وفك ضغطها والتحقق منها.state.sql . quicksync-macos-vX.XXzip (أو quicksync-macos-arm64-vX.XXzip إذا كان لديك جهاز Mac من سلسلة M) من قسم إصدارات GitHub.quicksync من الملف المضغوط الذي تم تنزيله في الخطوة 1.quicksync قابلاً للتنفيذ باستخدام أمر واجهة سطر الأوامر: chmod +x quicksync . الآن لديك quicksync القابلة للتنفيذ.quicksync القابل للتنفيذ إلى دليل spacemesh . (الموجود في ~/spacemesh افتراضيًا).state.sql في مجلد بيانات العقدة (الموجود داخل دليل spacemesh والمسمى node-data بشكل افتراضي)، فاحذفه. بخلاف ذلك، تابع إلى الخطوة 6.spacemesh حيث يوجد ملف quicksync القابل للتنفيذ، وقم بتشغيل هذا الأمر: ./quicksync download --node-data ./node-data . هنا، ./node-data هو المسار إلى مجلد بيانات العقدة.quicksync-rs بتنزيل الحالة التي تم تنزيلها وفك ضغطها والتحقق منها.state.sql . فيما يلي رموز الخروج وماذا تعني:
0 - كل خير.1 - فشل تنزيل الأرشيف خلال الحد الأقصى لعدد المحاولات (لأي سبب).2 - لا يمكن فك ضغط الأرشيف: لا توجد مساحة كافية على القرص.3 - لا يمكن فك الأرشيف: لأي سبب آخر.4 - المجموع الاختباري state.sql التي تم تنزيلها غير صالح.5 - لا يمكن التحقق من المجموع الاختباري لسبب ما.6 - لا يمكن إنشاء ملف النسخ الاحتياطي.7 - المجموع الاختباري للأرشيف غير صالح.8 - لا يمكن التحقق من صحة المجموع الاختباري للأرشيف. من الممكن أيضًا تنزيل وتطبيق المزامنة السريعة المستندة إلى دلتا. بافتراض أن state.sql موجود بالفعل، فمن المفيد التفكير في تطبيق دلتا فقط فوق ذلك. يرجى ملاحظة أن مزامنة الأجزاء الكبيرة ستكون أسرع مع المزامنة السريعة الكاملة، ولكن إذا كنت متزامنًا بالفعل وتحتاج فقط إلى متابعة أحدث حالة، فإن المزامنة السريعة الإضافية هي الحل الأمثل.
تعمل المزامنة السريعة التزايدية عن طريق التحقق من أحدث طبقة تم التحقق منها في قاعدة البيانات ثم تنزيل ملفات صغيرة (عادةً حوالي 50 ميجابايت ولكن يصل إلى 200 ميجابايت) وتطبيقها فوق state.sql الموجود. يمكن مقاطعة كل دفعة.
تعتبر استعادة نفس الدفعة مرتين أمرًا محظورًا ولن يؤثر على قاعدة البيانات.
يتم عرض قائمة الأوامر المتوفرة لأداة quicksync أدناه. لاحظ أن هذه الأوامر مخصصة لنظام التشغيل Linux. ببساطة، قم بتغيير ./quicksync إلى .quicksync.exe لأوامر Windows.
./quicksync download : يقوم بتنزيل أحدث ملف state.sql ../quicksync check : يتحقق مما إذا كانت الحالة الحالية. state.sql محدثة../quicksync help : يعرض جميع العمليات التي يمكن أن يقوم بها quicksync ../quicksync incremental : يسمح بالعمل مع المزامنة السريعة القائمة على دلتا../quicksync --version : يعرض إصدار المزامنة السريعة.cargo run -- help : يعرض أوامر مفيدة لتشغيل الحزمة. ذات الصلة للمطورين.