Browse Source

bitcoin: Compute block hash while parsing

This avoids having to re-serialize the block header just to compute the
hash. It also frees us from having to carry around all the details in the
header and we can hand around a minimal version.
travis-debug
Christian Decker 5 years ago
parent
commit
4de0d1ca22
  1. 2
      bitcoin/block.c
  2. 2
      bitcoin/block.h

2
bitcoin/block.c

@ -60,7 +60,7 @@ bitcoin_block_from_hex(const tal_t *ctx, const struct chainparams *chainparams,
b->hdr.nonce = pull_le32(&p, &len); b->hdr.nonce = pull_le32(&p, &len);
sha256_le32(&shactx, b->hdr.nonce); sha256_le32(&shactx, b->hdr.nonce);
} }
sha256_double_done(&shactx, &b->hdr.hash); sha256_double_done(&shactx, &b->hdr.hash.shad);
num = pull_varint(&p, &len); num = pull_varint(&p, &len);
b->tx = tal_arr(b, struct bitcoin_tx *, num); b->tx = tal_arr(b, struct bitcoin_tx *, num);

2
bitcoin/block.h

@ -23,7 +23,7 @@ struct bitcoin_block_hdr {
le32 timestamp; le32 timestamp;
le32 target; le32 target;
le32 nonce; le32 nonce;
struct sha256_double hash; struct bitcoin_blkid hash;
}; };
struct elements_block_proof { struct elements_block_proof {

Loading…
Cancel
Save