عندما تنضم عقدة جديدة إلى شبكة 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
: يعرض أوامر مفيدة لتشغيل الحزمة. ذات الصلة للمطورين.