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
0 votes
0 answers
59 views

What are all the consensus rules for the block version value? [duplicate]

I am interested in what are the all consensus rules for block version number in a block header? Found some answer here. Andrew Chow said that it can be whatever value we want except some specific ...
Mudja Adjum's user avatar
4 votes
2 answers
128 views

What if a miner just broadcasts the header and never gives the body? What will happen?

What if a miner just broadcasts the header and never broadcasts the body? For example: A miner, after having successfully mined some block, just broadcasts the header for all other miners and hide the ...
longyue li's user avatar
2 votes
1 answer
44 views

What are the exact degrees of freedom in finding a valid block?

I am working on an educational project for bitcoin mining. I searched as much as I could but still haven't understood the following questions: What are the "exact" degrees of freedom in ...
Marlex Blank's user avatar
1 vote
1 answer
124 views

How are the block header bytes treated when calculating the block size in weight?

In pre-segwit, block header bytes were counted as "1 byte" and participated equally in the block size up to 1MB. Since the header is 80 bytes, we would actually have 999,917 bytes (1,000,000 ...
user avatar
1 vote
3 answers
70 views

How does hash work in a block for many transactions?

I know that a block in a chain has prev.hash and hash. The prev.hash is the previous block's hash. The hash is the current block's hash which is calculated based on nonce. One block can also have up ...
Joey Yi Zhao's user avatar
2 votes
1 answer
142 views

What is the nBits field in the CBlockHeader class?

In the source code for the CBlockHeader class, there is a field called nBits. /** Nodes collect new transactions into a block, hash them into a hash tree, * and scan through nonce values to make the ...
Amir reza Riahi's user avatar
7 votes
1 answer
271 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 the version field for additional entropy. This made me wonder, what range of values are permitted in the ...
Murch's user avatar
  • 72.6k
1 vote
0 answers
67 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 ...
vnprc's user avatar
  • 385
0 votes
1 answer
60 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 ...
leslie's user avatar
  • 52
1 vote
1 answer
472 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 ...
andrewz's user avatar
  • 257
2 votes
1 answer
583 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.
Jamo's user avatar
  • 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 ...
BOH's user avatar
  • 1
1 vote
2 answers
86 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 ...
n.r.'s user avatar
  • 113
0 votes
1 answer
164 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 ...
n.r.'s user avatar
  • 113
3 votes
2 answers
345 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": ...
Yuri's user avatar
  • 41
1 vote
1 answer
251 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 ...
user491880's user avatar
1 vote
1 answer
639 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 ...
Kladskull's user avatar
  • 123
0 votes
1 answer
832 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 ...
V01's user avatar
  • 3
0 votes
1 answer
134 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....
J.Doe's user avatar
  • 127
0 votes
1 answer
108 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 ...
J.Doe's user avatar
  • 127
0 votes
2 answers
222 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 - ...
J.Doe's user avatar
  • 127
3 votes
2 answers
285 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?
RedGrittyBrick's user avatar
1 vote
2 answers
960 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 (...
arshbot's user avatar
  • 1,710
1 vote
2 answers
160 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 ...
Aman Gupta's user avatar
1 vote
1 answer
54 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?
paulo's user avatar
  • 31
1 vote
1 answer
36 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
362 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 ...
Martin Bradley's user avatar
3 votes
1 answer
359 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) can't seem to hash the header correctly. This is the block which I am testing: ...
Martin Bradley's user avatar
0 votes
1 answer
648 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 ...
Hamita's user avatar
  • 176
1 vote
1 answer
120 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 ...
L M 's user avatar
  • 79
0 votes
1 answer
64 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 ...
Aman Saggu's user avatar
2 votes
1 answer
233 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 ...
Curious's user avatar
  • 21
3 votes
1 answer
118 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 ...
benthecarman's user avatar
2 votes
2 answers
300 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 ...
Hamita's user avatar
  • 176
0 votes
0 answers
80 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 ...
seonguk park's user avatar
1 vote
2 answers
312 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 ...
Wil's user avatar
  • 13
2 votes
1 answer
302 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 ...
Hamita's user avatar
  • 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 { "...
Claudio's user avatar
  • 53
1 vote
1 answer
90 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 ...
MCCCS's user avatar
  • 10.1k
0 votes
1 answer
77 views

Calculate BitcoinGold Block Header Hash [closed]

I am trying to calculate block hash # 632295 { 'version': 536870912, 'prev_block_hash': '000000017590609fd72cadc5fd05732cfa1760bd882213afbb7b788c42e115c8', 'merkle_root': '...
Джон Смит's user avatar
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?
ooomid's user avatar
  • 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 ...
Dimitree's user avatar
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 ...
Sunflower's user avatar
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 ...
Bradley Thomas's user avatar
0 votes
0 answers
973 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: ...
Carol Ward's user avatar
0 votes
1 answer
97 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 ...
user10865941's user avatar
2 votes
2 answers
2k 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 = ...
arshbot's user avatar
  • 1,710
6 votes
2 answers
291 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 ...
Murch's user avatar
  • 72.6k
11 votes
2 answers
294 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 ...
James C.'s user avatar
  • 2,501
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 ...
Mason Ticehurst's user avatar