neobytes/src
Alexander Block 9f58690322 Avoid using ordered maps in LLMQ signing code (#2708)
* Implement and use SigShareMap instead of ordered map with helper methods

The old implementation was relying on the maps being ordered, which allowed
us to grab all sig shares for the same signHash by doing range queries on
the map. This has the disadvantage of being unnecessarily slow when the
maps get larger. Using an unordered map would be the naive solution, but
then it's not possible to query by range anymore.

The solution now is to have a specialized map "SigShareMap" which is
indexed by "SigShareKey". It's internally just an unordered map, indexed by
the sign hash and another unordered map for the value, indexed by the
quorum member index.

* Only use unordered maps/sets in CSigSharesManager

These are faster when maps/sets get larger.

* Use unorderes sets/maps in CSigningManager
2019-02-17 14:38:56 +03:00
..
bench Merge #9547: bench: Assert that division by zero is unreachable 2019-02-01 10:51:01 -06: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 Merge pull request #2643 from codablock/pr_llmq_chainlocks 2019-01-29 15:59:05 +01:00
crypto Move bls stuff from crypto/ to bls/ 2018-10-12 19:39:26 +02:00
evo Fix incorrect usage of begin() when genesis block is requested in "protx diff" (#2699) 2019-02-12 22:52:06 +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 Avoid using ordered maps in LLMQ signing code (#2708) 2019-02-17 14:38:56 +03:00
obj
obj-test
policy Backports 0.15 pr2 (#2597) 2019-01-07 12:55:35 +03:00
primitives Serialize the block header in CBlockHeader::GetHash() (#2531) 2018-12-10 05:40:08 +01:00
qt A small overhaul of the way MN list/stats UI and data are tied together (#2696) 2019-02-12 22:51:03 +03:00
rpc Less cs_main locks in quorums (#2702) 2019-02-15 15:11:35 +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 Rework handling of CSigSharesManager worker thread (#2703) 2019-02-15 15:11:50 +01:00
univalue Merge #8863: univalue: Pull subtree 2018-01-12 09:57:56 +01:00
wallet Merge pull request #2647 from PastaPastaPasta/backports-0.15-pr5 2019-02-04 21:58:02 +03: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
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 Allow to override llmqChainLocks with "-llmqchainlocks" on devnet (#2683) 2019-02-05 15:46:05 +01: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 Merge #9903: Docs: add details to -rpcclienttimeout doc 2019-02-01 00:41:09 -06:00
dash-tx-res.rc
dash-tx.cpp Merge #10130: bitcoin-tx input verification (awemany, jnewbery) 2018-01-26 12:59:29 +01:00
dashd-res.rc
dashd.cpp update copyright (#2648) 2019-01-29 15:53:14 +01:00
dbwrapper.cpp Merge #8629: C++11: s/boost::scoped_ptr/std::unique_ptr/ 2018-01-09 14:16:38 +01:00
dbwrapper.h Add ReadDataStream to CDBWrapper to allow manual deserialization 2019-01-18 11:58:58 +01: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 Drop no longer used code and bump min protos (#2697) 2019-02-12 22:51:21 +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 Gov cleanup + copyright bump (#2324) 2018-09-28 10:56:17 +03:00
governance-validators.h Gov cleanup + copyright bump (#2324) 2018-09-28 10:56:17 +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 Do not send excessive messages in governance sync (#2124) 2019-02-04 12:51:37 +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 Rework handling of CSigSharesManager worker thread (#2703) 2019-02-15 15:11:50 +01: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 and enforce ChainLocks 2019-01-28 12:24:15 +01:00
Makefile.bench.include Add ECDSA benchmarks 2018-10-10 08:49:10 +02: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 Translations 201811 (#2249) 2018-11-07 10:39:06 +03:00
Makefile.qttest.include Implement wrappers around Chia BLS lib 2018-10-10 08:49:09 +02:00
Makefile.test.include Implement and use secure BLS batch verification (#2681) 2019-02-04 21:58:28 +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 Merge #10309: Trivial: remove extra character from comment 2018-01-26 12:59:29 +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 Drop no longer used code and bump min protos (#2697) 2019-02-12 22:51:21 +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 Use pipe() together with fcntl instead of pipe2() 2019-02-15 16:30:42 +01: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 Implement and enforce ChainLocks 2019-01-28 12:24:15 +01:00
protocol.h Implement and enforce ChainLocks 2019-01-28 12:24:15 +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
scheduler.cpp Merge #9186: test: Fix use-after-free in scheduler tests 2018-01-15 06:14:16 +01:00
scheduler.h
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
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 Change the way invalid ProTxes are handled in addUnchecked and existsProviderTxConflict (#2691) 2019-02-06 17:57:27 +01:00
txmempool.h Merge #9732: [Trivial] Remove nonsense #undef foreach 2019-01-22 22:55:54 -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 Fix endless wait in RenameThreadPool (#2675) 2019-02-01 10:49:31 +03:00
util.h update copyright (#2648) 2019-01-29 15:53:14 +01: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 Call existsProviderTxConflict after CheckSpecialTx (#2690) 2019-02-06 17:54:10 +01: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