Comment exactement l'horodatage est-il calculé pour la règle d'acceptation +2h et dois-je l'implémenter dans mon nœud Bitcoin pour que le nœud soit toujours valide ?

Ces derniers temps, j'ai lu de nombreux articles et questions/réponses sur bitcoin.stackexchange liés à l'horodatage, mais j'ai encore du mal à comprendre certaines choses. Ils sont liés à la compréhension de certains aspects de la « règle +2h » dans le cadre de l’acceptation de bloc, je les ai donc listés ci-dessous.

Premièrement, si je comprends bien, un bloc sera accepté si son horodatage est jusqu'à 2 heures supérieur à l'heure actuelle ajustée au réseau calculée par le nœud donné.

J'ai trouvé des réponses liées à l'heure ajustée au réseau, mais je ne suis pas sûr d'avoir bien compris.

Si je comprends bien, chaque nœud calcule son heure ajustée au réseau comme suit : lors de la connexion initiale aux pairs, le nœud reçoit les horodatages UTC de tous les pairs dans le message de version. Il calcule la différence entre son horodatage UTC local (système) actuel et l'horodatage UTC reçu de l'homologue. Ces différences sont triées et la médiane est trouvée. L'heure ajustée au réseau est obtenue en additionnant l'heure locale actuelle (horodatage UTC) du nœud et la médiane calculée. Dans un monde idéal (un réseau complètement synchronisé), l’heure ajustée au réseau et l’heure locale du nœud seraient équivalentes puisque toutes les différences seraient égales à 0 et donc à la médiane. De plus, si la différence entre l'heure système actuelle (horodatage UTC) du nœud et l'heure calculée ajustée au réseau (horodatage UTC) est supérieure à 70/90 minutes, l'heure ajustée au réseau est définie sur l'heure système donnée du nœud ( Horodatage UTC). Ainsi, lorsqu'un nouveau bloc arrive, si l'horodatage du bloc est dans la plage de l'horodatage local du nœud + médiane précédemment calculée (horodatage local + médiane = heure ajustée du réseau du nœud) + 2 heures, le bloc est accepté par ce nœud. (en supposant que les autres règles soient satisfaites).

  • Ai-je bien compris la manière dont le temps ajusté au réseau est calculé ? La « règle +2h » est-elle prise en compte par rapport à celle-ci plutôt que l'heure locale (horodatage UTC) du nœud ?
  • Un écart de 70 ou 90 minutes est-il autorisé entre l’heure ajustée du réseau et l’heure locale du nœud ? J'ai lu différentes informations. Ici, ils disent que c'est 70 minutes, et ici, ils disent que c'est 90 minutes.
  • D'après ce que j'ai compris jusqu'à présent, la "règle +2h" ne fait PAS partie du consensus mais représente uniquement la politique d'acceptation de l'implémentation Bitcoin Core du nœud complet Bitcoin. La règle consensuelle est uniquement que l'horodatage du bloc doit être supérieur à l'horodatage médian des 11 derniers blocs.

  • Cela signifie-t-il que si j'implémente mon propre nœud, il me suffit d'implémenter la deuxième règle concernant le consensus, et mon nœud est tout à fait correct, même s'il serait bien d'implémenter également la règle +2h puisque la plupart des nœuds complets exécutent Bitcoin Core, donc pour toujours être parfaitement synchronisé avec la majorité du réseau ?