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

<p><code>bits</code> refers to <code>nBits</code>, which encodes the target difficulty for the block. You can see an explanation of the encoding scheme <a href="https://bitcoin.org/en/developer-reference#target-nbits" rel="nofollow noreferrer">here</a>.</p>

<p><code>chainwork</code> represents the sum total of the expected hashing operations required to product the chain <em>up to</em> 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.</p>

<p>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 <a href="https://bitcoin.stackexchange.com/q/11139/7272">this question</a>.</p>

CC BY-SA 4.0
2019-09-30T05:35:33.833Z
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
CC BY-SA 4.0
2019-09-30T05:38:08.893Z
@UgamKamat You're right, I somehow completely missed the introduction of the stripped size field! I've edited the answer
Raghav Sood
CC BY-SA 4.0
2019-09-30T05:32:48.923Z
2019-09-30T05:38:54.027Z
2019-09-30T05:38:54.027Z
Raghav Sood
<p>I refer to this document for using <code>getBlock</code> rpc api.</p>

<p><a href="https://bitcoin.org/en/developer-reference#getblock" rel="nofollow noreferrer">https://bitcoin.org/en/developer-reference#getblock</a></p>

<pre><code>{
  "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
}

</code></pre>

<h1>I want to know meaning <code>size</code> and <code>bits</code></h1>

<ol>
<li>What is <code>size</code> field mean?? block size as byte??</li>
<li>What is <code>bits</code> field mean?? block size as bits?? </li>
</ol>

<hr>

<h1>May I use chainwork diff for calculating hash power for each block?</h1>

<p>According to this doc, <a href="https://bitcoin.org/en/developer-reference#getblock" rel="nofollow noreferrer">https://bitcoin.org/en/developer-reference#getblock</a>, <code>chainwork</code> means</p>

<pre><code> "chainwork": "xxxx"           (string) total amount of work in active chain, in hexadecimal
</code></pre>

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

<p>Then may I consider that <strong>hash power for block 12345 is 11</strong> since 1111 - 1100 is 11?</p>

<bitcoin-core><blockchain><api>
what is exact meaning of some field of response of `getBlock` rpc api
dingyo777
# what is exact meaning of some field of response of `getBlock` rpc api

(Asked by: username_0 on 2019-09-30)

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?

**Tags:** bitcoin-core, blockchain, api


---

## 1 answers

### Answer by username_1 on 2019-09-30. Score: 2 | Accepted answer

`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](https://bitcoin.org/en/developer-reference#target-nbits).

`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](https://bitcoin.stackexchange.com/q/11139/7272).

> **Comments:**
> **username_2**: 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`.  
> **username_1**: @username_2 You're right, I somehow completely missed the introduction of the stripped size field! I've edited the answer  

---

