Author

Topic: BIP 102 seems terse (Read 534 times)

staff
Activity: 3374
Merit: 6530
Just writing some code
August 25, 2015, 09:30:41 PM
#5
Anyway, more seriously, thanks for setting me straight.  In other threads discussing this, it seemed that the p2p protocol we're using for bitcoin was going to cause a limit of 32mb per block, even under some scheme where miners can indefinitely vote up the block size (bip100).  So I guess I wonder how bip101 is supposed to address that issue.
There is a 32 mb limit on bitcoin p2p messages (which includes the block message) so there is an effective 32 mb cap on blocks. BIP 100 keeps this limit so the absolute maximum block size with BIP 100 is 32 mb.

I'm not sure how BIP 101 deals with this but I assume that they remove that cap.

There is a current limit on the number of sigops (signature operations) to prevent a miner from creating a block that takes ages to verify due to an extreme number of sigops. Sigops currently include the OP_CHECKSIG and OP_CHECKMULTISIG as well as a few others. The current limit is 20000 sigops per block which is 1000000 (1 MB)/50. Thus the maximum number of block sigops will increase according to the formula of blocksize/50. It will become 40000 for a 2MB maximum.

As for why it is written like that, probably because the code is like that to allow for any blocksize but still preserve the ratio between blocksize in bytes and number of sigops.

Thanks knightdk.  That explains it.  I guess bip102 is sorta a kicking-the-can-down-the-road proposal, so to speak.  I think my questions are answered then.  Presumably bip102 is so terse because there's nothing really to see here, it's just a proposal to more-or-less keep the status quo albeit with slightly larger blocks until a more long term solution is agreed upon.
BIP 102 is exactly a kicking-the-can-down-the-road proposal. In fact, that is the entire point of the proposal:
Quote
In the short term, an increase is needed to continue to facilitate network growth, and buy time for more comprehensive solutions to be developed. This continues the current economic policies with regards to fees, matching market expectations and preventing market disruption.

In the long term, continued direct management of this limit is a moral hazard that clouds free market input and prevents a healthy fee market from developing. This area of code should be transitioned away from direct management.
legendary
Activity: 1456
Merit: 1076
I may write code in exchange for bitcoins.
August 25, 2015, 06:29:26 PM
#4
Well, I'll answer the first part. Do you even know math (not trying to be offensive)? Check it.

  • 0.  8    MB
  • 1.  16   MB
  • 2.  32   MB
  • 3.  64   MB
  • 4.  128  MB
  • 5.  256  MB
  • 6.  512  MB
  • 7.  1024 MB
  • 8.  2048 MB
  • 9.  4096 MB
  • 10. 8192 MB

Quote
2048
5096
2048x2 != 5096. Also, it is 10 doublings after 8MB, not including the 8 MB.

LaudaM, I'm not offended.  I hope you don't feel offended if I reply that the mistake I made 2048x2=5096 is a calculation error, not a math error.  There's a difference between calculation and math.  The latter being a branch of symbolic logic, the former being the application of that logic to a particular number system, ie the art of evaluation of some expression. 

Anyway, more seriously, thanks for setting me straight.  In other threads discussing this, it seemed that the p2p protocol we're using for bitcoin was going to cause a limit of 32mb per block, even under some scheme where miners can indefinitely vote up the block size (bip100).  So I guess I wonder how bip101 is supposed to address that issue.

There is a current limit on the number of sigops (signature operations) to prevent a miner from creating a block that takes ages to verify due to an extreme number of sigops. Sigops currently include the OP_CHECKSIG and OP_CHECKMULTISIG as well as a few others. The current limit is 20000 sigops per block which is 1000000 (1 MB)/50. Thus the maximum number of block sigops will increase according to the formula of blocksize/50. It will become 40000 for a 2MB maximum.

As for why it is written like that, probably because the code is like that to allow for any blocksize but still preserve the ratio between blocksize in bytes and number of sigops.

Thanks knightdk.  That explains it.  I guess bip102 is sorta a kicking-the-can-down-the-road proposal, so to speak.  I think my questions are answered then.  Presumably bip102 is so terse because there's nothing really to see here, it's just a proposal to more-or-less keep the status quo albeit with slightly larger blocks until a more long term solution is agreed upon.
staff
Activity: 3374
Merit: 6530
Just writing some code
August 25, 2015, 05:30:07 PM
#3
I just read through the text of 100, 101, 102.  If I understood correctly 101, ends up at block size limit of 5GB in 20 years (10 doublings).
'
8
16
32
64
128
256
512
1024
2048
5096

Is that correct?

102 was very terse and I didn't really understand the detail of the proposal.

https://github.com/jgarzik/bips/blob/2015_2mb_blocksize/bip-0102.mediawiki

The "specification" section is only 3 lines (the first of which just says the current state of affairs):

1    Maximum block size permitted to be valid is 1MB.
2    Increase this maximum to 2MB on November 11, 2015 at 00:00:00 UTC.
3    Increase maximum block sigops by similar factor, preserving SIZE/50 formula.

I believe I understand lines 1 and 2 completely, but what does line 3 mean?   Increase by a similar factor (x2?, how often?).  What's the SIZE/50 forumla he refers to?
There is a current limit on the number of sigops (signature operations) to prevent a miner from creating a block that takes ages to verify due to an extreme number of sigops. Sigops currently include the OP_CHECKSIG and OP_CHECKMULTISIG as well as a few others. The current limit is 20000 sigops per block which is 1000000 (1 MB)/50. Thus the maximum number of block sigops will increase according to the formula of blocksize/50. It will become 40000 for a 2MB maximum.

As for why it is written like that, probably because the code is like that to allow for any blocksize but still preserve the ratio between blocksize in bytes and number of sigops.
legendary
Activity: 2674
Merit: 2965
Terminated.
August 25, 2015, 05:25:57 PM
#2
Well, I'll answer the first part. Do you even know math (not trying to be offensive)? Check it.

  • 0.  8    MB
  • 1.  16   MB
  • 2.  32   MB
  • 3.  64   MB
  • 4.  128  MB
  • 5.  256  MB
  • 6.  512  MB
  • 7.  1024 MB
  • 8.  2048 MB
  • 9.  4096 MB
  • 10. 8192 MB

Quote
2048
5096
2048x2 != 5096. Also, it is 10 doublings after 8MB, not including the 8 MB.
legendary
Activity: 1456
Merit: 1076
I may write code in exchange for bitcoins.
August 25, 2015, 05:18:43 PM
#1
I just read through the text of 100, 101, 102.  If I understood correctly 101, ends up at block size limit of 5GB in 20 years (10 doublings).
'
8
16
32
64
128
256
512
1024
2048
5096

Is that correct?

102 was very terse and I didn't really understand the detail of the proposal.

https://github.com/jgarzik/bips/blob/2015_2mb_blocksize/bip-0102.mediawiki

The "specification" section is only 3 lines (the first of which just says the current state of affairs):

1    Maximum block size permitted to be valid is 1MB.
2    Increase this maximum to 2MB on November 11, 2015 at 00:00:00 UTC.
3    Increase maximum block sigops by similar factor, preserving SIZE/50 formula.

I believe I understand lines 1 and 2 completely, but what does line 3 mean?   Increase by a similar factor (x2?, how often?).  What's the SIZE/50 forumla he refers to?
Jump to: