`tezos-client bootstrapped`: ¿por qué se cierra demasiado pronto, realmente sin esperar el arranque a la red?
1 respuesta
- votos
No hayningúnindicadoren la cadena debloques oelnodopara saber si la cadenaestá amástardar o "arrancada". Asíes comofuncionan las cadenas debloques. En cualquiermomentopuede haber unnuevobloque o unanueva horquilla de la cadena. La únicaforma de que sunodo sepa si su versión local almacenada de la cadena debloqueses lafuente de la verdadespreguntando a otros compañeros denodoen la red. Como ya sabe,laforma de hacerloes através de tezos-client bootstrapped
.
Entonces,lapregunta se reduce a,¿por qué tezos-client bootstrapped
no se comporta correctamente? ¿Por quéte está "mintiendo" cuandono loes? La clavees la configuraciónparaestablecerel umbral de cuántospares denodos confirmar antes de quepodamosestar de acuerdo con seguridaden queestamosiniciando. Enpocaspalabras,aliniciar sunodo,querrá algo comoesto:
./tezos-node run --bootstrap-threshold=10
Esto confirmaría con 10pares antes de ver la confirmación "bootstrapped" usando tezos-client bootstrapped
.
Para suinformación,aquíestá la descripción oficial del argumento de lapágina demanual delnodoejecutando ./tezos-node run help
:
--bootstrap-threshold=NUM
Set the number of peers with whom a chain synchronization must be
completed to bootstrap the node
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
Cuandoiniciamos unnodo de Tezos desde cero,llevamuchotiempo arrancar.Podemosmonitorearelprogreso conel comando
tezos-client bootstrapped
.Sinembargo,el comandogeneralmente se cierraen unaetapamuytemprana delbootstrapping,indicando
Bootstrapped.
¿Qué significa?¿Es unerror del comando,o lanoción de
Bootstrapped
es diferente de la quetengo,sincronización de DB completa (o casi completa)?Y,¿cuáles laforma recomendada actual de comprobar quemi nodoestá completamente arrancado?(Por supuesto quepuedo usarel comando
tezos-client bootstrapped
regularmentepara verelestado actual,peroes unpocotedioso ...)