Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Plus sur l'En-Tête de Bloc | Blocs et Transactions
Introduction à la Blockchain
course content

Contenu du cours

Introduction à la Blockchain

Introduction à la Blockchain

1. Commencer
2. Blocs et Transactions
3. Concepts Avancés de la Blockchain

book
Plus sur l'En-Tête de Bloc

Avant de pouvoir explorer le bloc d'en-tête en détail, nous devons d'abord comprendre la différence entre les formats big endian et little endian.

Little Endian et Big Endian

Tout d'abord, nous devons comprendre ce que signifie réellement l'endianness.

Le format Big endian stocke le byte le plus significatif en premier, ce qui correspond à la façon dont les humains lisent généralement les nombres. Prenons le nombre décimal 234567890 comme exemple et convertissons-le en hexadécimal et binaire en utilisant Python et affichons les résultats :

123
decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
copy

Étant donné que les ordinateurs stockent les entiers en utilisant un nombre entier de bytes, et que chaque 2 chiffres hexadécimaux correspondent à un byte, nous avons besoin d'un nombre pair de chiffres. La représentation hexadécimale de notre nombre, 0xDFB38D2, contient 7 chiffres, nous devons donc ajouter un zéro 0 à gauche. Le nombre résultant, 0x0DFB38D2, a maintenant 8 chiffres hexadécimaux (correspond exactement à 4 bytes) et la même valeur.

De même, notre nombre binaire a 28 bits, et chaque 8 bits correspondent à 1 byte, nous avons donc besoin que le nombre de bits soit divisible par 8 en ajoutant 4 zéros 0 à gauche. Le nombre résultant, 0b00001101111110110011100011010010, a maintenant 32 bits (correspond exactement à 4 bytes) et la même valeur.

En utilisant Python, nous avons obtenu le format big endian, que nous obtiendrions également si nous conversions manuellement, et notre nombre se présente comme suit :

  • 0x0DFB38D2 en hexadécimal;
  • 0b00001101111110110011100011010010 en binaire.

Jetons un coup d'œil au tableau ci-dessous pour comprendre le format big endian :

Inversement, le format little endian stocke le byte le moins significatif en premier, inversant l'ordre intuitif :

Comme vous pouvez le voir, notre nombre au format little endian ressemble à ceci :

  • 0xD238FB0D en hexadécimal ;

  • 0b11010010001110001111101100001101 en binaire.

Retour au Header du Bloc

Pour récapituler, l'en-tête fait exactement 80 octets contenant six champs de données, chacun d'eux étant au format little endian. Regardons maintenant l'en-tête du bloc 645536 :

Étant donné que l'en-tête de bloc occupe exactement 80 octets, il y a exactement 160 chiffres hexadécimaux (chaque octet correspond à 2 chiffres hexadécimaux). Le champ Version, par exemple, occupe 4 octets, donc il y a 8 chiffres hexadécimaux.

Voici les informations détaillées sur ce bloc dans l'explorateur :

Les champs ici sont affichés au format big endian. Examinons le champ Bits, par exemple, et comparons-le avec sa représentation dans l'en-tête de bloc. Sa représentation hexadécimale est 0x171007ea au format big endian :

Si nous le convertissons au format little endian, il ressemblera à ceci :

Comme vous pouvez le voir, c'est exactement ce que nous avions dans l'en-tête de bloc.

À quoi se réfère le terme "endianness" dans le contexte de la blockchain et des systèmes informatiques ?

À quoi se réfère le terme "endianness" dans le contexte de la blockchain et des systèmes informatiques ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3
We're sorry to hear that something went wrong. What happened?
some-alt