neobytes/src
Alexander Block 521d4ae08f Implement 2-stage commit for CEvoDB to avoid inconsistencies after crashes (#2744)
* Let Commit() return void

The boolean return value will loose its meaning in the next commit

* Implement 2-stage commits for CDBTransaction and CScopedDBTransaction

CDBTransaction is changed to allow CDBBatch, CDBWrapper and other
CDBTransactions as parent instead of just CDBWrapper. This in turn allows
to implement multi-staged commits in CEvoDB.

We now have the "current transaction" which is started and ended (commit
or rollback) for each call to Connect-/DisconnectBlock. When the current
transaction is committed, it moves its contents into the "root transaction"
instead of directly writing to CDBWrapper.

CommitRootTransaction() then handles the final commitment to CDBWrapper. It
is called at the same time when the chainstate is flushed to disk, which
guarantees consistency between chainstate and CEvoDB.

* Allow to efficiently move values into parent transactions to avoid copies

When CDBTransaction<CDBTransaction<...>>::Commit() is called, we can avoid
copying values from this transaction to the parent transaction and instead
pass values by rvalue and let the contents be moved.

* Revert "Force FlushStateToDisk on ConnectTip/DisconnectTip while not in IBD (#2560)"

This reverts commit 6dfceaba5a.
2019-03-06 22:45:39 +03:00
..
bench Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
bls Implement CBLSLazySignature for lazy serialization/deserialization 2019-02-15 15:44:02 +01:00
compat Move to in-docker CI builds and add Jenkins support (#2178) 2018-07-12 16:28:59 +03:00
config
consensus Implement new algo for quorum connections (#2710) 2019-02-19 13:05:39 +03:00
crypto Move bls stuff from crypto/ to bls/ 2018-10-12 19:39:26 +02:00
evo Implement 2-stage commit for CEvoDB to avoid inconsistencies after crashes (#2744) 2019-03-06 22:45:39 +03:00
immer Update immer to c89819df92191d6969a6a22c88c72943b8e25016 (#2626) 2019-01-14 11:52:19 +03:00
leveldb Merge #8613: LevelDB 1.19 2018-01-17 17:31:11 +01:00
llmq Don't be too harsh for invalid CLSIGs (#2742) 2019-03-06 08:00:21 +01:00
obj
obj-test
policy Merge #9548: Remove min reasonable fee 2019-02-05 13:40:31 -06:00
primitives Serialize the block header in CBlockHeader::GetHash() (#2531) 2018-12-10 05:40:08 +01:00
qt Add a button/context menu items to show QR codes for addresses (#2741) 2019-03-06 22:45:22 +03:00
rpc Add collateraladdress into masternode/protx list rpc output (#2740) 2019-03-06 08:01:03 +01:00
script Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
secp256k1 Merge #9334: Update to latest libsecp256k1 2018-01-17 17:31:12 +01:00
support Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
test Disallow new proposals using legacy serialization (#2722) 2019-02-26 13:44:43 +03:00
univalue Merge #8863: univalue: Pull subtree 2018-01-12 09:57:56 +01:00
wallet Add "chainlock" field to more rpcs (#2743) 2019-03-06 08:00:47 +01:00
zmq [ZMQ] Notify when an IS double spend is attempted (#2262) 2018-09-12 14:12:44 +03:00
.clang-format Update .clang-format to more accurately show the actual style (#2299) 2018-09-20 15:40:00 +03:00
activemasternode.cpp Fix confusion between dip3 activation and enforcement (#2651) 2019-01-29 15:54:38 +01:00
activemasternode.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
addrdb.cpp Merge #9216: Doc: Fix copypasted comment 2018-01-17 17:25:36 +01:00
addrdb.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
addressindex.h
addrman.cpp A few devnet related fixes (#2168) 2018-07-08 00:19:33 +03:00
addrman.h A few devnet related fixes (#2168) 2018-07-08 00:19:33 +03:00
alert.cpp Remove remaining using namespace std 2018-02-21 22:32:13 +03:00
alert.h Drop BOOST_FOREACH and use references in loops (const ref where applicable, Dash code only) (#1899) 2018-02-06 14:09:33 +03:00
amount.cpp
amount.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
arith_uint256.cpp Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
arith_uint256.h Merge #8675: Make copyright header lines uniform 2018-01-13 13:44:39 +01:00
base58.cpp
base58.h Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
batchedlogger.cpp Add batched logger 2019-01-09 12:16:11 +01:00
batchedlogger.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
bip39_english.h
bip39.cpp Use GetStrongRandBytes in CMnemonic::Generate 2017-12-22 06:00:51 +01:00
bip39.h
blockencodings.cpp Backport compact blocks functionality from bitcoin (#1966) 2018-04-11 14:06:01 +03:00
blockencodings.h Backport compact blocks functionality from bitcoin (#1966) 2018-04-11 14:06:01 +03:00
bloom.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
bloom.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
cachemap.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
cachemultimap.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
chain.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
chain.h Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
chainparams.cpp Multiple fixes and optimizations for LLMQs and ChainLocks (#2724) 2019-02-27 16:10:12 +03:00
chainparams.h Allow to override llmqChainLocks with "-llmqchainlocks" on devnet (#2683) 2019-02-05 15:46:05 +01:00
chainparamsbase.cpp Clear devNetParams and mimic behavior of other param types (#2367) 2018-10-25 09:17:37 +02:00
chainparamsbase.h
chainparamsseeds.h Update testnet seeds to point to MNs that are on the new chain (#2558) 2018-12-14 16:34:11 +01:00
checkpoints.cpp Merge #9472: Disentangle progress estimation from checkpoints and update it 2018-01-21 12:48:32 +01:00
checkpoints.h Merge #9472: Disentangle progress estimation from checkpoints and update it 2018-01-21 12:48:32 +01:00
checkqueue.h Merge #9497: CCheckQueue Unit Tests 2018-01-26 12:59:29 +01:00
clientversion.cpp [GUI] Create QR-code for Masternode private key (#1970) 2018-03-08 15:17:34 +03:00
clientversion.h Revert "Set CLIENT_VERSION_IS_RELEASE to true (#2591)" 2019-01-14 20:36:57 +03:00
coins.cpp Few (mostly trivial) cleanups and fixes (#1940) 2018-02-21 19:32:08 +03:00
coins.h Few (mostly trivial) cleanups and fixes (#1940) 2018-02-21 19:32:08 +03:00
compat.h Merge #9224: Prevent FD_SETSIZE error building on OpenBSD 2018-01-17 17:27:24 +01:00
compressor.cpp
compressor.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
core_io.h Merge #9282: CMutableTransaction is defined as struct 2018-01-17 17:31:12 +01:00
core_memusage.h Merge #9125: Make CBlock a vector of shared_ptr of CTransactions 2018-01-15 06:14:16 +01:00
core_read.cpp Merge #9650: Better handle invalid parameters to signrawtransaction 2018-02-07 13:11:08 +01:00
core_write.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
ctpl.h Add ctpl header only library 2018-10-04 16:46:48 +02:00
cuckoocache.h Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
cxxtimer.hpp Add cxxtimer header only libraries 2019-01-09 12:16:11 +01:00
dash-cli-res.rc
dash-cli.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
dash-tx-res.rc
dash-tx.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
dashd-res.rc
dashd.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
dbwrapper.cpp Merge #8629: C++11: s/boost::scoped_ptr/std::unique_ptr/ 2018-01-09 14:16:38 +01:00
dbwrapper.h Implement 2-stage commit for CEvoDB to avoid inconsistencies after crashes (#2744) 2019-03-06 22:45:39 +03:00
dsnotificationinterface.cpp Merge pull request #2643 from codablock/pr_llmq_chainlocks 2019-01-29 15:59:05 +01:00
dsnotificationinterface.h Remove all legacy/compatibility MN code (#2600) 2019-01-03 12:17:43 +03:00
flat-database.h
governance-classes.cpp Gov cleanup + copyright bump (#2324) 2018-09-28 10:56:17 +03:00
governance-classes.h Gov cleanup + copyright bump (#2324) 2018-09-28 10:56:17 +03:00
governance-exceptions.h Gov cleanup + copyright bump (#2324) 2018-09-28 10:56:17 +03:00
governance-object.cpp Disallow new proposals using legacy serialization (#2722) 2019-02-26 13:44:43 +03:00
governance-object.h Drop no longer used code and bump min protos (#2697) 2019-02-12 22:51:21 +03:00
governance-validators.cpp Disallow new proposals using legacy serialization (#2722) 2019-02-26 13:44:43 +03:00
governance-validators.h Disallow new proposals using legacy serialization (#2722) 2019-02-26 13:44:43 +03:00
governance-vote.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
governance-vote.h Use BLS keys for the DIP3 operator key (#2352) 2018-10-21 22:45:16 +03:00
governance-votedb.cpp Drop no longer used code and bump min protos (#2697) 2019-02-12 22:51:21 +03:00
governance-votedb.h Drop no longer used code and bump min protos (#2697) 2019-02-12 22:51:21 +03:00
governance.cpp Disallow new proposals using legacy serialization (#2722) 2019-02-26 13:44:43 +03:00
governance.h Do not send excessive messages in governance sync (#2124) 2019-02-04 12:51:37 +03:00
hash.cpp Merge #9556: Remove redundant semicolons 2018-01-23 09:24:27 +01:00
hash.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
hdchain.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
hdchain.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
httprpc.cpp Use override keyword for overriden class member functions (#1644) 2018-02-15 10:29:15 +03:00
httprpc.h
httpserver.cpp Use override keyword for overriden class member functions (#1644) 2018-02-15 10:29:15 +03:00
httpserver.h Merge #8513: Fix a type error that would not compile on OSX. 2018-01-08 18:04:55 +01:00
indirectmap.h Merge #8414: prepend license statement to indirectmap.h 2018-01-08 18:04:55 +01:00
init.cpp Stop g_connman first before deleting it (#2734) 2019-03-01 18:30:30 +03:00
init.h Refactor and fix restart (#1999) 2018-03-19 16:09:47 +03:00
instantx.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
instantx.h Drop no longer used code and bump min protos (#2697) 2019-02-12 22:51:21 +03:00
keepass.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
keepass.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
key.cpp Merge #8753: Locked memory manager 2018-01-13 13:44:39 +01:00
key.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
keystore.cpp
keystore.h Use override keyword for overriden class member functions (#1644) 2018-02-15 10:29:15 +03:00
limitedmap.h Merge #8353: Trivial: tiny c++11 refactors 2018-01-08 18:04:55 +01:00
Makefile.am Implement std::unordered_map/set compatible hasher classes for salted hashes 2019-02-27 14:40:52 +01:00
Makefile.bench.include Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
Makefile.leveldb.include Merge #8826: Do not include env_win.cc on non-Windows systems 2018-01-12 09:56:53 +01:00
Makefile.qt.include Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
Makefile.qttest.include Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
Makefile.test.include Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
masternode-meta.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-meta.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-payments.cpp Fix confusion between dip3 activation and enforcement (#2651) 2019-01-29 15:54:38 +01:00
masternode-payments.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-sync.cpp Update misspelled Synchronizing in GetSyncStatus (#2680) 2019-02-04 12:52:49 +03:00
masternode-sync.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-utils.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
masternode-utils.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
memusage.h Merge #8675: Make copyright header lines uniform 2018-01-13 13:44:39 +01:00
merkleblock.cpp Only include selected TX types into CMerkleBlock (#2737) 2019-03-04 07:52:14 +01:00
merkleblock.h Merge #10258: Fixed typo in documentation for merkleblock.h 2018-01-26 12:59:29 +01:00
messagesigner.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
messagesigner.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
miner.cpp Bump block stats when adding commitment tx into block (#2654) 2019-01-29 15:54:57 +01:00
miner.h manual fixes on #9868 2019-01-22 22:57:04 -06:00
net_processing.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
net_processing.h Implement IsBanned to allow checking for banned nodes outside of net_processing.cpp 2019-01-17 18:51:48 +01:00
net.cpp Merge pull request #2682 from PastaPastaPasta/backports-0.15-pr6 2019-02-19 13:04:49 +03:00
net.h Implement WakeupSelect() to allow preliminary wakeup after message push 2019-02-15 15:19:59 +01:00
netaddress.cpp Merge #8466: [Trivial] Do not shadow variables in networking code 2018-01-09 14:16:38 +01:00
netaddress.h Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
netbase.cpp Backports 0.15 pr1 (#2590) 2019-01-03 12:18:47 +03:00
netbase.h Merge #8466: [Trivial] Do not shadow variables in networking code 2018-01-09 14:16:38 +01:00
netfulfilledman.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
netfulfilledman.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
netmessagemaker.h Optimize DKG debug message processing for performance and lower bandwidth (#2672) 2019-02-01 10:49:01 +03:00
noui.cpp
noui.h
pow.cpp Remove temporary fork handling for emergency difficulty reduction on testnet 2018-12-13 21:51:52 +01:00
pow.h
prevector.h Merge #9856: Terminate immediately when allocation fails 2018-01-26 12:59:29 +01:00
privatesend-client.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
privatesend-client.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
privatesend-server.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
privatesend-server.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
privatesend-util.cpp bump PS copyright (#2417) 2018-11-05 12:29:33 +03:00
privatesend-util.h bump PS copyright (#2417) 2018-11-05 12:29:33 +03:00
privatesend.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
privatesend.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
protocol.cpp Introduce QSIGSESANN/CSigSesAnn P2P message 2019-02-27 17:33:40 +01:00
protocol.h Introduce QSIGSESANN/CSigSesAnn P2P message 2019-02-27 17:33:40 +01:00
pubkey.cpp Merge #8655: Do not shadow variables (trivials) 2018-01-11 13:22:22 +01:00
pubkey.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
random.cpp Merge #9821: util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD 2019-01-22 22:57:09 -06:00
random.h Merge #9821: util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD 2019-01-22 22:57:09 -06:00
rest.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
reverselock.h Merge #8655: Do not shadow variables (trivials) 2018-01-11 13:22:22 +01:00
saltedhasher.cpp Implement std::unordered_map/set compatible hasher classes for salted hashes 2019-02-27 14:40:52 +01:00
saltedhasher.h Implement std::unordered_map/set compatible hasher classes for salted hashes 2019-02-27 14:40:52 +01:00
scheduler.cpp Merge #9605: Use CScheduler for wallet flushing, remove ThreadFlushWalletDB 2019-02-04 19:58:19 -06:00
scheduler.h Merge #9605: Use CScheduler for wallet flushing, remove ThreadFlushWalletDB 2019-02-04 19:58:19 -06:00
sendalert.cpp Merge #9243: Clean up mapArgs and mapMultiArgs Usage 2018-01-18 07:31:23 +01:00
serialize.h Implement CFixedVarIntsBitSet and CAutoBitSet 2019-01-17 18:51:48 +01:00
spentindex.h Remove nType and nVersion from Dash related serialization code 2018-01-15 06:14:15 +01:00
spork.cpp Reintroduce spork15 so that it's relayed by 0.14 nodes (#2701) 2019-02-14 21:24:06 +03:00
spork.h Reintroduce spork15 so that it's relayed by 0.14 nodes (#2701) 2019-02-14 21:24:06 +03:00
stacktraces.cpp Fix stacktraces compilation issues (#2721) 2019-02-26 07:01:56 +01:00
stacktraces.h Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
streams.h Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
sync.cpp Remove onlyMaybeDeadlock condition around printing of deadlock info 2018-01-23 12:27:28 +01:00
sync.h Merge #9319: Break addnode out from the outbound connection limits. 2018-01-18 07:38:22 +01:00
threadinterrupt.cpp
threadinterrupt.h
threadsafety.h
timedata.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
timedata.h Merge #8808: Do not shadow variables (gcc set) 2019-02-01 00:41:12 -06:00
tinyformat.h Don't use short version of 'tinyformat/fmt' namespace in util.h (#1975) 2018-03-08 15:18:51 +03:00
torcontrol.cpp Merge #9510: [trivial] Fix typos in comments 2018-01-21 12:48:34 +01:00
torcontrol.h
txdb.cpp Merge #9644: [refactor] Remove using namespace <xxx> from src/ 2018-01-23 09:24:03 +01:00
txdb.h Use override keyword for overriden class member functions (#1644) 2018-02-15 10:29:15 +03:00
txmempool.cpp Merge pull request #2682 from PastaPastaPasta/backports-0.15-pr6 2019-02-19 13:04:49 +03:00
txmempool.h backports-0.15-pr6 code review 2019-02-16 15:09:51 -06:00
ui_interface.cpp Merge #8486: [wallet] Add high transaction fee warnings 2018-01-11 13:22:22 +01:00
ui_interface.h A small overhaul of the way MN list/stats UI and data are tied together (#2696) 2019-02-12 22:51:03 +03:00
uint256.cpp Merge #9867: Replace remaining sprintf with snprintf 2019-01-22 22:55:48 -06:00
uint256.h update copyright (#2648) 2019-01-29 15:53:14 +01:00
undo.h Merge #9039: Various serialization simplifcations and optimizations 2018-01-15 06:14:15 +01:00
util.cpp Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
util.h Implement optional pretty printed stacktraces (#2420) 2019-02-21 21:37:15 +03:00
utilmoneystr.cpp Merge #9643: [refactor] Remove using namespace <xxx> from wallet/ & util* 2018-02-21 22:32:13 +03:00
utilmoneystr.h
utilstrencodings.cpp Merge #8775: RPC refactoring: Access wallet using new GetWalletForJSONRPCRequest 2019-01-24 22:28:13 -06:00
utilstrencodings.h Merge #8775: RPC refactoring: Access wallet using new GetWalletForJSONRPCRequest 2019-01-24 22:28:13 -06:00
utiltime.cpp Add real timestamp to log output when mock time is enabled (#2604) 2019-01-03 12:21:19 +03:00
utiltime.h Add real timestamp to log output when mock time is enabled (#2604) 2019-01-03 12:21:19 +03:00
validation.cpp Implement 2-stage commit for CEvoDB to avoid inconsistencies after crashes (#2744) 2019-03-06 22:45:39 +03:00
validation.h Merge pull request #2643 from codablock/pr_llmq_chainlocks 2019-01-29 15:59:05 +01:00
validationinterface.cpp Remove all legacy/compatibility MN code (#2600) 2019-01-03 12:17:43 +03:00
validationinterface.h Backports 0.15 pr1 (#2590) 2019-01-03 12:18:47 +03:00
version.h Drop no longer used code and bump min protos (#2697) 2019-02-12 22:51:21 +03:00
versionbits.cpp Stop checking MN protocol version before signalling DIP3 (#2684) 2019-02-05 15:45:54 +01:00
versionbits.h Show BIP9 progress in getblockchaininfo (#2435) 2018-11-12 18:08:58 +03:00
warnings.cpp Drop BOOST_FOREACH and use references in loops (const ref where applicable, Dash code only) (#1899) 2018-02-06 14:09:33 +03:00
warnings.h Merge #9236: Fix races for strMiscWarning and fLargeWork*Found, make QT runawayException use GetWarnings 2018-01-18 07:31:22 +01:00