comprendre les bits et la difficulté dans un en-tête de bloc
J’ai créé du code javascript à la suite de mes recherches pour essayer de comprendre le fonctionnement de la difficulté cible. Cela semble une bonne idée de partager après avoir trouvé ce message.
Tout d’abord, il crée la plage de puissances SHA256 de 2 seuils pour vous permettre de visualiser l’amplitude de cisaillement de ces nombres.
Ensuite, la fonction bitsToHex est utilisée pour décompresser les « bits ».
Ensuite, les « bits » décompressés sont convertis en BigInt afin d’obtenir l’entier utilisé pour la comparaison de hachage.
// calcule la représentation hexadécimale const hex = BigInt(2n**i-1n)padStart(12padStart(12padEnd(116 * * La propriété bits d’un en-tête de bloc Bitcoin est un entier de 32 bits qui * représente la difficulté cible pour l’extraction de ce bloc * Ensuite * */// calcule la valeur cible à partir de « bits » compresséslog(« \nBitcoin Target Difficulty\n »)org/block-height/1#JSON // « bits » : « 1d00ffff » consoleorg/block-height/776774#JSON // « bits » : « 17073039 » console.log(‘difficulté cible du bloc actuel HEX :’, ); console.log(‘difficulté cible du bloc actuel DEC :’, );
sortie console :
genesis block target difficulty HEX : genesis block target difficulty DEC : current block target difficulty HEX : current block target difficulty DEC :
Comme vous pouvez le voir, la difficulté est devenue beaucoup plus difficile depuis le bloc de genèse.