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 ini bisa menjadi pilihan yang mungkin menarik bagi beberapa pelaku 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
dapat dieksekusi, 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. 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.