11

The dynamic block size limit 2x the median block size over the last 100 blocks.

What happens if a transaction containing an extremely large numbers of outputs and a very large mixin exceeds the current dynamic blocksize limit?

Will the daemon reject the transaction?

2 Answers 2

12

The 2x the median block size cap is directed at the blocks themselves not individual transactions.

In my example below I will ignore the small coinbase transaction.

Assume during a single block interval there are 5 very large transactions each one being approximately .53 of the median block size. Collectively the would total 2.65 times the median block size (which is not allowed). 3 of the transactions (totaling 1.59 of median block size) would could be included in the block and the other two (1.06 times the median block size) would remain in the mempool until being confirmed in the next block.

In your example, if a single transaction is created that exceeds 2x the median block size by itself the transaction could be submitted to the network. However it would not be confirmed (unless they median blocksize grew just enough during the time the tx was sitting in the mempool such that the tx size was no longer 2x the median blocksize).

2
  • 4
    It wouldn't be hard to do at all. Just add outputs. You can increase size quickly that way. There was a bug in simplewallet just before the previous hard fork, where it'd allow post hard fork settings too early, and create txes that were above the (then max) 20 kB block size limit. Current limit us 60 kB, not much higher.
    – user36303
    Commented Jul 22, 2016 at 8:39
  • 2
    Thank you. I edited out my comment about the difficulty of a single transaction being large enough to exceed the 2x median block size limit Commented Jul 22, 2016 at 8:57
4

What happens if a transaction containing an extremely large numbers of outputs and a very large mixin exceeds the current dynamic blocksize limit?

If simplewallet is creating this tranasction (or any other wallet software using proper protocols), the transaction would be broken into multiple transactions that would be more compatible with the current dynamic blocksize limit. If a raw transaction gets pushed to the daemon, or is otherwise created and pushed to the daemon, then the following question is valid.

Will the daemon reject the transaction?

AFAIK, the daemon will only reject a transaction if it does not meet consensus rules. So, if, for some reason, a larger than blocksize transaction was created and all consensus rules were met, it would get relayed and sit in mempools until it expires.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.