That is incorrect on all three counts. Take a look at the details (proportion attributable to these factors, etc.) and you will see that these are not the main reasons for the block chain being smaller and faster. Even the difference in PoW is relatively unimportant right now (but might have some advantage -- or disadvantage -- in the future). My friend othe was right it is almost all a difference right now is lower BBR usage causing the chain to be much smaller.
Hello smooth!
When you posted this i've decided to finally research this subject and publish results.
Experiment i did is very simple (and honest i guess, without tricks): i've synchronized both daemons bitmonerod(prebuilt bitmonerod i've downloaded from website) and boolbd, and yesterday i've shutdowned them both in one time(the difference was maybe 1-2 minutes).
Then, today i've started them with log level 1, bitmonerod at frist (just to avoid talks that it was't honest), waited until it finished synchronizing, then stopped it, and then started boolbd, let it syncronize and stopped it.
Here is logs from both daemons: http://boolberry.com/files/bbr_ws_xmr.zip
To exclude time for peers lookup etc, let measure synctime from first block added during syncronization to last one added.
For Monero it is:
Start:
2014-Sep-03 02:38:06.538142 [P2P3]+++++ BLOCK SUCCESSFULLY ADDED
id: <96406071fc38735f8d12db924c28cb022d56170825983299e6d0df5f3879dc8e>
PoW:
HEIGHT 199045, difficulty: 1535654043
block reward: 14.548473832909(14.248473832909 + 0.300000000000), coinbase_blob_size: 211, cumulative size: 23036, 281(0/32)ms
2014-Sep-03 02:38:06.560145 [P2P3]tx added: <5777175605147aa64ce4e58f172392ef436d232b35c0ee3b95d933d09936a94c>
2014-Sep-03 02:40:47.293056 [P2P6]+++++ BLOCK SUCCESSFULLY ADDED
id: <8baf7a9f25e31a0cd883c9ef1d9671a4725a707955539fd413fa156f0cfd21b2>
PoW: <0ee3862c33f946c712b843b201ecb3cba6da8bfdf731b72febcae58f02000000>
HEIGHT 200863, difficulty: 1423015197
block reward: 14.899392306811(14.559320375123 + 0.340071931688), coinbase_blob_size: 211, cumulative size: 1883, 31(0/31)ms
We have:
Time: 02:38:06.53814 -> 02:40:47.293056, 161 seconds
1818 Blocks
1568 transactions (coinbase transactions not included)
Now Boolberry:
Start:
2014-Sep-03 02:42:48.239414 [P2P8]+++++ BLOCK SUCCESSFULLY ADDED
id:
PoW:
HEIGHT 76616, difficulty: 643355906678
block reward: 16.189093000000(16.189093000000 + 0.000000000000), coinbase_blob_size: 349, cumulative size: 349, 63(0/0)ms
End:
2014-Sep-03 02:43:28.121978 [P2P5]+++++ BLOCK SUCCESSFULLY ADDED
id:
PoW:
HEIGHT 77366, difficulty: 461360625504
block reward: 16.177517000000(16.177517000000 + 0.000000000000), coinbase_blob_size: 388, cumulative size: 388, 0(0/0)ms
We have:
Time: 02:42:48.239414 -> 02:43:28.121978, 40 seconds
750 Blocks
1564 transactions (coinbase transactions not included)... i'm also was very surprised why transactions counter almost the same ?.... actually have no idea, may be i've missed something, but anyway - blockchain is the same on every computer - so everyone could check my calculations.
It seem that Boolberry is 4 times faster, let's try to figure out why.
Your assumption was that "difference right now is lower BBR usage". Well, it was true for long time, but last few days nxt folk seemed to have interest to our project, it was actively traded, and transactions rate in Boolberry looks the same level as Monero, according to this numbers.
I didn't met any network lacks or losts during synchronization for both coins, here is histogram for Monero synchronization built by from logs timestamps:
so it seems that most time was spent for processing data.
Avarage time for PoW for my CPU is about 20ms (it drifts from 15ms to 30ms according to logs), that means that for 1818 blocks it takes 36.36 seconds summary. So here is a first part of advantage, not so big as i expected, but still prety useful.
Now we have 40 seconds against 120 seconds.
If we think that most time spending on processing data, we could say(very very roughly) that:
Monero spent 120 seconds (without PoW time) for 1818 blocks - that means 66ms/block.
Boolberry spent 40 seconds (PoW time is negligibly small) for 750 blocks - that means 53ms/block.
The difference between 66ms and 53ms could be explained(but this is just guess, i didn't researched this) with significant difference of blockchain content - even empty Monero chain has twice more transactions because of twice more blocks with coinbase, much bigger global outputs index(m_outputs) because of dust in coinbase. Plus Monero has more active trading/transaction traffic history. So i think this explains 66ms and 53ms difference.
Now, finally, according to my calculations we have (roughly):
+80 (200%) -because of twice more blocks at the same time + slower model because of more data (i've tried to split this numbers into 2 different but this pretty hard without additional profiling)
+36-40 seconds (90-100%) -because of slow PoW.
I want to remind that this experiment was done with almost the same transactions amount per day on both blockchains.
As an conclusion:
1. With current implementation and with equal transaction flow Boolberry synchronization 4x times faster than Monero. This is just an established fact.
2. Why slower:
65-70% of slowdown is rised because of twice more blocks per time + slower model because of data overhead + transaction history,
30-35% slowdown because of slow PoW.
I shared link to logs to let everyone control (and correct) my calculations if i did something wrong. I would be thankful if someone will research this issue deeper.
PS: This post is not about is it good or bad to have 1 minute block interval or instead of 2 minutes, there are advantages and disadvantages for both configurations. This post is just about timing.
Zoidberg