新しいノードが Spacemesh ネットワークに参加すると、最初に残りのピアと同じ速度に達する必要があります。このプロセスは「同期」と呼ばれ、フル ノードまたはメッシュ ノードを実行するための前提条件です。これまで、同期プロセスには時間がかかるため、スメッシャーがノードを正常に同期することは困難でした。主に、同期には、すべてのブロック、トランザクション、ATX、およびその他のデータをダウンロードして個別に検証し、現在の状態を最初から再構築することが含まれます。当然のことながら、平均的なスメッシャーはこれに多くの時間を要しました。そのため、新しいノードの同期がますます困難になることに対応して、同期プロセスを高速化する方法を用意しました。クイックシンクのご紹介です。
Quicksync を使用すると、上記のすべての同期アクションを実行して生成からネットワーク状態を計算する代わりに、Spacemesh 開発チームやその他のノードなどの信頼できるピアから現在の状態をダウンロードするだけで済みます。これは、Web3 の「信頼するな、検証せよ」の哲学に反しますが、同期に関するトラブルの発生率が高いことを考えると、一部のスメッシャーが興味を持つ選択肢になる可能性があると考えられます。さらに、ダウンロード後、スメッシャーがバックグラウンドでこの状態を検証することを妨げるものはありません。
ダウンロードされる状態 (アーカイブとも呼ばれます) は、state.sql ファイルの形式であり、Smapp を使用して自動的にダウンロードすることも、 quicksync-rsユーティリティを使用して手動でダウンロードすることもできます。
quicksync-rs使用して最新の状態をダウンロードする手順を以下に示します。 Smapp の最新バージョンを使用している場合は、最新の状態を取得するためにクイック同期を使用することが自動的に提案されることに注意してください。
quicksync-windows-vX.XXzipの最新リリースをダウンロードします。quicksync.exe解凍します。quicksync.exe spacemeshフォルダーに移動します。デフォルトでは、このフォルダーはC:Users{USERNAME}spacemeshにあります。spacemeshディレクトリ内にあり、デフォルトではnode-dataという名前が付いています) にstate.sqlファイルがある場合は、それを削除します。それ以外の場合は、ステップ 5 に進みます。quicksync.exeファイルがあるspacemeshディレクトリで Windows Powershell ターミナルを開きます。これを行うには、「shift」キーを押しながら右クリックし、「ここで Powershell を開く」オプションを選択します。.quicksync.exe --helpと入力し、Enter キーを押します。これにより、利用可能なオプションが表示されます。.quicksync.exe download --node-data .node-dataと入力します。ここで、 .node-dataノード データ フォルダーへのパスです。quicksync-rsユーティリティはダウンロード、解凍し、ダウンロードされた状態を確認します。state.sqlファイルが存在するはずです。 quicksync-linux-vX.XXzipの最新リリースをダウンロードします。quicksyncファイルを抽出します。chmod +x quicksyncを使用して、 quicksyncファイルを実行可能にします。これで、 quicksync実行可能ファイルが完成しました。quicksync実行可能ファイルをspacemeshディレクトリ (デフォルトでは~/spacemeshにあります) に移動します。spacemeshディレクトリ内にあり、デフォルトではnode-dataという名前が付いています) にstate.sqlファイルがある場合は、それを削除します。それ以外の場合は、ステップ 6 に進みます。quicksync実行可能ファイルがあるspacemeshディレクトリでターミナルを開き、コマンド./quicksync download --node-data ./node-dataを実行します。ここで、 ./node-dataはノード データ フォルダーへのパスです。quicksync-rsユーティリティはダウンロード、解凍し、ダウンロードされた状態を確認します。state.sqlファイルが存在するはずです。 quicksync-macos-vX.XXzip (M シリーズ Mac をお持ちの場合は、 quicksync-macos-arm64-vX.XXzip ) の最新リリースをダウンロードします。quicksyncファイルを抽出します。chmod +x quicksyncを使用して、 quicksyncファイルを実行可能にします。これで、 quicksync実行可能ファイルが完成しました。quicksync実行可能ファイルをspacemeshディレクトリに移動します。 (デフォルトでは~/spacemeshにあります)。spacemeshディレクトリ内にあり、デフォルトではnode-dataという名前が付いています) にstate.sqlファイルがある場合は、それを削除します。それ以外の場合は、ステップ 6 に進みます。quicksync実行可能ファイルがあるspacemeshディレクトリでターミナルを開き、コマンド./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がすでに存在すると仮定すると、それに加えてデルタのみを適用することを検討する価値があります。完全なクイック同期を使用すると、大部分の同期が高速になりますが、すでに同期が完了していて、最新の状態に追いつきたいだけの場合は、増分クイック同期を使用することをお勧めします。
増分クイック同期は、データベース内の最新の検証済みレイヤーをチェックし、小さなファイル (通常は約 50MB ですが最大 200MB) をダウンロードして、既存のstate.sqlの上に適用することによって機能します。各バッチは中断できます。
同じバッチを 2 回復元することは何も行わないと見なされ、データベースには影響しません。
quicksyncユーティリティで使用できるコマンドのリストを以下に示します。これらのコマンドは Linux 用であることに注意してください。 Windows コマンドの場合は、 ./quicksync quicksync を.quicksync.exeに変更するだけです。
./quicksync download : 最新のstate.sqlファイルをダウンロードします。./quicksync check : 現在のstate.sqlが最新かどうかを確認します。./quicksync help : quicksyncで実行できるすべての操作を表示します。./quicksync incremental : デルタベースのクイック同期を使用できるようにします。./quicksync --version : Quicksync のバージョンを表示します。cargo run -- help : パッケージの実行に役立つコマンドを表示します。開発者に関連します。