Bitcoin Forum
May 28, 2024, 03:15:15 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Валидность заголовка  (Read 523 times)
JiZ (OP)
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
March 27, 2014, 01:08:33 AM
 #1

Не могу понять, как заголовок блока проверяется на валидность.
Имеем заголовок - header и поле, задающее сложность - bits.
От заголовка вычисляется хеш: hash = sha256(sha256(header))
Как далее, зная hash и bits проверить заголовок?

Насколько я понял, надо преобразовать 32-битный bits в 256-target и сравнить его с заголовком,
т.е. если hash <= target , заголовок валиден.
Если вышеописанное верно, как bits преобразуется в target?

yurm
Full Member
***
Offline Offline

Activity: 216
Merit: 100


View Profile
April 07, 2014, 10:24:24 PM
 #2

Code:
target = (bits & 0xFFFFFF) * (256 ** (bits >> 24))
** — возведение в степень.
По-русски: старший байт bits — порядок (256-ричный), остальные три байта — мантисса. Её старший бит в свою очередь является знаковым (по историческим причинам), поэтому допустимый диапазон мантиссы — от 215 до 223-1.

BTC donation:1DPUVJWeN2CNgJvRx5MtbsYWnFsKHxXWrc
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!