新しいノードが 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
: パッケージの実行に役立つコマンドを表示します。開発者に関連します。