Merge branch 'master' into adjust-pch
This commit is contained in:
commit
370cb386cf
|
@ -117,5 +117,5 @@ ld -v
|
||||||
|
|
||||||
HOST="$HOST" BUILD="$BUILD" NO_RUST="$RUST_ARG" NO_PROTON="$PROTON_ARG" "$MAKE" "$@" -C ./depends/ V=1
|
HOST="$HOST" BUILD="$BUILD" NO_RUST="$RUST_ARG" NO_PROTON="$PROTON_ARG" "$MAKE" "$@" -C ./depends/ V=1
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
CC="$CC" CXX="$CXX" ./configure --prefix="${PREFIX}" --host="$HOST" --build="$BUILD" "$RUST_ARG" "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" "$PROTON_ARG" "$LIBS_ARG" CXXFLAGS='-fwrapv -fno-strict-aliasing -Werror -g'
|
CC="$CC" CXX="$CXX" ./configure --prefix="${PREFIX}" --host="$HOST" --build="$BUILD" "$RUST_ARG" "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" "$PROTON_ARG" "$LIBS_ARG" CXXFLAGS='-fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch -Werror -g'
|
||||||
"$MAKE" "$@" V=1
|
"$MAKE" "$@" V=1
|
||||||
|
|
|
@ -37,7 +37,7 @@ public:
|
||||||
CMainParams() {
|
CMainParams() {
|
||||||
strNetworkID = "main";
|
strNetworkID = "main";
|
||||||
strCurrencyUnits = "ZCL";
|
strCurrencyUnits = "ZCL";
|
||||||
consensus.fCoinbaseMustBeProtected = true;
|
consensus.fCoinbaseMustBeProtected = false;
|
||||||
consensus.nSubsidySlowStartInterval = 2;
|
consensus.nSubsidySlowStartInterval = 2;
|
||||||
consensus.nSubsidyHalvingInterval = 840000;
|
consensus.nSubsidyHalvingInterval = 840000;
|
||||||
consensus.nMajorityEnforceBlockUpgrade = 750;
|
consensus.nMajorityEnforceBlockUpgrade = 750;
|
||||||
|
@ -55,7 +55,7 @@ public:
|
||||||
pchMessageStart[1] = 0xea;
|
pchMessageStart[1] = 0xea;
|
||||||
pchMessageStart[2] = 0xb2;
|
pchMessageStart[2] = 0xb2;
|
||||||
pchMessageStart[3] = 0xed;
|
pchMessageStart[3] = 0xed;
|
||||||
vAlertPubKey = ParseHex("048679fb891b15d0cada9692047fd0ae26ad8bfb83fabddbb50334ee5bc0683294deb410be20513c5af6e7b9cec717ade82b27080ee6ef9a245c36a795ab044bb3");
|
vAlertPubKey = ParseHex("04f2cd746e629ffd320a81287474c98c2ad15d15b0a210b0144edcd8f3e1301c6311fd751fa34ba17d88090374cfec7cd9aaca55a5a0c4456511acc01b922005de");
|
||||||
nDefaultPort = 8033;
|
nDefaultPort = 8033;
|
||||||
nMaxTipAge = 24 * 60 * 60;
|
nMaxTipAge = 24 * 60 * 60;
|
||||||
nPruneAfterHeight = 100000;
|
nPruneAfterHeight = 100000;
|
||||||
|
@ -203,6 +203,7 @@ public:
|
||||||
CTestNetParams() {
|
CTestNetParams() {
|
||||||
strNetworkID = "test";
|
strNetworkID = "test";
|
||||||
strCurrencyUnits = "ZCT";
|
strCurrencyUnits = "ZCT";
|
||||||
|
consensus.fCoinbaseMustBeProtected = false;
|
||||||
consensus.nMajorityEnforceBlockUpgrade = 51;
|
consensus.nMajorityEnforceBlockUpgrade = 51;
|
||||||
consensus.nMajorityRejectBlockOutdated = 75;
|
consensus.nMajorityRejectBlockOutdated = 75;
|
||||||
consensus.nMajorityWindow = 400;
|
consensus.nMajorityWindow = 400;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include <leveldb/filter_policy.h>
|
#include <leveldb/filter_policy.h>
|
||||||
#include <memenv.h>
|
#include <memenv.h>
|
||||||
|
|
||||||
void HandleError(const leveldb::Status& status) throw(leveldb_error)
|
void HandleError(const leveldb::Status& status)
|
||||||
{
|
{
|
||||||
if (status.ok())
|
if (status.ok())
|
||||||
return;
|
return;
|
||||||
|
@ -81,7 +81,7 @@ CLevelDBWrapper::~CLevelDBWrapper()
|
||||||
options.env = NULL;
|
options.env = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CLevelDBWrapper::WriteBatch(CLevelDBBatch& batch, bool fSync) throw(leveldb_error)
|
bool CLevelDBWrapper::WriteBatch(CLevelDBBatch& batch, bool fSync)
|
||||||
{
|
{
|
||||||
leveldb::Status status = pdb->Write(fSync ? syncoptions : writeoptions, &batch.batch);
|
leveldb::Status status = pdb->Write(fSync ? syncoptions : writeoptions, &batch.batch);
|
||||||
HandleError(status);
|
HandleError(status);
|
||||||
|
|
|
@ -22,7 +22,7 @@ public:
|
||||||
leveldb_error(const std::string& msg) : std::runtime_error(msg) {}
|
leveldb_error(const std::string& msg) : std::runtime_error(msg) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
void HandleError(const leveldb::Status& status) throw(leveldb_error);
|
void HandleError(const leveldb::Status& status);
|
||||||
|
|
||||||
/** Batch of changes queued to be written to a CLevelDBWrapper */
|
/** Batch of changes queued to be written to a CLevelDBWrapper */
|
||||||
class CLevelDBBatch
|
class CLevelDBBatch
|
||||||
|
@ -90,7 +90,7 @@ public:
|
||||||
~CLevelDBWrapper();
|
~CLevelDBWrapper();
|
||||||
|
|
||||||
template <typename K, typename V>
|
template <typename K, typename V>
|
||||||
bool Read(const K& key, V& value) const throw(leveldb_error)
|
bool Read(const K& key, V& value) const
|
||||||
{
|
{
|
||||||
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
|
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
|
||||||
ssKey.reserve(ssKey.GetSerializeSize(key));
|
ssKey.reserve(ssKey.GetSerializeSize(key));
|
||||||
|
@ -115,7 +115,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename K, typename V>
|
template <typename K, typename V>
|
||||||
bool Write(const K& key, const V& value, bool fSync = false) throw(leveldb_error)
|
bool Write(const K& key, const V& value, bool fSync = false)
|
||||||
{
|
{
|
||||||
CLevelDBBatch batch;
|
CLevelDBBatch batch;
|
||||||
batch.Write(key, value);
|
batch.Write(key, value);
|
||||||
|
@ -123,7 +123,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename K>
|
template <typename K>
|
||||||
bool Exists(const K& key) const throw(leveldb_error)
|
bool Exists(const K& key) const
|
||||||
{
|
{
|
||||||
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
|
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
|
||||||
ssKey.reserve(ssKey.GetSerializeSize(key));
|
ssKey.reserve(ssKey.GetSerializeSize(key));
|
||||||
|
@ -142,14 +142,14 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename K>
|
template <typename K>
|
||||||
bool Erase(const K& key, bool fSync = false) throw(leveldb_error)
|
bool Erase(const K& key, bool fSync = false)
|
||||||
{
|
{
|
||||||
CLevelDBBatch batch;
|
CLevelDBBatch batch;
|
||||||
batch.Erase(key);
|
batch.Erase(key);
|
||||||
return WriteBatch(batch, fSync);
|
return WriteBatch(batch, fSync);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WriteBatch(CLevelDBBatch& batch, bool fSync = false) throw(leveldb_error);
|
bool WriteBatch(CLevelDBBatch& batch, bool fSync = false);
|
||||||
|
|
||||||
// not available for LevelDB; provide for compatibility with BDB
|
// not available for LevelDB; provide for compatibility with BDB
|
||||||
bool Flush()
|
bool Flush()
|
||||||
|
@ -157,7 +157,7 @@ public:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Sync() throw(leveldb_error)
|
bool Sync()
|
||||||
{
|
{
|
||||||
CLevelDBBatch batch;
|
CLevelDBBatch batch;
|
||||||
return WriteBatch(batch, true);
|
return WriteBatch(batch, true);
|
||||||
|
|
|
@ -94,7 +94,7 @@ static void CheckBlockIndex();
|
||||||
/** Constant stuff for coinbase transactions we create: */
|
/** Constant stuff for coinbase transactions we create: */
|
||||||
CScript COINBASE_FLAGS;
|
CScript COINBASE_FLAGS;
|
||||||
|
|
||||||
const string strMessageMagic = "Zcash Signed Message:\n";
|
const string strMessageMagic = "BitcoinPrivate Signed Message:\n";
|
||||||
|
|
||||||
// Internal stuff
|
// Internal stuff
|
||||||
namespace {
|
namespace {
|
||||||
|
|
|
@ -28,7 +28,7 @@ enum
|
||||||
SIGHASH_ALL = 1,
|
SIGHASH_ALL = 1,
|
||||||
SIGHASH_NONE = 2,
|
SIGHASH_NONE = 2,
|
||||||
SIGHASH_SINGLE = 3,
|
SIGHASH_SINGLE = 3,
|
||||||
SIGHASH_FORKID = 0x42,
|
SIGHASH_FORKID = 0x40,
|
||||||
SIGHASH_ANYONECANPAY = 0x80,
|
SIGHASH_ANYONECANPAY = 0x80,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
* 1. Copy your private key into alertkeys.h. Don't commit this file!
|
* 1. Copy your private key into alertkeys.h. Don't commit this file!
|
||||||
* See sendalert.cpp for more info.
|
* See sendalert.cpp for more info.
|
||||||
*
|
*
|
||||||
* 2. Set the GENERATE_ALERTS_FLAG to true.
|
* 2. change #undef GENERATE_ALERTS_FLAG to #define GENERATE_ALERTS_FLAG
|
||||||
*
|
*
|
||||||
* 3. Build and run:
|
* 3. Build and run:
|
||||||
* test_bitcoin -t Generate_Alert_Test_Data
|
* test_bitcoin -t Generate_Alert_Test_Data
|
||||||
|
@ -52,16 +52,16 @@
|
||||||
* src/test/data/alertTests.raw.h
|
* src/test/data/alertTests.raw.h
|
||||||
*
|
*
|
||||||
* 5. Clean up...
|
* 5. Clean up...
|
||||||
* - Set GENERATE_ALERTS_FLAG back to false.
|
* - #undef GENERATE_ALERTS_FLAG
|
||||||
* - Remove your private key from alertkeys.h
|
* - Remove your private key from alertkeys.h
|
||||||
*
|
*
|
||||||
* 6. Build and verify the new test data:
|
* 6. Build and verify the new test data:
|
||||||
* test_bitcoin -t Alert_tests
|
* test_bitcoin -t Alert_tests
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define GENERATE_ALERTS_FLAG false
|
#undef GENERATE_ALERTS_FLAG
|
||||||
|
|
||||||
#if GENERATE_ALERTS_FLAG
|
#ifdef GENERATE_ALERTS_FLAG
|
||||||
|
|
||||||
// NOTE:
|
// NOTE:
|
||||||
// A function SignAndSave() was used by Bitcoin Core to create alert test data
|
// A function SignAndSave() was used by Bitcoin Core to create alert test data
|
||||||
|
|
Binary file not shown.
|
@ -59,7 +59,7 @@ BOOST_AUTO_TEST_CASE(subsidy_limit_test)
|
||||||
nSum += nSubsidy;
|
nSum += nSubsidy;
|
||||||
BOOST_CHECK(MoneyRange(nSum));
|
BOOST_CHECK(MoneyRange(nSum));
|
||||||
}
|
}
|
||||||
BOOST_CHECK_EQUAL(nSum, 12500000000000ULL);
|
BOOST_CHECK_EQUAL(nSum, 1250000000);
|
||||||
// Remainder of first period
|
// Remainder of first period
|
||||||
for (int nHeight = consensusParams.nSubsidySlowStartInterval; nHeight < consensusParams.nSubsidyHalvingInterval + consensusParams.SubsidySlowStartShift(); nHeight ++) {
|
for (int nHeight = consensusParams.nSubsidySlowStartInterval; nHeight < consensusParams.nSubsidyHalvingInterval + consensusParams.SubsidySlowStartShift(); nHeight ++) {
|
||||||
CAmount nSubsidy = GetBlockSubsidy(nHeight, consensusParams);
|
CAmount nSubsidy = GetBlockSubsidy(nHeight, consensusParams);
|
||||||
|
|
|
@ -135,6 +135,7 @@ struct {
|
||||||
{"00000000000000000000000000000000000000000000000000000000000022de", "007f388bed6b91756ea3e0866716ef6e9485fae6160195c7cda5c1e43f96ee359e105bcf4e8c293690420939124f04a0196363910421187811575929db40500b0bfdd1e8964aa334b801e3339a336d585a30852f1dc294a2d3d36f9ecc747458f3d41b4572415496df2a9fb1f882156cdabf9f65e681f38019865d6d47482277e24c9b8973eb34a41254faae4c5e2caa9dde5925ec118f3d8fa767ae00f434645957154367afe72000c59c79182c8faddd24424b9ebbb09ccd651b00540c96b9c7eec648a28a1d72c2e575d0f2250078511a011598db8e0788edf0ddc15ae24b62f63d6f93f71a2743a3c43ece55471a9802a76f31561a6f365c3647029bfa736395883afc0632bc25d4a8661b25d5aa0310f3c3fd3a183e75d359d6de3e5910b5dfbb74b7660af906917dc42b12e3e484aae1dbd20eaee037ef301572b7fc24d85b4aff9c82b27dcd421cee1639230d0188fec59f0dd4c0ced69c1ad07abd23692b1bd30735af942df597dcf6f403a36371bc416cf3e29a58570f586b05c357dc49515689788ad9581b8887dd913a41dc35e1ac9c9f9f4ea534eb6b36cc8af0299b6d3905750425da0366bdc59a7824477d7946b6f35c4ec90b8e61790fa74a4fa92396ea856661027828d40abb11dbe36bba516fe8ec8913106677285a4790d8034d1d1bf9fd87990889ddffc369b954a3d1c172be7e1812226c2b100cbe82c42bf4423456b6cb2bac3b4828135cb54f7a933a01f7f4a2057ad92136ba8e19fec313b412d43c089a71f06fd1625329b78d49ac92c59e4080932ddb1645910fd874dfb1f358e214231f62041acc41fd2c4e7b7127b3042459e1457f6b307fce9825aa4d2b942277f52665f2a77dd107b4f16cb3280f20c7551ff6cd855f97a6144131f69bab5648fb4b81261eefbf629094e8bcc4e36077f46d51a647da51fc01dca9a9ac12e2f7e2e2b1c9229dae099e95370177143d3b38ab661f19758494a01b32f0c27155b45a872a867dc50f9d76473695e9e2c4f9357f5ba6bb6c455d985f4e2c21486fde6576c6a8ceda6e010a7dc2b504130f429ac33376781ee4af5bbe8d768005bc4cb5092b15c4f296a8bd8c54a298eecd790a5161755a8605cc46bf890b8ff93d508501842b78c7261e5deeb1096891c528a300e57bf2f0aa9e8af2623cdf16bba20427704120484b6af8be26e4983d2685c783ce85d0174f84598719c6beefcc3603a94d4aa62750725df50671d7f9903ec255f779643ebd2fd8122fae3319e61928dcdaa44880d6a483140de63d2d7d7dc9dd449e0ee00d908e0f2164fc054198641e8fb0d74279c9b4117884b9335028a9f50c7223d3c03675ecf73329e52603f77f20cffba99356e51a365b75825f7db56d77542784f3c2663c493a2e564d73f753e9d6ebb0c2f2027a2330a7117c67a20507474fc47282a02cb572de17bbc7a335959316f74a05e3687cfb5227bc5b1b7f084f50902760e77740d420df9a495521c09b911e5f199a8343918b8386fc74f22552a76524a22c8c70ff06084e7fefe9b3ab98e004fadf35eb5f60483f287851712d90ebdd6b512877170d3b7fb34f16813917ae3b5ed54ede6081bdd7cc646fb336658121fd8fbafc52959b48d13375dfa4ce8616c157533a05ee1dc1120f215c348b54357d68adb4da7f5f48d55c005b3e7a23d05746e44d968f7601d4dbdff702861030d6e3a4140e6e1a29978be541f713f8e2cc9aa1ac32fecc941ee4aa4c41bc7f91ea5328ff87cbf35a8de17d1d3d1ad6d4384b0df52d10b3984d62e1678e86dd150ee425490bc727ee7107fda0f5d2433ab1c5d407be9d123fad5c201355601d926d3923787be86a4aa5be0b8d5750171ad658f8e97798b5dcaed46345a9af70c441"},
|
{"00000000000000000000000000000000000000000000000000000000000022de", "007f388bed6b91756ea3e0866716ef6e9485fae6160195c7cda5c1e43f96ee359e105bcf4e8c293690420939124f04a0196363910421187811575929db40500b0bfdd1e8964aa334b801e3339a336d585a30852f1dc294a2d3d36f9ecc747458f3d41b4572415496df2a9fb1f882156cdabf9f65e681f38019865d6d47482277e24c9b8973eb34a41254faae4c5e2caa9dde5925ec118f3d8fa767ae00f434645957154367afe72000c59c79182c8faddd24424b9ebbb09ccd651b00540c96b9c7eec648a28a1d72c2e575d0f2250078511a011598db8e0788edf0ddc15ae24b62f63d6f93f71a2743a3c43ece55471a9802a76f31561a6f365c3647029bfa736395883afc0632bc25d4a8661b25d5aa0310f3c3fd3a183e75d359d6de3e5910b5dfbb74b7660af906917dc42b12e3e484aae1dbd20eaee037ef301572b7fc24d85b4aff9c82b27dcd421cee1639230d0188fec59f0dd4c0ced69c1ad07abd23692b1bd30735af942df597dcf6f403a36371bc416cf3e29a58570f586b05c357dc49515689788ad9581b8887dd913a41dc35e1ac9c9f9f4ea534eb6b36cc8af0299b6d3905750425da0366bdc59a7824477d7946b6f35c4ec90b8e61790fa74a4fa92396ea856661027828d40abb11dbe36bba516fe8ec8913106677285a4790d8034d1d1bf9fd87990889ddffc369b954a3d1c172be7e1812226c2b100cbe82c42bf4423456b6cb2bac3b4828135cb54f7a933a01f7f4a2057ad92136ba8e19fec313b412d43c089a71f06fd1625329b78d49ac92c59e4080932ddb1645910fd874dfb1f358e214231f62041acc41fd2c4e7b7127b3042459e1457f6b307fce9825aa4d2b942277f52665f2a77dd107b4f16cb3280f20c7551ff6cd855f97a6144131f69bab5648fb4b81261eefbf629094e8bcc4e36077f46d51a647da51fc01dca9a9ac12e2f7e2e2b1c9229dae099e95370177143d3b38ab661f19758494a01b32f0c27155b45a872a867dc50f9d76473695e9e2c4f9357f5ba6bb6c455d985f4e2c21486fde6576c6a8ceda6e010a7dc2b504130f429ac33376781ee4af5bbe8d768005bc4cb5092b15c4f296a8bd8c54a298eecd790a5161755a8605cc46bf890b8ff93d508501842b78c7261e5deeb1096891c528a300e57bf2f0aa9e8af2623cdf16bba20427704120484b6af8be26e4983d2685c783ce85d0174f84598719c6beefcc3603a94d4aa62750725df50671d7f9903ec255f779643ebd2fd8122fae3319e61928dcdaa44880d6a483140de63d2d7d7dc9dd449e0ee00d908e0f2164fc054198641e8fb0d74279c9b4117884b9335028a9f50c7223d3c03675ecf73329e52603f77f20cffba99356e51a365b75825f7db56d77542784f3c2663c493a2e564d73f753e9d6ebb0c2f2027a2330a7117c67a20507474fc47282a02cb572de17bbc7a335959316f74a05e3687cfb5227bc5b1b7f084f50902760e77740d420df9a495521c09b911e5f199a8343918b8386fc74f22552a76524a22c8c70ff06084e7fefe9b3ab98e004fadf35eb5f60483f287851712d90ebdd6b512877170d3b7fb34f16813917ae3b5ed54ede6081bdd7cc646fb336658121fd8fbafc52959b48d13375dfa4ce8616c157533a05ee1dc1120f215c348b54357d68adb4da7f5f48d55c005b3e7a23d05746e44d968f7601d4dbdff702861030d6e3a4140e6e1a29978be541f713f8e2cc9aa1ac32fecc941ee4aa4c41bc7f91ea5328ff87cbf35a8de17d1d3d1ad6d4384b0df52d10b3984d62e1678e86dd150ee425490bc727ee7107fda0f5d2433ab1c5d407be9d123fad5c201355601d926d3923787be86a4aa5be0b8d5750171ad658f8e97798b5dcaed46345a9af70c441"},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if 0
|
||||||
// NOTE: These tests rely on CreateNewBlock doing its own self-validation!
|
// NOTE: These tests rely on CreateNewBlock doing its own self-validation!
|
||||||
BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
||||||
{
|
{
|
||||||
|
@ -442,5 +443,5 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
||||||
fCheckpointsEnabled = true;
|
fCheckpointsEnabled = true;
|
||||||
fCoinbaseEnforcedProtectionEnabled = true;
|
fCoinbaseEnforcedProtectionEnabled = true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
|
@ -581,7 +581,7 @@ TEST(wallet_tests, cached_witnesses_empty_chain) {
|
||||||
|
|
||||||
// Until #1302 is implemented, this should triggger an assertion
|
// Until #1302 is implemented, this should triggger an assertion
|
||||||
EXPECT_DEATH(wallet.DecrementNoteWitnesses(&index),
|
EXPECT_DEATH(wallet.DecrementNoteWitnesses(&index),
|
||||||
"Assertion( `| failed: \()nWitnessCacheSize > 0");
|
"nWitnessCacheSize > 0");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(wallet_tests, cached_witnesses_chain_tip) {
|
TEST(wallet_tests, cached_witnesses_chain_tip) {
|
||||||
|
|
Loading…
Reference in New Issue