I can't quite figure out the purpose of the dynamic block size in Monero, or I'm just missing something.
Based on the original CryptoNote code, from my understanding, you need to change a specific constant to adjust to your preferred block size, which in Monero, is defined by the constants:
#define CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V2 60000 //size of block (bytes) after which reward for block calculated using block size #define CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V1 800000 //size of block (bytes) after which reward for block calculated using block size #define CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V5 300000 //size of block (bytes) after which reward for block calculated using block size - second change, from v5
So I have made a little experiment to determine what size would cause the core code to emit an error when the block size is over this expected value. I created numerous transfers with a mix of some big and some small amounts in the transaction, I then encountered this error:
2019-05-29 10:21:28.662 0x10e85a5c0 ERROR cn src/cryptonote_basic/cryptonote_basic_impl.cpp:114 Block cumulative weight is too big: 64156336, expected less than 62562850
So I am puzzled by this. Are the numbers specified by the constants calculated in some way, or are they just getting values with trial and error, proceeding with the max value and some reasonable offset?