Bitcoin Core : Voir souvent des blocs de rembobinage… et un index de bloc de chargement

  • Le portefeuille principal est Bitcoin Core, différent de Bitcore ou d'autres portefeuilles avec "core" dans leur nom
  • Les blocs de rembobinage sont associés aux réorganisations de la blockchain et peuvent avoir lieu environ une fois toutes les deux semaines, sans inquiétudes
  • "Rewinding" peut également être utilisé pour corriger des erreurs de données potentielles dans le code source de Bitcoin Core
  • Au démarrage, Bitcoin Core charge différentes parties de sa base de données et vérifie leur intégrité, dont l'index des blocs

J'utilise le portefeuille principal.

Il existe plusieurs applications de portefeuille différentes avec « core » dans leur nom. Cette réponse s'applique à Bitcoin Core mais pas à Bitcore ou à d'autres portefeuilles dont le nom inclut le mot « core ».

Je vois souvent des blocs de rembobinage…

Je n'ai pas trouvé le mot « Rewinding » dans la source de Bitcoin core v23.

Les occurrences du mot « rewind » me semblent associées aux réorganisations de la blockchain. Murch a commenté qu'un changement de pointe de chaîne d'un seul bloc pourrait avoir lieu une fois toutes les deux semaines. C'est une routine et ce n'est pas une source d'inquiétude,

Bitcoin Core : Voir souvent des blocs de rembobinage… et un index de bloc de chargement

Le seul message similaire que je puisse trouver mentionnant « rembobiner » est le suivant :

index\base.cpp: FatalError(« %s : échec du rembobinage de l'index %s jusqu'à un bout de chaîne précédent », index\base.cpp: FatalError(« %s : échec du rembobinage de l'index %s jusqu'à un bout de chaîne précédent »,

Je ne travaille pas sur ce code, je n'ai donc aucune idée réelle, mais examiner le code source peut aider à clarifier ce que cela signifie. Par exemple

// S'assure que le bloc se connecte à un ancêtre du meilleur bloc actuel. Cela devrait être le cas // la plupart du temps, mais peut-être pas immédiatement après que le thread de synchronisation ait rattrapé et défini // m_synced. Considérons le cas où il y a une réorganisation et où les blocs sur la branche obsolète sont // dans le retard de la file d'attente ValidationInterface même après que le thread de synchronisation ait rattrapé // le nouveau bout de chaîne. Dans ce cas peu probable, enregistrez un avertissement et laissez la file d'attente se vider. if (best_block_index->GetAncestor(pindex->nHeight – 1) ! = pindex->pprev) { LogPrintf(« %s: AVERTISSEMENT : le bloc %s ne se connecte pas à un ancêtre de » /* Suite */ « meilleure chaîne connue (tip=%s); pas de mise à jour de l'index\n », __func__, pindex->GetBlockHash().ToString(), best_block_index->GetBlockHash().ToString()); retour; } if (best_block_index ! = pindex->pprev && ! Rewind(best_block_index, pindex->pprev)) { FatalError(« %s : échec du rembobinage de l'index %s à une pointe de chaîne précédente », __func__, GetName()); retour; }

Étant donné que ne pas rembobiner l’index est une erreur fatale, je m’attendrais à ce que Bitcoin Core se ferme. Peut-être que cela indique une corruption des données ?

… et Chargement de l'index du bloc

Chaque fois que vous démarrez Bitcoin Core, il doit d’abord charger certaines parties de sa base de données et vérifier leur intégrité. Il le fait par étapes et les messages d'information vous permettent de savoir jusqu'où il a progressé dans ce processus. Le chargement de l'index de bloc en fait partie :

Sur mon PC « Chargement de l'index des blocs… » est rapidement remplacé par « Vérification des blocs… »

Le message « Chargement de l'index du bloc » apparaît dans init.cpp et dans qt/bitcoinstrings.cpp dans le code source de Bitcoin Core.