Pages:
Author

Topic: Why is it necessary to mine the genesis block? - page 2. (Read 427 times)

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
What exactly do you prove once you mine a genesis block? That you can achieve it with difficulty=1? As I said, you'd do that after to maintain the longest chain. What difference would it make if Satoshi had picked the first hash with nonce=1? There's nothing to be proved in the genesis block.
Probably nothing. I'm not sure whether Core skips the checks for a valid block when it comes to the genesis block. I'm not too familiar with the codes for Bitcoin Core but I'm pretty sure I've read somewhere that the genesis block still has to have sufficient PoW and was validated as per normal for at least in the first few release. Perhaps someone can add on to this.

It really does skip the validation checks for genesis block, at least for mainnet and signet, and I'm sure that's how testnet works too. mainnet signet



Why do I have to mine the genesis block? A forum member had posted an announcement thread of his project ([ANN] Genesis Block Generator), but it is described that you'll have to mine the genesis block.

You only have to do that if your blockchain is empty (like his), like Satoshi did in the early days.
full member
Activity: 204
Merit: 437

What exactly do you prove once you mine a genesis block? That you can achieve it with a certain target? As I said, you'd do that after to maintain the longest chain. What difference would it make if Satoshi had picked the first hash with nonce=1? There's nothing to be proved in the genesis block.


The genesis block was likely mined with difficulty 4000. This makes it hard to mess up the beginning of the chain, giving a head start of a week for bitcoin.

Nowdays mining with difficulty one is easy, just do it on a GPU. It should take about a second or less.

legendary
Activity: 2954
Merit: 4158
What do you mean by saying "valid"? How is a valid block defined? Every other block requires PoW to ensure that the majority of the computational power goes to the current chain and to prevent double-spending.
A valid block has to have at least a target above the minimum value as stated or a difficulty of 1. If it has zero difficulty, it is invalid.  

What exactly do you prove once you mine a genesis block? That you can achieve it with difficulty=1? As I said, you'd do that after to maintain the longest chain. What difference would it make if Satoshi had picked the first hash with nonce=1? There's nothing to be proved in the genesis block.
Probably nothing. I'm not sure whether Core skips the checks for a valid block when it comes to the genesis block. I'm not too familiar with the codes for Bitcoin Core but I'm pretty sure I've read somewhere that the genesis block still has to have sufficient PoW and was validated as per normal for at least in the first few release. Perhaps someone can add on to this.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
The genesis block is still a valid block and thus still have a valid PoW.
What do you mean by saying "valid"? How is a valid block defined? Every other block requires PoW to ensure that the majority of the computational power goes to the current chain to prevent double-spending. Why should the genesis require that?

What exactly do you prove once you mine a genesis block? That you can achieve it with a certain target? As I said, you'd do that after to maintain the longest chain. What difference would it make if Satoshi had picked the first hash with nonce=1? There's nothing to be proved in the genesis block.
copper member
Activity: 766
Merit: 700
Defend Bitcoin and its PoW: bitcoincleanup.com
As far as I know you don't mine the genesis block, you hardcode it.
legendary
Activity: 2954
Merit: 4158
The genesis block is still a valid block and thus still have a valid PoW. The difficulty has to be at a minimum of 1 or a target of 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
On my way to fork Bitcoin Core, I had to either set the nMaxTipAge = DEFAULT_MAX_TIP_AGE * 10000 in validation.cpp (to avoid any gap troubles) or change the genesis block. I tried the first option, but now I want to change the genesis block and I have this query.

Why do I have to mine the genesis block? A forum member had posted an announcement thread of his project ([ANN] Genesis Block Generator), but it is described that you'll have to mine the genesis block.

Isn't mining necessary only when we want to proof a work? There's no proof of work on the genesis block, only the initial conditions to start the chain.
Pages:
Jump to: