0

As far as I understood, each miner can access a pool of pending transactions, select those that he likes, put them together in a block minding that they don't exceed the block's gas limit, and then tries to mine this block. Of course, the miner would pick those transactions with the highest transaction fees as it seems most profitable to mine them. This is the behavior implemented in the available geth/pygeth/cpp-ethereum implementations.

Now imagine the miner would only pick the transactions with the lowest fees and put them into a block. Would he not greatly reduce the overall competition in the network and end up more profitable due to the block rewards? If this was possible, a miner could even create low-fee transactions himself to guarantee there are always enough "unprofitable" transactions around. This would harm the network as the miner would get paid block rewards for verifying bogus transactions.

At the time of writing this, the gas price on ethstats.net is 146 gwei, so it is indeed a realistic scenario that 21-gwei-transactions are neglected by the majority of miners for a pretty long time.

Is this possible or what mechanisms prevent this? Is it possible to continue mining a block if another block in the network has been mined in the meantime, if they share no common transactions? If noone ever picked any of the transactions you chose, could you try mining your block for hours/days and then append it to the block chain? And would you even need to fill your block with bogus transactions until the gas limit for the block is reached, or could you also mine (almost) empty blocks? I suspect this is not possible since I assume that otherwise, this would have been exploited by now.

2

Now imagine the miner would only pick the transactions with the lowest fees and put them into a block. Would he not greatly reduce the overall competition in the network and end up more profitable due to the block rewards?

No. All the miners are always competing to mine the new block. Note that I said "the new block." I think you're imagining that the competition among miners comes from trying to create a block with the same transactions, but it actually comes from trying to create a block that can go next. It doesn't matter if they're mining blocks with different transactions in them. Whoever is first will win, and everyone else will have to start over for the next block (because the next block has to match the one that comes before it).

In short, the answer to the below question is "No." The miner would have to start over, incorporating the new block.

Is it possible to continue mining a block if another block in the network has been mined in the meantime, if they share no common transactions?

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.