0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-08 14:34:53 -05:00
bitcoin-core/src
Pieter Wuille 584a358997 Do merkle root and txid duplicates check simultaneously
Move the txid duplicates check into BuildMerkleTree, where it can be done
much more efficiently (without needing to build a full txid set to detect
duplicates).

The previous version (using the std::set<uint256> to detect duplicates) was
also slightly too weak. A block mined with actual duplicate transactions
(which is invalid, due to the inputs of the duplicated transactions being
seen as double spends) would trigger the duplicates logic, resulting in the
block not being stored on disk, and rerequested. This change fixes that by
only triggering in the case of duplicated transactions that can actually
result in an identical merkle root.
2014-09-24 19:17:02 +02:00
..
compat libc-compat: add new symbol that's now needed 2014-08-08 15:21:50 -04:00
config build: move bitcoin-config.h to its own directory 2014-06-21 19:47:43 +02:00
crypto header include cleanup 2014-09-14 12:43:56 +02:00
json json_spirit: #include <stdint.h> 2014-05-13 11:41:59 +02:00
leveldb Merge src/leveldb changes for LevelDB 1.17. 2014-05-09 18:23:34 +02:00
obj
obj-test
qt Merge pull request #4852 2014-09-22 12:20:36 +02:00
script Fixing condition 'sabotaging' MSVC build 2014-09-19 18:29:58 -04:00
secp256k1 secp256k1: Add build-side changes for libsecp256k1 2014-07-01 12:27:19 -04:00
test Add actual signature tests 2014-09-22 19:26:17 +02:00
univalue univalue: make spaceStr thread-safe 2014-09-05 14:42:22 +02:00
.clang-format Update coding style and add .clang-format 2014-07-28 22:08:13 +02:00
addrman.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
addrman.h Remove some unnecessary c_strs() in logging and the GUI 2014-09-09 11:31:17 +02:00
alert.cpp Split up util.cpp/h 2014-08-26 13:25:22 +02:00
alert.h Rename IMPLEMENT_SERIALIZE to ADD_SERIALIZE_METHODS 2014-09-02 09:58:09 +02:00
allocators.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
allocators.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
base58.cpp Fixing out of bounds error in GetKey() 2014-09-23 10:45:04 +02:00
base58.h Move CTxDestination from script/script to script/standard 2014-09-16 19:14:32 +02:00
bitcoin-cli-res.rc fix copyright string in two of our *.rc files 2014-07-01 12:13:37 +02:00
bitcoin-cli.cpp header include cleanup 2014-09-14 12:43:56 +02:00
bitcoin-tx.cpp Merge pull request #4555 2014-09-17 13:44:22 +02:00
bitcoind-res.rc fix copyright string in two of our *.rc files 2014-07-01 12:13:37 +02:00
bitcoind.cpp Also create pid file in non-daemon mode 2014-09-20 11:03:59 +02:00
bloom.cpp Separate script/standard 2014-09-08 20:21:35 +02:00
bloom.h Rename IMPLEMENT_SERIALIZE to ADD_SERIALIZE_METHODS 2014-09-02 09:58:09 +02:00
chainparams.cpp Merge pull request #4623 2014-09-10 15:07:58 +02:00
chainparams.h Merge pull request #4623 2014-09-10 15:07:58 +02:00
chainparamsbase.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
chainparamsbase.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
chainparamsseeds.h Add built-in seeds for .onion 2014-08-03 17:26:27 +02:00
checkpoints.cpp Introduce BlockMap type for mapBlockIndex 2014-09-04 02:04:51 +02:00
checkpoints.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
checkqueue.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
clientversion.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
coincontrol.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
coins.cpp Combine CCoinsViewCache's HaveCoins and const GetCoins into AccessCoins. 2014-09-03 14:24:52 +02:00
coins.h Merge pull request #4825 2014-09-16 04:47:55 +02:00
compat.h Move S_I* constants and MSG_NOSIGNAL to compat.h 2014-08-26 13:25:21 +02:00
core.cpp Do merkle root and txid duplicates check simultaneously 2014-09-24 19:17:02 +02:00
core.h Do merkle root and txid duplicates check simultaneously 2014-09-24 19:17:02 +02:00
core_io.h header include cleanup 2014-09-14 12:43:56 +02:00
core_read.cpp Merge pull request #4911 2014-09-16 04:12:52 +02:00
core_write.cpp header include cleanup 2014-09-14 12:43:56 +02:00
crypter.cpp Merge pull request #4825 2014-09-16 04:47:55 +02:00
crypter.h Rename IMPLEMENT_SERIALIZE to ADD_SERIALIZE_METHODS 2014-09-02 09:58:09 +02:00
db.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
db.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
hash.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
hash.h header include cleanup 2014-09-14 12:43:56 +02:00
init.cpp Also create pid file in non-daemon mode 2014-09-20 11:03:59 +02:00
init.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
key.cpp Fixing compiler warning C4800: 'type' forcing value to bool 'true' or 'false' 2014-09-06 15:59:59 -04:00
key.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
keystore.cpp Move CScript class and dependencies to script/script 2014-09-08 20:19:31 +02:00
keystore.h add missing header end comments 2014-08-28 22:25:21 +02:00
leveldbwrapper.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
leveldbwrapper.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
limitedmap.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
main.cpp Do merkle root and txid duplicates check simultaneously 2014-09-24 19:17:02 +02:00
main.h Merge pull request #4555 2014-09-17 13:44:22 +02:00
Makefile.am header include cleanup 2014-09-14 12:43:56 +02:00
Makefile.qt.include Merge pull request #4673 2014-08-26 17:41:33 +02:00
Makefile.qttest.include build: add option for reducing exports (v2) 2014-08-18 16:10:15 -04:00
Makefile.test.include bitcoin-util-test: Test bitcoin-tx with null scriptPubKey 2014-09-14 06:28:22 +00:00
miner.cpp Combine CCoinsViewCache's HaveCoins and const GetCoins into AccessCoins. 2014-09-03 14:24:52 +02:00
miner.h Switch miner.cpp to use sha2 instead of OpenSSL. 2014-06-21 19:47:39 +02:00
mruset.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
net.cpp Merge pull request #4911 2014-09-16 04:12:52 +02:00
net.h Limit CNode::mapAskFor 2014-09-09 09:19:15 +02:00
netbase.cpp netbase: Make SOCKS5 negotiation interruptible 2014-09-10 11:33:13 +02:00
netbase.h Rename IMPLEMENT_SERIALIZE to ADD_SERIALIZE_METHODS 2014-09-02 09:58:09 +02:00
noui.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
noui.h add missing header end comments 2014-08-28 22:25:21 +02:00
pow.cpp Merge pull request #4377 2014-08-27 22:39:28 +02:00
pow.h header include cleanup 2014-09-14 12:43:56 +02:00
protocol.cpp Remove all other print() methods 2014-08-20 20:54:27 +02:00
protocol.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
random.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
random.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
rpcblockchain.cpp Introduce BlockMap type for mapBlockIndex 2014-09-04 02:04:51 +02:00
rpcclient.cpp Merge pull request #4863 2014-09-17 13:05:41 +02:00
rpcclient.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
rpcdump.cpp Move CTxDestination from script/script to script/standard 2014-09-16 19:14:32 +02:00
rpcmining.cpp Merge pull request #4911 2014-09-16 04:12:52 +02:00
rpcmisc.cpp Move CTxDestination from script/script to script/standard 2014-09-16 19:14:32 +02:00
rpcnet.cpp typo fix of booleamn to boolean 2014-09-18 08:15:09 +08:00
rpcprotocol.cpp header include cleanup 2014-09-14 12:43:56 +02:00
rpcprotocol.h add missing header end comments 2014-08-28 22:25:21 +02:00
rpcrawtransaction.cpp Merge pull request #4555 2014-09-17 13:44:22 +02:00
rpcserver.cpp Fixing compiler warning C4101 2014-09-15 14:35:32 +02:00
rpcserver.h add missing header end comments 2014-08-28 22:25:21 +02:00
rpcwallet.cpp Merge pull request #4863 2014-09-17 13:05:41 +02:00
serialize.h Fixing improper input syntax and failing bounds check 2014-09-21 21:18:48 -04:00
sync.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
sync.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
threadsafety.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
timedata.cpp Split up util.cpp/h 2014-08-26 13:25:22 +02:00
timedata.h Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
tinyformat.h Move *Version() functions to version.h/cpp 2014-08-26 13:25:21 +02:00
txdb.cpp header include cleanup 2014-09-14 12:43:56 +02:00
txdb.h Make appropriate getter-routines "const" in CCoinsView. 2014-08-26 11:29:18 +02:00
txmempool.cpp add nModSize init to default constructor of CTxMemPoolEntry 2014-09-16 15:07:45 +02:00
txmempool.h Track modified size in TxMemPoolEntry so that we can correctly compute priority. 2014-09-08 11:28:46 -04:00
ui_interface.h Merge pull request #4779 2014-09-01 15:35:09 +02:00
uint256.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
uint256.h header include cleanup 2014-09-14 12:43:56 +02:00
util.cpp Also create pid file in non-daemon mode 2014-09-20 11:03:59 +02:00
util.h Also create pid file in non-daemon mode 2014-09-20 11:03:59 +02:00
utilmoneystr.cpp add missing copyright headers 2014-08-28 22:26:56 +02:00
utilmoneystr.h Split up util.cpp/h 2014-08-26 13:25:22 +02:00
utilstrencodings.cpp Fixing 'vector out of bounds' issue in base 32 and 64 2014-09-18 16:57:01 -04:00
utilstrencodings.h Split up util.cpp/h 2014-08-26 13:25:22 +02:00
utiltime.cpp Split up util.cpp/h 2014-08-26 13:25:22 +02:00
utiltime.h add missing header end comments 2014-08-28 22:25:21 +02:00
version.cpp Apply clang-format on some infrequently-updated files 2014-09-19 19:21:46 +02:00
version.h add missing header end comments 2014-08-28 22:25:21 +02:00
wallet.cpp Merge pull request #4787 2014-09-22 14:18:54 +02:00
wallet.h Merge pull request #4787 2014-09-22 14:18:54 +02:00
wallet_ismine.cpp Move CTxDestination from script/script to script/standard 2014-09-16 19:14:32 +02:00
wallet_ismine.h Move CTxDestination from script/script to script/standard 2014-09-16 19:14:32 +02:00
walletdb.cpp cleanup class private and public areas in walletdb 2014-09-18 07:21:49 +02:00
walletdb.h cleanup class private and public areas in walletdb 2014-09-18 07:21:49 +02:00