`tezos-client bootstrapped`:ネットワークへのブートストラップを待たずに、なぜ早く終了するのですか?
1 回答
- 投票
ブロックチェーンまたはノードには、チェーンが最新であるか「ブートストラップ」されているかを知るためのインジケーターがありません.これがブロックチェーンの仕組みです.いつでも、チェーンの新しいブロックまたは新しいフォークが存在する可能性があります.ローカルに保存されているブロックチェーンのバージョンが信頼できる情報源であるかどうかをノードが知る唯一の方法は、ネットワーク上の他のノードピアに問い合わせることです.すでにご存知のように、これを行う方法は、tezos-clientbootstrapped
を使用することです.
では、tezos-clientbootstrapped
が正しく動作しないのはなぜですか.そうでないのに、なぜそれはあなたに「嘘をついている」のですか?重要なのは、ブートストラップされていることに自信を持って同意する前に確認するノードピアの数のしきい値を設定するための構成です.簡単に言えば、ノードを起動するときは、次のようなものが必要になります.
./tezos-node run --bootstrap-threshold=10
これにより、tezos-clientbootstrapped
を使用して「ブートストラップ」の確認が表示される前に、10個のピアで確認されます.
参考までに、<code> ./tezos-node run help を実行してノードのマニュアルページから引数を公式に説明します.
-bootstrap-threshold=NUM
チェーン同期が必要なピアの数を設定します
ノードのブートストラップが完了しました
There is no indicator on the blockchain or the node to know if the chain is at latest or "bootstrapped". That's how blockchains work. At any moment there could be a new block or a new fork of the chain. The only way for your node to know if your local stored version of the blockchain is the source of truth is by asking other node peers on the network. As you already know, the way to do this is via tezos-client bootstrapped
.
So the question comes down to, why isn't tezos-client bootstrapped
behaving correctly? why is it "lying" to you when it isn't? The key is the configuration to set the threshold for how many node peers to confirm with before we can confidently agree that we are bootstrapped. Simply put, when starting your node, you would want something like this:
./tezos-node run --bootstrap-threshold=10
This would confirm with 10 peers before you would see "bootstrapped" confirmation using tezos-client bootstrapped
.
FYI, here is the official description for the argument from the node man page by running ./tezos-node run help
:
--bootstrap-threshold=NUM
Set the number of peers with whom a chain synchronization must be
completed to bootstrap the node
Tezosノードを最初から起動すると、ブートストラップに時間がかかります.
tezos-client bootstrapped
コマンドで進行状況を監視できます.ただし、コマンドは通常、ブートストラップの非常に早い段階で終了し、
を通知します.Bootstrapped.
それはどういう意味ですか?それはコマンドのバグですか、それとも
Bootstrapped
の概念が私が持っているものとは異なりますか?完全な(またはほぼ完全な)DB同期ですか?そして、ノードが完全にブートストラップされていることを確認するために現在推奨されている方法は何ですか?(もちろん、
tezos-client bootstrapped
コマンドを定期的に使用して現在のステータスを確認することはできますが、少し面倒です...)