Создать / проверить хеш блока PrimeCoin вручную - PullRequest
0 голосов
/ 11 мая 2018

Итак, я пытаюсь создать хеш-код Primecoin.Например, для первого блока в testnet;

version: 2
"previousblockhash" : 
"221156cf301bc3585e72de34fe1efdb6fbd703bc27cfc468faa1cdd889d0efa0"
"merkleroot" : 
"ec89e34f446bab9d7bbe0c14bea9a01a45c9eafbd383c3c7bfdc3e3c91433d81"
"time" : 1373071487,
"nonce" : 141,
"bits" : "05000000",
bnPrimeChainMultiplier "969371",

И хеш здесь;

https://github.com/BTCPrime/BitcoinPrime/blob/7804466fc0cb70125ccba93ed9e1fdac9374ee83/src/main.h#L1276

Я беру каждое поле, преобразуя его в шестнадцатеричный формат, если это необходимо, меняю местами байты в формате с прямым порядком байтов, объединяю все это вместе и делаю двойной хэш sha256в теме.Я ожидал бы получить хеш блока;"hash": "faba12d46bef122f04929195b29cd0d1cc1ecc0b66d6b35967f3f9c4d8c28fe3",

Но я не являюсь.Что мне не хватает?

Вот мои работы;

Version: 02000000

echo 221156cf301bc3585e72de34fe1efdb6fbd703bc27cfc468faa1cdd889d0efa0 | grep -o .. | tac | paste -sd '' -
PreviousBlockHash: 
a0efd089d8cda1fa68c4cf27bc03d7fbb6fd1efe34de725e58c31b30cf561122

echo ec89e34f446bab9d7bbe0c14bea9a01a45c9eafbd383c3c7bfdc3e3c91433d81 | grep -o .. | tac | paste -sd '' -
MerkleRoot: 813d43913c3edcbfc7c383d3fbeac9451aa0a9be140cbe7b9dab6b444fe389ec


echo "obase=16; 1373071487" | bc
echo 51D7687F | grep -o .. | tac | paste -sd '' -
Timestamp: 7F68D751


echo 05000000 | grep -o .. | tac | paste -sd '' -
Bits: 00000005


echo "obase=16; 141" | bc
echo 8D | grep -o .. | tac | paste -sd '' -
Nonce: 8D
2s; 8D00


echo "obase=16; 969371" | bc
ECA9B
echo ECA9B | grep -o .. | tac | paste -sd '' -
Multiplier: A9EC
2s; 9BCA0E00

Concatenated; 

02000000a0efd089d8cda1fa68c4cf27bc03d7fbb6fd1efe34de725e58c31b30cf561122813d43913c3edcbfc7c383d3fbeac9451aa0a700000000600005006006005005005005006006006005005006006009005006009005406009005005006006009009006006009006006005005000

...