Ketika sebuah node baru bergabung dengan jaringan Spacemesh, node tersebut harus terlebih dahulu menyamakan kecepatannya dengan node peers lainnya. Proses ini disebut sebagai "sinkronisasi" dan merupakan prasyarat untuk menjalankan node penuh atau node smeshing. Secara historis, sulit bagi smesher untuk menyinkronkan node mereka dengan sukses karena proses sinkronisasi yang memakan waktu. Terutama, sinkronisasi mencakup pengunduhan dan verifikasi independen semua blok, transaksi, ATX, serta beberapa data lainnya, dan merekonstruksi keadaan saat ini dari awal. Tentu saja, hal ini memakan banyak waktu bagi para smesher rata-rata. Oleh karena itu, sebagai respons terhadap semakin sulitnya menyinkronkan node baru, kami telah menyiapkan cara untuk mempercepat proses sinkronisasi. Memperkenalkan, Sinkronisasi Cepat.
Dengan Quicksync, alih-alih melakukan semua tindakan sinkronisasi seperti yang dinyatakan di atas dan menghitung status jaringan dari awal, seseorang hanya perlu mengunduh status saat ini dari rekan tepercaya seperti tim pengembang Spacemesh atau node lainnya. Meskipun hal ini bertentangan dengan filosofi web3, yaitu "Jangan percaya, verifikasi", kami yakin bahwa ini bisa menjadi pilihan yang mungkin diminati oleh beberapa smesher mengingat tingginya tingkat masalah sinkronisasi. Selain itu, tidak ada yang menghalangi smesher untuk memverifikasi status ini di latar belakang setelah diunduh.
Status (juga disebut arsip) yang diunduh berbentuk file state.sql dan dapat diunduh secara otomatis menggunakan Smapp, atau secara manual dengan menggunakan utilitas quicksync-rs .
Petunjuk penggunaan quicksync-rs untuk mengunduh status terbaru diberikan di bawah. Perhatikan bahwa jika Anda menggunakan Smapp versi terbaru, maka secara otomatis akan menawarkan untuk menggunakan quicksync untuk mengambil status terbaru.
quicksync-windows-vX.XXzip dari bagian rilis GitHub.quicksync.exe dari file zip yang diunduh pada langkah 1.quicksync.exe ke folder spacemesh Anda. Secara default, folder ini terletak di: C:Users{USERNAME}spacemesh .state.sql di folder data node Anda (terletak di dalam direktori spacemesh dan diberi nama node-data secara default), hapus file tersebut. Jika tidak, lanjutkan ke langkah 5.spacemesh tempat file quicksync.exe berada. Anda dapat melakukan ini dengan menahan tombol "shift", mengklik kanan, dan memilih opsi "Open Powershell here"..quicksync.exe --help dan tekan enter. Ini akan menunjukkan kepada Anda opsi yang tersedia..quicksync.exe download --node-data .node-data . Di sini, .node-data adalah jalur ke folder data simpul.quicksync-rs akan mengunduh, membuka zip, dan memverifikasi status unduhan.state.sql terbaru. quicksync-linux-vX.XXzip dari bagian rilis GitHub.quicksync dari file zip yang diunduh pada langkah 1.quicksync dapat dieksekusi dengan menggunakan perintah CLI ini: chmod +x quicksync . Sekarang Anda memiliki quicksync yang dapat dieksekusi.quicksync yang dapat dieksekusi ke direktori spacemesh ( terletak di ~/spacemesh secara default).state.sql di folder data node Anda (terletak di dalam direktori spacemesh dan diberi nama node-data secara default), hapus file tersebut. Jika tidak, lanjutkan ke langkah 6.spacemesh tempat quicksync executable berada, dan jalankan perintah ini: ./quicksync download --node-data ./node-data . Di sini, ./node-data adalah jalur ke folder data node.quicksync-rs akan mengunduh, membuka zip, dan memverifikasi status unduhan.state.sql terbaru. quicksync-macos-vX.XXzip (atau quicksync-macos-arm64-vX.XXzip jika Anda memiliki Mac seri M) dari bagian rilis GitHub.quicksync dari file zip yang diunduh pada langkah 1.quicksync dapat dieksekusi dengan menggunakan perintah CLI ini: chmod +x quicksync . Sekarang Anda memiliki quicksync yang dapat dieksekusi.quicksync yang dapat dieksekusi ke direktori spacemesh . (terletak di ~/spacemesh secara default).state.sql di folder data node Anda (terletak di dalam direktori spacemesh dan diberi nama node-data secara default), hapus file tersebut. Jika tidak, lanjutkan ke langkah 6.spacemesh tempat quicksync executable berada, dan jalankan perintah ini: ./quicksync download --node-data ./node-data . Di sini, ./node-data adalah jalur ke folder data node.quicksync-rs akan mengunduh, membuka zip, dan memverifikasi status unduhan.state.sql terbaru. Di bawah ini tercantum kode keluar dan artinya:
0 - Semuanya baik-baik saja.1 - Gagal mengunduh arsip dalam percobaan ulang maksimal (alasan apa pun).2 - Tidak dapat membongkar arsip: ruang disk tidak cukup.3 - Tidak dapat membongkar arsip: alasan lain.4 - Checksum tidak valid dari state.sql yang diunduh.5 - Tidak dapat memverifikasi checksum karena alasan tertentu.6 - Tidak dapat membuat file cadangan.7 - Checksum arsip tidak valid.8 - Tidak dapat memvalidasi checksum arsip. Dimungkinkan juga untuk mengunduh dan menerapkan sinkronisasi cepat berbasis delta. Dengan asumsi bahwa state.sql sudah ada, ada baiknya mempertimbangkan untuk hanya menerapkan delta saja. Harap dicatat bahwa sinkronisasi sebagian besar akan lebih cepat dengan quicksync penuh, tetapi jika Anda sudah disinkronkan dan hanya perlu mengikuti status terbaru, quicksync inkrementa adalah cara yang tepat.
Sinkronisasi cepat tambahan bekerja dengan memeriksa lapisan terverifikasi terbaru dalam database dan kemudian mengunduh file kecil (biasanya sekitar 50 MB tetapi hingga 200 MB) dan menerapkannya di atas state.sql yang ada. Setiap batch dapat diinterupsi.
Memulihkan batch yang sama dua kali dianggap tidak boleh dilakukan dan tidak akan memengaruhi database.
Daftar perintah yang tersedia untuk utilitas quicksync disajikan di bawah ini. Perhatikan bahwa perintah ini untuk Linux. Sederhananya, Ubah ./quicksync menjadi .quicksync.exe Untuk perintah Windows.
./quicksync download : Mengunduh file state.sql terbaru../quicksync check : Memeriksa apakah state.sql saat ini adalah yang terbaru../quicksync help : Menampilkan semua operasi yang dapat dilakukan quicksync ../quicksync incremental : Memungkinkan untuk bekerja dengan quicksync berbasis delta../quicksync --version : Menampilkan versi quicksync.cargo run -- help : Menampilkan perintah berguna untuk menjalankan paket. Relevan untuk pengembang.