<feed xmlns='http://www.w3.org/2005/Atom'>
<title>monzero-core.git/src/blockchain_db/blockchain_db.cpp, branch v0.14.1.2</title>
<subtitle>Monzero core node, command-line wallet, consensus code, and release tooling.
</subtitle>
<id>https://code.monzero.org/monzero-core.git/atom?h=v0.14.1.2</id>
<link rel='self' href='https://code.monzero.org/monzero-core.git/atom?h=v0.14.1.2'/>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/'/>
<updated>2019-04-14T08:35:38Z</updated>
<entry>
<title>blockchain_db: fix db txn ending too early</title>
<updated>2019-04-14T08:35:38Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2019-04-05T09:28:30Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=5e673c03fec66024027b94229fa2e317d7767a20'/>
<id>urn:sha1:5e673c03fec66024027b94229fa2e317d7767a20</id>
<content type='text'>
The db txn in add_block ending caused the entire overarching
batch txn to stop.
Also add a new guard class so a db txn can be stopped in the
face of exceptions.

Also use a read only db txn in init when the db itself is
read only, and do not save the max tx size in that case.
</content>
</entry>
<entry>
<title>Update 2019 copyright</title>
<updated>2019-03-05T21:05:34Z</updated>
<author>
<name>binaryFate</name>
<email>binaryfate@users.noreply.github.com</email>
</author>
<published>2019-03-05T21:05:34Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=1f2930ce0bec07e28958c059444151ad4968e1e6'/>
<id>urn:sha1:1f2930ce0bec07e28958c059444151ad4968e1e6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid repeated (de)serialization when syncing</title>
<updated>2019-03-05T11:57:55Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2018-11-11T14:51:03Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=b044d03a51e1dc64bebe2461813e0cfc50f71b0d'/>
<id>urn:sha1:b044d03a51e1dc64bebe2461813e0cfc50f71b0d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ArticMine's new block weight algorithm</title>
<updated>2019-03-04T09:33:58Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2019-01-21T17:18:50Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=b8787f430262520a9e81267802b869b1a7cde245'/>
<id>urn:sha1:b8787f430262520a9e81267802b869b1a7cde245</id>
<content type='text'>
This curbs runaway growth while still allowing substantial
spikes in block weight

Original specification from ArticMine:

here is the scaling proposal
Define: LongTermBlockWeight
Before fork:
LongTermBlockWeight = BlockWeight
At or after fork:
LongTermBlockWeight = min(BlockWeight, 1.4*LongTermEffectiveMedianBlockWeight)
Note: To avoid possible consensus issues over rounding the LongTermBlockWeight for a given block should be calculated to the nearest byte, and stored as a integer in the block itself. The stored LongTermBlockWeight is then used for future calculations of the LongTermEffectiveMedianBlockWeight and not recalculated each time.
Define:   LongTermEffectiveMedianBlockWeight
LongTermEffectiveMedianBlockWeight = max(300000, MedianOverPrevious100000Blocks(LongTermBlockWeight))
Change Definition of EffectiveMedianBlockWeight
From (current definition)
EffectiveMedianBlockWeight  = max(300000, MedianOverPrevious100Blocks(BlockWeight))
To (proposed definition)
EffectiveMedianBlockWeight  = min(max(300000, MedianOverPrevious100Blocks(BlockWeight)), 50*LongTermEffectiveMedianBlockWeight)
Notes:
1) There are no other changes to the existing penalty formula, median calculation, fees etc.
2) There is the requirement to store the LongTermBlockWeight of a block unencrypted in the block itself. This  is to avoid possible consensus issues over rounding and also to prevent the calculations from becoming unwieldy as we move away from the fork.
3) When the  EffectiveMedianBlockWeight cap is reached it is still possible to mine blocks up to 2x the EffectiveMedianBlockWeight by paying the corresponding penalty.

Note: the long term block weight is stored in the database, but not in the actual block itself,
since it requires recalculating anyway for verification.
</content>
</entry>
<entry>
<title>Pruning</title>
<updated>2019-01-22T20:30:51Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2018-04-29T22:30:51Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=b750fb27b0f20e9443827732b69a504a76036430'/>
<id>urn:sha1:b750fb27b0f20e9443827732b69a504a76036430</id>
<content type='text'>
The blockchain prunes seven eighths of prunable tx data.
This saves about two thirds of the blockchain size, while
keeping the node useful as a sync source for an eighth
of the blockchain.

No other data is currently pruned.

There are three ways to prune a blockchain:

- run monerod with --prune-blockchain
- run "prune_blockchain" in the monerod console
- run the monero-blockchain-prune utility

The first two will prune in place. Due to how LMDB works, this
will not reduce the blockchain size on disk. Instead, it will
mark parts of the file as free, so that future data will use
that free space, causing the file to not grow until free space
grows scarce.

The third way will create a second database, a pruned copy of
the original one. Since this is a new file, this one will be
smaller than the original one.

Once the database is pruned, it will stay pruned as it syncs.
That is, there is no need to use --prune-blockchain again, etc.
</content>
</entry>
<entry>
<title>blockchain_db: allocate known size vector only once</title>
<updated>2018-12-05T21:13:18Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2018-12-05T19:21:43Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=ce594f5af78e4722122735d67a019325f1c495cb'/>
<id>urn:sha1:ce594f5af78e4722122735d67a019325f1c495cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>v8: per byte fee, pad bulletproofs, fixed 11 ring size</title>
<updated>2018-09-11T13:38:07Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2018-07-18T21:24:53Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=5ffb2ff9b7c301eda5811a939c705f26627c4735'/>
<id>urn:sha1:5ffb2ff9b7c301eda5811a939c705f26627c4735</id>
<content type='text'>
</content>
</entry>
<entry>
<title>core: sync database based on bytes added, not blocks added</title>
<updated>2018-08-12T16:13:46Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2018-08-01T10:09:35Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=b278b83860da5eaaa122c219ad8c63f641e41cd3'/>
<id>urn:sha1:b278b83860da5eaaa122c219ad8c63f641e41cd3</id>
<content type='text'>
Blocks have a very wide range, whereas actual size is the relevant
quantity to consider when syncing
</content>
</entry>
<entry>
<title>db: store cumulative rct output distribution in the db for speed</title>
<updated>2018-07-13T10:37:04Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2018-05-22T13:46:30Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=45e419bd5c756337635feccec388efedf04f44ac'/>
<id>urn:sha1:45e419bd5c756337635feccec388efedf04f44ac</id>
<content type='text'>
This gets rid of the temporary precalc cache.

Also make the RPC able to send data back in binary or JSON,
since there can be a lot of data

This bumps the LMDB database format to v3, with migration.
</content>
</entry>
<entry>
<title>db_lmdb: save pruned and prunable tx data separately</title>
<updated>2018-05-23T21:48:12Z</updated>
<author>
<name>moneromooo-monero</name>
<email>moneromooo-monero@users.noreply.github.com</email>
</author>
<published>2017-10-01T10:24:33Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-core.git/commit/?id=b9389e582eb4e1806ce25a14fa492259c3d40dfc'/>
<id>urn:sha1:b9389e582eb4e1806ce25a14fa492259c3d40dfc</id>
<content type='text'>
This bumps DB version to 2, migration code will run for v1 DBs
</content>
</entry>
</feed>
