1

I refer to this document for using getBlock rpc api.

https://bitcoin.org/en/developer-reference#getblock

{
  "hash" : "hash",     (string) the block hash (same as provided)
  "confirmations" : n,   (numeric) The number of confirmations, or -1 if the block is not on the main chain
  "size" : n,            (numeric) The block size
  "strippedsize" : n,    (numeric) The block size excluding witness data
  "weight" : n           (numeric) The block weight as defined in BIP 141
  "height" : n,          (numeric) The block height or index
  "version" : n,         (numeric) The block version
  "versionHex" : "00000000", (string) The block version formatted in hexadecimal
  "merkleroot" : "xxxx", (string) The merkle root
  "tx" : [               (array of string) The transaction ids
     "transactionid"     (string) The transaction id
     ,...
  ],
  "time" : ttt,          (numeric) The block time in seconds since epoch (Jan 1 1970 GMT)
  "mediantime" : ttt,    (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT)
  "nonce" : n,           (numeric) The nonce
  "bits" : "1d00ffff", (string) The bits
  "difficulty" : x.xxx,  (numeric) The difficulty
  "chainwork" : "xxxx",  (string) Expected number of hashes required to produce the chain up to this block (in hex)
  "nTx" : n,             (numeric) The number of transactions in the block.
  "previousblockhash" : "hash",  (string) The hash of the previous block
  "nextblockhash" : "hash"       (string) The hash of the next block
}

I want to know meaning size and bits

  1. What is size field mean?? block size as byte??
  2. What is bits field mean?? block size as bits??

May I use chainwork diff for calculating hash power for each block?

According to this doc, https://bitcoin.org/en/developer-reference#getblock, chainwork means

 "chainwork": "xxxx"           (string) total amount of work in active chain, in hexadecimal

For example, let's assume that chainwork of block 12345 is 1111 and that of block 12344 is 1100.

Then may I consider that hash power for block 12345 is 11 since 1111 - 1100 is 11?

1

size refers to the size of the block, which is 80 bytes for the header + sum(tx_sizes). As pointed out in the comments, this includes the segwit data and is meant to match the actual, on disk size of the block.

bits refers to nBits, which encodes the target difficulty for the block. You can see an explanation of the encoding scheme here.

chainwork represents the sum total of the expected hashing operations required to product the chain up to this block - this means that you cannot use it for calculating the hash power for the current block, as it is the sum of all the hashing required to produce every block from the genesis block up until the current block.

In fact, you can never get a precise measurement of the active hash power based on a single block. However, there are ways to calculate the average/expected hash power on the network at a given point in time, as described in this question.

  • 1
    As per my understanding the size reflects the actual size of the block on disk including the witness. I think what you are referring to is strippedsize. – Ugam Kamat Sep 30 at 5:35
  • @UgamKamat You're right, I somehow completely missed the introduction of the stripped size field! I've edited the answer – Raghav Sood Sep 30 at 5:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.