18

I have been working on a private blockchain and observed that a miner, when started, keeps on adding empty blocks with no transactions to the blockchain. Why is this happening? It doesn't make any sense to add empty blocks. This just results in the blockchain occupying more space. Is there a reason behind this? Although unlikely, will the same scenario occur in the Ethereum blockchain if there are no transactions?

P.S: Here's a useful snippet to start mining only when there are transactions.

8

This is in the ghost protocol. Look at the bitcoin consensus to begin. The miner uses the longest blockchain to know which is the real blockchain if there are forks. A private blockchain has the same rules/protocol as the real blockchain. Create empty blocks does not mean that we don't mine. Mining is security. A private blockchain doesn't mean no security. Only devs need no security :)

  • 3
    A private chain secured by proof-or-work is a fairly weird thing to begin with, because unless it has huge numbers of participants it likely won't have enough hashpower to prevent one of the participants renting a load of power and taking over the chain. – Edmund Edgar Jul 1 '16 at 22:51
8

This makes sense for the purpose the protocol was originally designed for, public chains with mining, since there are nearly always transactions and you still need to do difficulty adjustments and things even if there aren't. It makes less sense for private chains.

Hydrachain doesn't do it: It mines the first 10 blocks then stops until you send it a transaction. Eris does - I'm not sure whether there's a functional reason for this or whether it was just easier not to mess with it when they forked Geth.

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.