dash/src
Wladimir J. van der Laan 4bb1132438
Merge #12886: Introduce Span type and use it instead of FLATDATA
9272d70 Support serializing Span<unsigned char> and use that instead of FLATDATA (Pieter Wuille)
833bc08 Add Slice: a (pointer, size) array view that acts like a container (Pieter Wuille)

Pull request description:

  Introduce a new data type `Span`, which is an encapsulated pointer + size (like C++20's `std::span` or LevelDB's `Slice`), and represents a view to a sequence of objects laid out continuously in memory.

  The immediate use case is replacing the remaining `FLATDATA` invocations. Instead of those, we support serializing/deserializing unsigned char `Span`s (treating them as arrays).

  A longer term goal for `Span`s is making the script execution operate on them rather than on `CScript` itself. This will allow separate storage mechanisms for scripts.

Tree-SHA512: 7b0da3c802e5df367f223275004d16b04262804c007b7c73fda927176f0a9c3b2ef3225fa842cb73500b0df73175ec1419f1f5239de2402e21dd9ae8e5d05233
2020-12-17 11:21:20 +03:00
..
bench refactor: Use constructors instead of static initialiser in CBLSId (#3869) 2020-12-14 20:13:54 -06:00
bls refactor: Use constructors instead of static initialiser in CBLSId (#3869) 2020-12-14 20:13:54 -06:00
compat Merge #12998: Default to defining endian-conversion DECLs in compat w/o config 2020-04-03 04:10:53 -05:00
config
consensus Refactor the hardening of DIP 1 (#3874) 2020-12-15 15:54:51 -06:00
crypto scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
evo typo: blockHash -> basBlockHash 2020-12-15 17:00:05 -06:00
governance Merge bitcoin#11041 Add LookupBlockIndex 2020-12-15 11:20:19 -06:00
immer scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
interfaces interfaces: Add isSpendable wallet interface method that accepts CScript-s (#3857) 2020-12-09 20:28:20 +00:00
leveldb Merge #12518: [0.16] Bump leveldb subtree 2020-03-24 11:43:10 -05:00
llmq Merge pull request #3870 from PastaPastaPasta/backports-0.17-pr23 2020-12-15 19:05:58 -06:00
masternode Refactor GetRequiredPaymentsString / masternode winners (#3861) 2020-12-12 01:38:08 +03:00
node Merge bitcoin#11041 Add LookupBlockIndex 2020-12-15 11:20:19 -06:00
obj
obj-test
policy Consensus: DIP-0020: Dash opcode updates - OP_CAT and OP_SPLIT. (#3824) 2020-12-11 22:17:10 +00:00
primitives Merge #12731: Support serialization as another type without casting 2020-06-11 23:20:48 -05:00
privatesend refactor: Add/Use byte vector constructor for CBLSWrapper (#3868) 2020-12-14 17:26:30 -06:00
qt drop platformStyle 2020-12-15 23:19:33 -06:00
rpc More of 12240: Add missing (DEPRECATED) strings 2020-12-16 10:14:28 -06:00
script Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
secp256k1 Merge #15703: Update secp256k1 subtree to latest upstream 2020-03-14 11:01:03 -05:00
support Merge #16161: util: Fix compilation errors in support/lockedpool.cpp 2020-10-26 20:35:28 -04:00
test Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
univalue Merge #12193: RPC: Consistently use UniValue.pushKV instead of push_back(Pair()) (karel-3d) (#3532) 2020-06-18 12:17:23 +03:00
wallet More of 13506 2020-12-16 10:16:22 -06:00
zmq zmq|validationinterface|llmq: Implement recovered signature notifications (#3803) 2020-11-17 20:41:30 +01:00
.clang-format Merge #12982: Fix inconsistent namespace formatting guidelines 2020-06-27 10:43:32 -05:00
addrdb.cpp Merge #13039: Add logging and error handling for file syncing 2020-11-17 14:32:37 -05:00
addrdb.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
addressindex.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
addrman.cpp scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
addrman.h Merge #12747: Fix typos 2020-12-15 21:49:46 -06:00
amount.h
arith_uint256.cpp Merge #12537: [arith_uint256] Make it safe to use "self" in operators 2020-11-01 01:58:06 -04:00
arith_uint256.h Merge #12564: [arith_uint256] Avoid unnecessary this-copy using prefix operator 2020-06-13 14:50:11 -05:00
base58.cpp Merge #12704: base58: use map instead of strchr() when decode 2020-12-15 21:50:11 -06:00
base58.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
batchedlogger.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
batchedlogger.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
bip39_english.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
bip39.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
bip39.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
blockencodings.cpp Refactor the hardening of DIP 1 (#3874) 2020-12-15 15:54:51 -06:00
blockencodings.h Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
blockfilter.cpp Merge #14073: blockfilter: Avoid out-of-bounds script access. 2020-06-13 14:08:18 -05:00
blockfilter.h Rename BlockFilterType::BASIC to BASIC_FILTER 2020-06-13 14:08:18 -05:00
bloom.cpp scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
bloom.h scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
cachemap.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
cachemultimap.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
chain.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
chain.h Merge #13234: Break circular dependency: chain -> pow -> chain 2020-07-01 14:08:47 -05:00
chainparams.cpp consenus: Implement LLMQ_100_67 quorums (#3844) 2020-12-10 00:08:05 +01:00
chainparams.h PrivateSend: Harden SPORK_22_PS_MORE_PARTICIPANTS (#3860) 2020-12-09 20:00:08 +00:00
chainparamsbase.cpp backport: bitcoin#12128: Refactor: One CBaseChainParams should be enough (#3865) 2020-12-11 00:12:26 +01:00
chainparamsbase.h backport: bitcoin#12128: Refactor: One CBaseChainParams should be enough (#3865) 2020-12-11 00:12:26 +01:00
chainparamsseeds.h contrib|src: Update hard coded seeds (#3791) 2020-11-08 17:45:56 +03:00
checkpoints.cpp Merge bitcoin#11041 Add LookupBlockIndex 2020-12-15 11:20:19 -06:00
checkpoints.h Merge bitcoin#11041 Add LookupBlockIndex 2020-12-15 11:20:19 -06:00
checkqueue.h scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
clientversion.cpp scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
clientversion.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
coins.cpp Refactor the hardening of DIP 1 (#3874) 2020-12-15 15:54:51 -06:00
coins.h Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
compat.h Merge pull request #3445 from codablock/pr_epoll 2020-04-22 17:10:33 +02:00
compressor.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
compressor.h Merge #12886: Introduce Span type and use it instead of FLATDATA 2020-12-17 11:21:20 +03:00
core_io.h Merge #13422: Drop ParseHashUV in favor of calling ParseHashStr 2020-07-07 11:39:35 -05:00
core_memusage.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
core_read.cpp Merge #13656: Remove the boost/algorithm/string/predicate.hpp dependency 2020-07-17 15:42:20 -05:00
core_write.cpp Merge #12885: Reduce implementation code inside CScript 2020-11-17 14:34:32 -05:00
ctpl.h scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
cuckoocache.h Merge #12770: Use explicit casting in cuckoocache's compute_hashes(...) to clarify integer conversion 2020-11-01 01:58:42 -04:00
cxxtimer.hpp
dash-cli-res.rc
dash-cli.cpp docs: Properly alphabetize output of CLI --help option (backport 12331) (#3681) 2020-09-24 13:58:29 +03:00
dash-tx-res.rc
dash-tx.cpp Merge pull request #3870 from PastaPastaPasta/backports-0.17-pr23 2020-12-15 19:05:58 -06:00
dashd-res.rc
dashd.cpp Merge #12941: [Trivial] Ignore macOS daemon() depracation warning 2020-11-01 01:01:45 -05:00
dbwrapper.cpp Merge #12784: Fix bug in memory usage calculation (unintended integer division) 2020-10-14 13:27:33 -04:00
dbwrapper.h Merge #12604: Add DynamicMemoryUsage() to CDBWrapper to estimate LevelDB memory use 2020-06-14 11:41:07 -05:00
dsnotificationinterface.cpp Create one PS manager per wallet 2020-07-20 10:10:43 -05:00
dsnotificationinterface.h Fix issues introduced with asynchronous signal handling (#3369) 2020-03-20 19:11:54 +03:00
flat-database.h remove additional FLATDATA 2020-10-27 13:24:34 -04:00
fs.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
fs.h
hash.cpp Merge #11884: Remove unused include in hash.cpp 2020-03-24 11:43:10 -05:00
hash.h Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
hdchain.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
hdchain.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
httprpc.cpp rpc: implement whitelist for commands needed by Dash Platform (#3738) 2020-11-24 02:39:50 +01:00
httprpc.h
httpserver.cpp Backport #17249: rpc: Add missing deque include to fix build (#3815) 2020-11-17 22:46:07 +03:00
httpserver.h Merge #10969: Declare single-argument (non-converting) constructors "explicit" 2020-01-10 10:33:57 -06:00
indirectmap.h
init.cpp Merge #12845: Trivial: Add logging line in init.cpp that was accidentally removed with #10762 2020-12-15 22:41:44 -06:00
init.h Merge #12977: Refactor g_wallet_init_interface to const reference 2020-11-17 14:32:38 -05:00
keepass.cpp Merge #12193: RPC: Consistently use UniValue.pushKV instead of push_back(Pair()) (karel-3d) (#3532) 2020-06-18 12:17:23 +03:00
keepass.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
key.cpp Merge #9598: Improve readability by removing redundant casts to same type (on all platforms) 2020-06-18 11:41:53 -05:00
key.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
keystore.cpp Merge #12762: Make CKeyStore an interface 2020-10-26 20:35:28 -04:00
keystore.h Merge #12762: Make CKeyStore an interface 2020-10-26 20:35:28 -04:00
limitedmap.h Add cache for CBlockTreeDB::HasTxIndex (#3402) 2020-04-08 22:18:33 +02:00
logging.cpp More of 12567: Add missing datetime format changes to LogTimestampStr 2020-12-16 10:14:45 -06:00
logging.h Merge #13021: MOVEONLY: Move logging code from util.{h,cpp} to new files. 2020-07-18 03:08:13 -05:00
Makefile.am Merge #12886: Introduce Span type and use it instead of FLATDATA 2020-12-17 11:21:20 +03:00
Makefile.bench.include Merge #13025: Dead code removal 2020-11-17 14:32:37 -05:00
Makefile.leveldb.include
Makefile.qt.include Remove direct bitcoin calls from qt/splashscreen.cpp 2020-10-03 21:36:31 +02:00
Makefile.qttest.include Remove direct bitcoin calls from qt/splashscreen.cpp 2020-10-03 21:36:31 +02:00
Makefile.test.include test: Implement unit tests for CTransactionBuilder (#3677) 2020-09-05 00:25:16 +03:00
memusage.h Bugfix: Include <memory> for std::unique_ptr 2020-04-08 11:46:27 -05:00
merkleblock.cpp Refactor the hardening of DIP 1 (#3874) 2020-12-15 15:54:51 -06:00
merkleblock.h Merge #11293: Deduplicate CMerkleBlock construction code, add test coverage 2020-04-08 11:46:27 -05:00
messagesigner.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
messagesigner.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
miner.cpp consenus: Implement LLMQ_100_67 quorums (#3844) 2020-12-10 00:08:05 +01:00
miner.h Merge #11689: mempool: Fix missing locking in CTxMemPool::check(…) and CTxMemPool::setSanityCheck(…) 2020-07-01 14:08:47 -05:00
net_processing.cpp Merge pull request #3870 from PastaPastaPasta/backports-0.17-pr23 2020-12-15 19:05:58 -06:00
net_processing.h Merge #12680: Add missing virtual destructor in PeerLogicValidation 2020-12-15 17:00:05 -06:00
net.cpp Merge #12678: build: Fix a few compilation issues with Clang 7 and -Werror 2020-12-15 17:00:05 -06:00
net.h Merge #12680: Add missing virtual destructor in PeerLogicValidation 2020-12-15 17:00:05 -06:00
netaddress.cpp Merge pull request #3518 from PastaPastaPasta/backports-0.17-pr1 2020-06-11 20:51:58 +03:00
netaddress.h Merge #12886: Introduce Span type and use it instead of FLATDATA 2020-12-17 11:21:20 +03:00
netbase.cpp Merge #12678: build: Fix a few compilation issues with Clang 7 and -Werror 2020-12-15 17:00:05 -06:00
netbase.h Merge #12569: net: Increase signal-to-noise ratio in debug.log by adjusting log level when logging failed non-manual connect():s 2020-11-17 14:32:36 -05:00
netfulfilledman.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
netfulfilledman.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
netmessagemaker.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
noui.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
noui.h
pow.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
pow.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
prevector.h Speed up prevector initialization and vector assignment from prevectors (#3274) 2020-01-08 08:02:17 +01:00
protocol.cpp Merge bitcoin#10387: Eventually connect to NODE_NETWORK_LIMITED peers (#3417) 2020-04-19 16:21:47 +03:00
protocol.h Merge #12740: Add native support for serializing char arrays without FLATDATA 2020-10-22 11:36:39 -04:00
pubkey.cpp Merge #13722: trivial: Replace CPubKey::operator[] with CPubKey::vch where possible 2020-07-28 20:08:40 -05:00
pubkey.h Merge #12460: Assert CPubKey::ValidLength to the pubkey's header-relevant size 2020-07-26 19:39:13 -05:00
random.cpp Merge #13236: break circular dependency: random/sync -> util -> random/sync 2020-07-18 03:08:13 -05:00
random.h Merge #12742: Make FastRandomContext support standard C++11 RNG interface 2020-10-22 11:36:39 -04:00
rest.cpp Merge bitcoin#11041 Add LookupBlockIndex 2020-12-15 11:20:19 -06:00
reverse_iterator.h scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
reverselock.h
saltedhasher.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
saltedhasher.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
scheduler.cpp Merge #11824: Block ActivateBestChain to empty validationinterface queue 2020-03-24 17:21:59 +03:00
scheduler.h Merge #13835: [trivial,doc] Fix memory consistency model in comment 2020-07-17 15:45:43 -05:00
serialize.h Merge #12886: Introduce Span type and use it instead of FLATDATA 2020-12-17 11:21:20 +03:00
span.h Merge #12886: Introduce Span type and use it instead of FLATDATA 2020-12-17 11:21:20 +03:00
spentindex.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
spork.cpp PrivateSend: Harden SPORK_22_PS_MORE_PARTICIPANTS (#3860) 2020-12-09 20:00:08 +00:00
spork.h PrivateSend: Harden SPORK_22_PS_MORE_PARTICIPANTS (#3860) 2020-12-09 20:00:08 +00:00
stacktraces.cpp Bring --enable-stacktraces configure option back (#3826) 2020-12-01 04:18:46 +00:00
stacktraces.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
statsd_client.cpp Backporting Statoshi and bitcoin#16728 (#2515) 2020-12-15 10:22:23 -06:00
statsd_client.h Backporting Statoshi and bitcoin#16728 (#2515) 2020-12-15 10:22:23 -06:00
streams.h Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
sync.cpp Merge #13236: break circular dependency: random/sync -> util -> random/sync 2020-07-18 03:08:13 -05:00
sync.h Merge #13423: [net] Thread safety annotations in net_processing 2020-06-08 20:27:14 -05:00
threadinterrupt.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
threadinterrupt.h
threadsafety.h Merge #13423: [net] Thread safety annotations in net_processing 2020-06-08 20:27:14 -05:00
timedata.cpp Merge #13153: Add missing newlines to debug logging 2020-07-29 10:55:33 -05:00
timedata.h scripted-diff: Merge #13753: Remove trailing whitespaces 2020-07-28 20:23:12 -05:00
tinyformat.h Merge #12716: Fix typos and cleanup in various files 2020-06-11 23:20:48 -05:00
torcontrol.cpp Merge #13291: test: Don't include torcontrol.cpp into the test file 2020-07-01 14:08:47 -05:00
torcontrol.h Backport 12381 (#3528) 2020-06-13 21:21:30 +03:00
txdb.cpp Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
txdb.h Merge #12731: Support serialization as another type without casting 2020-06-11 23:20:48 -05:00
txmempool.cpp Merge #12717: [REST] Handle UTXO retrieval when ignoring the mempool 2020-10-14 13:27:31 -04:00
txmempool.h Merge #12717: [REST] Handle UTXO retrieval when ignoring the mempool 2020-10-14 13:27:31 -04:00
ui_interface.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
ui_interface.h Merge #10770: Drop upgrade-cancel callback registration for a generic "cancelable" 2020-01-03 08:35:55 -06:00
uint256.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
uint256.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
undo.h Merge #12683: Fix more constness violations in serialization code 2020-12-17 05:07:07 +03:00
unordered_lru_cache.h Merge #12757: Clarify include guard naming convention 2020-07-19 00:42:54 -05:00
util.cpp Merge #12923: util: Pass pthread_self() to pthread_setschedparam instead of 0 2020-12-16 10:15:59 -06:00
util.h Merge #12618: Set SCHED_BATCH priority on the loadblk thread. 2020-12-15 22:34:03 -06:00
utilmemory.h Merge #13690: [moveonly] Extract MakeUnique into utilmemory.h 2020-07-26 19:39:13 -05:00
utilmoneystr.cpp Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
utilmoneystr.h Backport 11651 (#3358) 2020-03-20 01:46:56 +03:00
utilstrencodings.cpp Merge #13656: Remove the boost/algorithm/string/predicate.hpp dependency 2020-07-17 15:42:20 -05:00
utilstrencodings.h Merge #13656: Remove the boost/algorithm/string/predicate.hpp dependency 2020-07-17 15:42:20 -05:00
utiltime.cpp Merge #12567: util: Print timestamp strings in logs using ISO 8601 formatting 2020-12-15 20:16:10 -06:00
utiltime.h Merge #12567: util: Print timestamp strings in logs using ISO 8601 formatting 2020-12-15 20:16:10 -06:00
validation.cpp Merge #12567: util: Print timestamp strings in logs using ISO 8601 formatting 2020-12-15 20:16:10 -06:00
validation.h Merge bitcoin#11041 Add LookupBlockIndex 2020-12-15 11:20:19 -06:00
validationinterface.cpp zmq|validationinterface|llmq: Implement recovered signature notifications (#3803) 2020-11-17 20:41:30 +01:00
validationinterface.h Merge #12680: Add missing virtual destructor in PeerLogicValidation 2020-12-15 17:00:05 -06:00
version.h p2p: remove some old protocol version checks/dead code (#3647) 2020-08-14 14:42:15 +03:00
versionbits.cpp Implement new hardfork for v17 to be used in future changes (#3808) 2020-11-17 19:28:14 +00:00
versionbits.h Implement dynamic activation thresholds (#3692) 2020-09-12 17:33:12 +03:00
walletinitinterface.h Merge #12977: Refactor g_wallet_init_interface to const reference 2020-11-17 14:32:38 -05:00
warnings.cpp Merge #13116: Add Clang thread safety annotations for variables guarded by cs_{rpcWarmup,nTimeOffset,warnings} 2020-06-28 19:28:57 -05:00
warnings.h Merge #13895: Docs: fix GetWarnings docs to reflect behavior 2020-07-17 15:45:43 -05:00