Bitcoin Forum
April 18, 2024, 12:01:12 PM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Empty transaction blocks  (Read 2428 times)
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 11, 2016, 04:56:02 AM
 #21

I just do not understand this empty block thing.  What is it they are doing to cause this specifically?

From what I can gather their miners begin work on the next block before the pool has decided on the txs (so they are broadcasting the block header as soon as they see a new block seemingly without even validating the new block much which is what led to the block version fork).

Presumably they then later send out the block header for the block that actually does have the txs included (and perhaps after further validation of the new block although I am only speculating about that) but if a miner had already found a solution with the previous (empty apart from coinbase) header then they will publish that (thus typically these blocks are found very quickly).

If indeed this is how it is working then I guess it isn't really having as big an effect upon TPS as otherwise it might.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
1713441672
Hero Member
*
Offline Offline

Posts: 1713441672

View Profile Personal Message (Offline)

Ignore
1713441672
Reply with quote  #2

1713441672
Report to moderator
1713441672
Hero Member
*
Offline Offline

Posts: 1713441672

View Profile Personal Message (Offline)

Ignore
1713441672
Reply with quote  #2

1713441672
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713441672
Hero Member
*
Offline Offline

Posts: 1713441672

View Profile Personal Message (Offline)

Ignore
1713441672
Reply with quote  #2

1713441672
Report to moderator
sgbett
Legendary
*
Offline Offline

Activity: 2576
Merit: 1087



View Profile
March 11, 2016, 08:37:01 AM
 #22

I've read some long discussions about the pros and cons of miner's publishing zero transaction blocks (as 'some' are doing now).

The TL;DR is that:

Let's say the blocksize was 10MB and it took 10 minutes to solve a block. Miners would work on solving it but a large zero-miner would quickly solve a zero sized block. They would them publish it to their "large miner friends" who would start solving a next block.

Whoever solved the 10MB block would likely get their block orphaned if the empty block + next block was published immediately after the block was solved/broadcast. And whoever was working on the longer chain would be already working on the next empty block + next block.

In a way, publishing empty blocks seems to create an artificial cap on blocksize, does it not? As the blocksize gets larger and it takes longer to solve blocks, publishing empty transactions can cause more and more transactions to be orphaned.

Additionally, some (many?) people support miners publishing empty blocks. There seems some back and forth whether this should be allowed at all. As it is part of the protocol, disallowing it would seem about impossible at this point in time.

Doesn't this basically put a blocksize limit in the hands of the large miners? And isn't this just a way for the largest miners to gain an advantage over the others? Or is there some reason this is a "good thing"?


There are at least two ways that empty (1txn) blocks can be used.

The first is concerned with reducing idle time. If a block is solved and broadcast to the network then as a miner you are first made aware of the block header. This block header is all you need to start mining the next block. The rest of the block may take some time to propagate and will also take further time for you to validate and adjust your mempool. There is a chance that during this time you may find a block. Given the block reward is high and fees are low the most profitable thing to do is publish the block immediately. As you have not yet validated the previous block you cannot know which transactions to include from the mempool, so the only transaction you can include are ones that you know nobody else knows about - typically the coinbase transaction.

The second us a natural disincentive for miners to produce blocks that are too expensive to propagate/validate. If such a block  is produced then a miner may decide that validating this block is taking too long and instead decide that they could make more profit by mining a smaller sibiling block. This block would also be seen by miners and they could decide whether to continue validating the "expensive" block or instead mine on top of the easy to validate block. These behaviours form a natural equilibrium in block size obviating the need for any artificial limit.

"A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution" - Satoshi Nakamoto
*my posts are not investment advice*
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!