Questions tagged [block-header]

The block header is a portion of each block in the block chain that identifies the basic parameters of that particular block such as the block version, the time it was generated, the hash of the previous block, and the hash of the transactions in that block.

Filter by
Sorted by
Tagged with
4 votes
1 answer
138 views

What restrictions does the version field in the block header have?

We are seeing a lot of funky values in the block version since blocks are getting mined using Overt ASICBOOST. This made me wonder, what range of values are permitted in the version field?
  • 68.6k
1 vote
0 answers
32 views

How can I hash a block header using bitcoin-cli and terminal commands?

I would like to hash a block header using terminal commands and look at all the pretty leading 0s, but I can't figure out how to do this correctly using block header data from bitcoin-cli. Here is ...
  • 335
0 votes
1 answer
51 views

Trusting only the proof of work to receive payments

I understand that a pruned node needs to download all the blockchain in order to verify the blocks and construct the UTXO set. But wouldn't be possible to download the headers only? Let's say if the ...
  • 37
0 votes
0 answers
25 views

Do all candidate block create Block header

I am learning Blockchain. I want to know that whether every candidate block first create Block header and then proceed to work on finding nonce or the block which suceeds in finding nonce first ( &...
1 vote
1 answer
289 views

Why is the block header version value different from the getblocktemplate version value in the bitcoin blockchain?

When looking at block header for block 746632 I see that the version is 1073676292 or 3fff0004 or when reversed 0400ff3f, but the version I received from a getblocktemplate request is 536870912 or ...
  • 257
2 votes
1 answer
418 views

What are the components of the raw block shown in this image?

I'm wondering what the portion between the block header and the transaction data (the un-annotated section) is. I can't seem to find any information on it.
  • 157
0 votes
0 answers
16 views

Mining against candidate block hash or previous block hash? [duplicate]

When mining...; a) Is the block header hash of the candidate block used b) OR the block header hash of the previous block + noonce used? If it is a), which I presume, is it then correct that the ...
  • 1
1 vote
2 answers
75 views

How to calculate the version (eg. in Python)?

I'm working through this medium post that describes all header fields of a block. The explanation of the version field is a little unclear for me. For starters I'm trying to consider version = 1, as ...
  • 113
0 votes
1 answer
69 views

What actual steps are required to calculate a block's header hash?

From my knowledge a header hash will be calculated like this: serialize all header fields, including "the nonce" hash the serialized header once hash the hashed serialized header again ...
  • 113
2 votes
1 answer
164 views

Calculate/Verify the Hash of a Bitcoin Block Header

I want to calculate/verify the hash for block #722,460. Here is the JSON: "hash": "00000000000000000002b73f69e81b8b5e98dff0f2b7632fcb83c050c3b099a1", "confirmations": ...
  • 31
1 vote
1 answer
218 views

How to download just the blockheaders for the blockchain

I'd like to download all the blockheaders for the blockchain directly from the network (not an external API) ... what is the best way to do this? I don't actually care about the transaction data and ...
1 vote
1 answer
615 views

If a lot of miners start at nonce 0, how are there no ties?

I understand what happens with ties (in the long term, the longest chain wins), however, if a majority of miners start with a nonce of zero, does it just matter who has the fastest hardware, or is ...
  • 123
0 votes
1 answer
554 views

What is the correct way to calculate timestamp for a Block(125552)?

I am just learning mining process. Today I learned that we have to find nonce for given block header. And for block header we need timestamp in UTC I took the timestamp data from below link of 125552 ...
  • 3
0 votes
1 answer
99 views

What parts of a block, other than the nonce, can a miner vary

What are the list of all the variables whose values that the miner can cycle or modify to get a valid hash for this block (with very high probability) ? The only one I am aware of is: Nonce - 4 Bytes....
  • 107
0 votes
1 answer
76 views

How to pad Bitcoin Header in the SHA Algorithm Passes?

For any bitcoin block we combine various Header fields to create a string which is an input to a 2 pass SHA algorithm. The resultant hash must match with the Hash in the Block header for the Block to ...
  • 107
0 votes
2 answers
193 views

A query regarding Bitcoin Header Format

I am new to Bitcoins and still learning thus please bear with me. As I read Bitcoin Block header (on which the Block Hash is computed) is supposed to be: hash - 32 Bytes ver - 4 Bytes prev_block - ...
  • 107
3 votes
2 answers
235 views

What data is hashed to produce the block hash?

Exactly which items from a block are included in the data that is hashed to produce the block hash?
1 vote
2 answers
915 views

How strict are the Unix Epoch time validation rules?

According to bitcoin.org, full nodes have a strict requirement on the deviation of time within certain boundaries. The block time is a Unix epoch time when the miner started hashing the header (...
  • 1,588
1 vote
2 answers
134 views

Why does the Genesis block appear to have a lower hash than necessary?

The hash of the genesis block of bitcoin has two extra 0 as compared to other block hashes. According to the logic, it should have been the same as they all have the same difficulty. Why is it so? Was ...
1 vote
1 answer
51 views

Do peers advertise their chain work?

If yes, is this how a node decides that the peer has the best chain for headers-first download?
  • 31
1 vote
1 answer
34 views

What exactly happens to leaves when forming nodes?

If you hash TXIDs with sha256 twice, you get the leaves of the merkle tree. As far as I understand the two outputs of the TXIDs are concatenated / paired. What does that mean? Are they added together?
user avatar
0 votes
1 answer
316 views

how to hash block header in c++

I want to hash a block header in C++ but dont know how. Im just using a test block at the moment, so that I know what the expected outcome is. https://www.blockchain.com/btc/block/669892 I have a ...
1 vote
0 answers
268 views

How do I hash header block with C++

So im trying to hash a header in C++ and I am having some trouble. I have tried different libraries (cryptopp, openssl) cant seem to hash the header correctly. This is the block which I am testing: ...
0 votes
1 answer
363 views

How to get the list of blockheader

I know that i can use getheader 'hash' from bitcoin core, but i can't use it for all blocks, it's time consuming. Is there a site where i can find all bitcoin blockheader? Like a blockchain site but ...
  • 176
1 vote
1 answer
113 views

Does the Merkle Root get constantly updated inside the block or does it only get added once the block is completed?

So, pretty much just the title. I'm just wondering how the Merkle Root works exactly. I know it's the result of pairing transactions and then hashing them until the last transaction in the block, but ...
  • 79
0 votes
1 answer
58 views

What is the difference between the two transaction headers on the Bitcoin Liquid sidechain network?

You can see transactions for this asset https://blockstream.info/liquid/address/H4UWQS836njW4QJ6WfkGAPjaYtK2twLnZE For the second transaction, it has a header of ...
2 votes
1 answer
194 views

Is a timestamp in bitcoin different than just the "stamp of time"?

In the "References" section of Bitcoin's whitepaper, Satoshi Nakamoto points to three papers that serve as inspiration for digital timestamping. When you read those documents it is clear ...
  • 21
3 votes
1 answer
82 views

What is the proper way to handle reorgs when fetching headers

I work on bitcoin-s, and we've found a problem where if a node is stopped with it's chain tip being a one that is later reorged out it will not be able to continue syncing headers. This happens ...
2 votes
2 answers
243 views

Merkle root with one transaction

I am trying to build a merkle root which contains only the coinbase transaction from bitcoind. After creating the coinbase transaction, do I need to convert it to little endian, hash it twice and then ...
  • 176
0 votes
0 answers
75 views

Can I get all block header data like the SPV node?

It hasn't been long since I studied Blockchain. I only need header data, not all block data, for study purposes. As far as I know, the SPV node stores only the block's header information. Can i get ...
1 vote
2 answers
261 views

What is the optimal way to increment extranonce?

I'm trying to learn how to block headers are created and an efficient way of doing so. Given a list .of transactions, can I change the extranonce without having to rehash the entire list? EDIT: To ...
  • 13
2 votes
1 answer
213 views

How to build coinbase transaction from bitcoin core?

I am coding a program that connects to bitcoin-qt as local server. For building the blockheader i need the merkleroot, to build the merkle root, i need the coinbase transaction (which is not provided ...
  • 176
5 votes
1 answer
1k views

"New rules activated" warning after upgrading to 0.20.0

I've upgraded a node from the previous release. It's up and running but for some reasons I get this warning. How can it be related to the upgrade? $ bitcoin-cli -testnet getblockchaininfo | jq { "...
  • 53
1 vote
1 answer
84 views

A Bitcoin soft fork idea to help compress the blockchain

I've thought about a soft fork that can help storage costs. Why don't we force miners to embed the height of the TX Merkle tree in the first two bytes of the 4-byte block header version? It would ...
  • 10k
0 votes
1 answer
71 views

Calculate BitcoinGold Block Header Hash [closed]

I am trying to calculate block hash # 632295 { 'version': 536870912, 'prev_block_hash': '000000017590609fd72cadc5fd05732cfa1760bd882213afbb7b788c42e115c8', 'merkle_root': '...
3 votes
0 answers
192 views

Block 620826 is 1 second before block 620825? [duplicate]

How does that happen? Obviously the miner of 826 built his block on top of 825, but why is the time 1 second earlier?
  • 354
1 vote
3 answers
3k views

Get transaction data from full node

Background Information I am building an application that requires the ability to query any bitcoin full node (from a python script using raw tcp sockets) in order to read the OP_Return value listed ...
1 vote
2 answers
2k views

How to get block header hex?

I am trying to research hash functions and I want to be able to use bitcoin's mining outputs as hashes. I am curious about where the actual hex value of the data that generates that hash with a lot of ...
4 votes
2 answers
1k views

Which block header fields are miners able to change in an effort to avoid having to recalculate the Merkle Root?

In addition to the nonce and the Merkle Root, there are 4 other fields in the header - version, previous header hash, time and nbits. Assuming a miner does not want to change the merkle root because ...
0 votes
0 answers
867 views

How to dissect or decode a BTC transaction?

I used a packet capture to capture the transaction of bitcoin, and I got the following: ...
0 votes
1 answer
91 views

bitcoin's PoW, real time of creating one block

i learn that bitcoin is created every 10 minutes and if block is created faster than 10 minutes, Difficulty will increase. and study deeper, mining process is finding nonce that start 0 to increase 1 ...
2 votes
2 answers
1k views

What is the most optimal way to parse a raw bitcoin block with python?

Let's say one is connected to a zmq socket and listening for rawblock. How you'd parse the block header is as follows: block_header = raw[:80] version = block_header[:4] prev_merkle_root = ...
  • 1,588
6 votes
2 answers
275 views

Can a full node provide a bogus block bloomfilter to a Neutrino node?

When a thin client using BIP157/BIP158 (Neutrino) requests the block filter for the latest block, would it be possible for the full node serving this request to attack the Neutrino node by providing a ...
  • 68.6k
10 votes
2 answers
278 views

Why are block header bits necessary? (Valid difficulty is already implied by chain history)

Difficulty or target is implied by chain history, so why does it need to be explicit in the header? I suppose it exposes miner-intended-difficulty, but I don't see why that would be relevant without ...
  • 2,481
6 votes
1 answer
2k views

Unusual Version Number in Blocks

I've noticed recently that some blocks contain version numbers that are not the traditional 0x10000000 or 0x20000000. For example, this block, has a version number of 0x3FFFE000 instead of 0x20000000 ...
  • 983
1 vote
1 answer
46 views

Significance of the "hash" field reported by the 'bitcoin-cli getblock' command

It is stated that the header of a block does not contain a 'hash' field ( see https://en.bitcoin.it/wiki/Block_hashing_algorithm or Antonopolous' Mastering Bitcoin 2nd Ed. ) This makes sense since ...
  • 115
1 vote
2 answers
334 views

Merkle root Vs transaction hashes

It is not clear to me, why not we can simply store transaction hashes in a block header instead of storing the Merkle root. I understand that storing transactions' hashes will slightly increase size ...
2 votes
0 answers
292 views

Is my understanding of Blockhain Endianness correct?

I know questions on this topic have been asked to death in a number of different ways. I also know that what endian order refers to specifically is dependent on context. What I want are some ...
2 votes
1 answer
537 views

Why there is no block index or block height included in the block header?

Why block index or block height is not included in the block header? Do we have to go through the whole chain if we want to know how many blocks are there in a chain? On the other hand, if some blocks ...
  • 75
1 vote
1 answer
92 views

What should be less than the target?

When I go to BlockExplorer and observe the hash of block 514441's header I see it to be: 0000000000000000004ec916884d8b2cd3dc0e80ab199cc23e528e7dc10fafc6 However when I obtain the header of block ...
  • 11