mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Merge pull request #2828 from codablock/pr_v13_backports
[0.13.x] Backports from develop
This commit is contained in:
commit
3db4e3111d
@ -41,7 +41,7 @@ elif [ "$BUILD_TARGET" = "win32" ]; then
|
||||
export DPKG_ADD_ARCH="i386"
|
||||
export DEP_OPTS="NO_QT=1"
|
||||
export PACKAGES="python3 nsis g++-mingw-w64-i686 wine-stable wine32 bc"
|
||||
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports"
|
||||
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --disable-miner"
|
||||
export DIRECT_WINE_EXEC_TESTS=true
|
||||
export RUN_TESTS=true
|
||||
elif [ "$BUILD_TARGET" = "win64" ]; then
|
||||
@ -49,7 +49,7 @@ elif [ "$BUILD_TARGET" = "win64" ]; then
|
||||
export DPKG_ADD_ARCH="i386"
|
||||
export DEP_OPTS="NO_QT=1"
|
||||
export PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-stable wine64 bc"
|
||||
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports"
|
||||
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --disable-miner"
|
||||
export DIRECT_WINE_EXEC_TESTS=true
|
||||
export RUN_TESTS=true
|
||||
elif [ "$BUILD_TARGET" = "linux32" ]; then
|
||||
@ -82,7 +82,7 @@ elif [ "$BUILD_TARGET" = "linux64_release" ]; then
|
||||
elif [ "$BUILD_TARGET" = "mac" ]; then
|
||||
export HOST=x86_64-apple-darwin11
|
||||
export PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools"
|
||||
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports"
|
||||
export BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --disable-miner"
|
||||
export OSX_SDK=10.11
|
||||
export GOAL="deploy"
|
||||
fi
|
||||
|
12
configure.ac
12
configure.ac
@ -192,6 +192,17 @@ AC_ARG_ENABLE([debug],
|
||||
[enable_debug=$enableval],
|
||||
[enable_debug=no])
|
||||
|
||||
# Enable in-wallet miner
|
||||
AC_ARG_ENABLE([miner],
|
||||
[AS_HELP_STRING([--enable-miner],
|
||||
[enable in-wallet miner (default is yes)])],
|
||||
[enable_miner=$enableval],
|
||||
[enable_miner=yes])
|
||||
AM_CONDITIONAL([ENABLE_MINER], [test x$enable_miner = xyes])
|
||||
if test "x$enable_miner" = xyes; then
|
||||
AC_DEFINE(ENABLE_MINER, 1, [Define this symbol if in-wallet miner should be enabled])
|
||||
fi
|
||||
|
||||
# Turn warnings into errors
|
||||
AC_ARG_ENABLE([werror],
|
||||
[AS_HELP_STRING([--enable-werror],
|
||||
@ -1181,6 +1192,7 @@ echo " with test = $use_tests"
|
||||
echo " with bench = $use_bench"
|
||||
echo " with upnp = $use_upnp"
|
||||
echo " debug enabled = $enable_debug"
|
||||
echo " miner enabled = $enable_miner"
|
||||
echo " werror = $enable_werror"
|
||||
echo
|
||||
echo " target os = $TARGET_OS"
|
||||
|
@ -37,7 +37,7 @@ files:
|
||||
script: |
|
||||
WRAP_DIR=$HOME/wrapped
|
||||
HOSTS="x86_64-apple-darwin11"
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests GENISOIMAGE=$WRAP_DIR/genisoimage"
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-miner --disable-bench --disable-gui-tests GENISOIMAGE=$WRAP_DIR/genisoimage"
|
||||
FAKETIME_HOST_PROGS=""
|
||||
FAKETIME_PROGS="ar ranlib date dmg genisoimage"
|
||||
|
||||
|
@ -31,7 +31,7 @@ files: []
|
||||
script: |
|
||||
WRAP_DIR=$HOME/wrapped
|
||||
HOSTS="i686-w64-mingw32 x86_64-w64-mingw32"
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests"
|
||||
CONFIGFLAGS="--enable-reduce-exports --disable-miner --disable-bench --disable-gui-tests"
|
||||
FAKETIME_HOST_PROGS="ar ranlib nm windres strip objcopy"
|
||||
FAKETIME_PROGS="date makensis zip"
|
||||
HOST_CFLAGS="-O2 -g"
|
||||
|
@ -158,6 +158,21 @@ bool CGovernanceObject::ProcessVote(CNode* pfrom,
|
||||
LogPrint("gobject", "%s\n", ostr.str());
|
||||
exception = CGovernanceException(ostr.str(), GOVERNANCE_EXCEPTION_NONE);
|
||||
return false;
|
||||
} else if (vote.GetTimestamp() == voteInstanceRef.nCreationTime) {
|
||||
// Someone is doing smth fishy, there can be no two votes from the same masternode
|
||||
// with the same timestamp for the same object and signal and yet different hash/outcome.
|
||||
std::ostringstream ostr;
|
||||
ostr << "CGovernanceObject::ProcessVote -- Invalid vote, same timestamp for the different outcome";
|
||||
if (vote.GetOutcome() < voteInstanceRef.eOutcome) {
|
||||
// This is an arbitrary comparison, we have to agree on some way
|
||||
// to pick the "winning" vote.
|
||||
ostr << ", rejected";
|
||||
LogPrint("gobject", "%s\n", ostr.str());
|
||||
exception = CGovernanceException(ostr.str(), GOVERNANCE_EXCEPTION_NONE);
|
||||
return false;
|
||||
}
|
||||
ostr << ", accepted";
|
||||
LogPrint("gobject", "%s\n", ostr.str());
|
||||
}
|
||||
|
||||
int64_t nNow = GetAdjustedTime();
|
||||
@ -172,9 +187,9 @@ bool CGovernanceObject::ProcessVote(CNode* pfrom,
|
||||
<< ", time delta = " << nTimeDelta;
|
||||
LogPrint("gobject", "%s\n", ostr.str());
|
||||
exception = CGovernanceException(ostr.str(), GOVERNANCE_EXCEPTION_TEMPORARY_ERROR);
|
||||
nVoteTimeUpdate = nNow;
|
||||
return false;
|
||||
}
|
||||
nVoteTimeUpdate = nNow;
|
||||
}
|
||||
|
||||
bool onlyVotingKeyAllowed = nObjectType == GOVERNANCE_OBJECT_PROPOSAL && vote.GetSignal() == VOTE_SIGNAL_FUNDING;
|
||||
|
@ -31,12 +31,10 @@ CMerkleBlock::CMerkleBlock(const CBlock& block, CBloomFilter& filter)
|
||||
for (unsigned int i = 0; i < block.vtx.size(); i++)
|
||||
{
|
||||
const auto& tx = *block.vtx[i];
|
||||
if (tx.nVersion == 3 && !allowedTxTypes.count(tx.nType)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const uint256& hash = tx.GetHash();
|
||||
if (filter.IsRelevantAndUpdate(tx))
|
||||
bool isAllowedType = tx.nVersion != 3 || allowedTxTypes.count(tx.nType) != 0;
|
||||
|
||||
if (isAllowedType && filter.IsRelevantAndUpdate(tx))
|
||||
{
|
||||
vMatch.push_back(true);
|
||||
vMatchedTxn.push_back(std::make_pair(i, hash));
|
||||
|
@ -30,10 +30,12 @@ public:
|
||||
static const CRPCConvertParam vRPCConvertParams[] =
|
||||
{
|
||||
{ "setmocktime", 0, "timestamp" },
|
||||
#if ENABLE_MINER
|
||||
{ "generate", 0, "nblocks" },
|
||||
{ "generate", 1, "maxtries" },
|
||||
{ "generatetoaddress", 0, "nblocks" },
|
||||
{ "generatetoaddress", 2, "maxtries" },
|
||||
#endif // ENABLE_MINER
|
||||
{ "getnetworkhashps", 0, "nblocks" },
|
||||
{ "getnetworkhashps", 1, "height" },
|
||||
{ "sendtoaddress", 1, "amount" },
|
||||
|
@ -104,6 +104,7 @@ UniValue getnetworkhashps(const JSONRPCRequest& request)
|
||||
return GetNetworkHashPS(request.params.size() > 0 ? request.params[0].get_int() : 120, request.params.size() > 1 ? request.params[1].get_int() : -1);
|
||||
}
|
||||
|
||||
#if ENABLE_MINER
|
||||
UniValue generateBlocks(boost::shared_ptr<CReserveScript> coinbaseScript, int nGenerate, uint64_t nMaxTries, bool keepScript)
|
||||
{
|
||||
static const int nInnerLoopCount = 0x10000;
|
||||
@ -222,6 +223,7 @@ UniValue generatetoaddress(const JSONRPCRequest& request)
|
||||
|
||||
return generateBlocks(coinbaseScript, nGenerate, nMaxTries, false);
|
||||
}
|
||||
#endif // ENABLE_MINER
|
||||
|
||||
UniValue getmininginfo(const JSONRPCRequest& request)
|
||||
{
|
||||
@ -971,9 +973,10 @@ static const CRPCCommand commands[] =
|
||||
{ "mining", "getblocktemplate", &getblocktemplate, true, {"template_request"} },
|
||||
{ "mining", "submitblock", &submitblock, true, {"hexdata","parameters"} },
|
||||
|
||||
#if ENABLE_MINER
|
||||
{ "generating", "generate", &generate, true, {"nblocks","maxtries"} },
|
||||
{ "generating", "generatetoaddress", &generatetoaddress, true, {"nblocks","address","maxtries"} },
|
||||
|
||||
#endif // ENABLE_MINER
|
||||
{ "util", "estimatefee", &estimatefee, true, {"nblocks"} },
|
||||
{ "util", "estimatepriority", &estimatepriority, true, {"nblocks"} },
|
||||
{ "util", "estimatesmartfee", &estimatesmartfee, true, {"nblocks"} },
|
||||
|
@ -762,7 +762,7 @@ UniValue protx_revoke(const JSONRPCRequest& request)
|
||||
|
||||
if (request.params.size() > 3) {
|
||||
int32_t nReason = ParseInt32V(request.params[3], "reason");
|
||||
if (nReason < 0 || nReason >= CProUpRevTx::REASON_LAST) {
|
||||
if (nReason < 0 || nReason > CProUpRevTx::REASON_LAST) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("invalid reason %d, must be between 0 and %d", nReason, CProUpRevTx::REASON_LAST));
|
||||
}
|
||||
ptx.nReason = (uint16_t)nReason;
|
||||
|
@ -320,6 +320,7 @@ BOOST_AUTO_TEST_CASE(rpc_ban)
|
||||
BOOST_CHECK_EQUAL(adr.get_str(), "2001:4d48:ac57:400:cacf:e9ff:fe1d:9c63/128");
|
||||
}
|
||||
|
||||
#if ENABLE_MINER
|
||||
BOOST_AUTO_TEST_CASE(rpc_convert_values_generatetoaddress)
|
||||
{
|
||||
UniValue result;
|
||||
@ -342,6 +343,7 @@ BOOST_AUTO_TEST_CASE(rpc_convert_values_generatetoaddress)
|
||||
BOOST_CHECK_EQUAL(result[1].get_str(), "yTG8jLL3MvteKXgbEcHyaN7JvTPCejQpSh");
|
||||
BOOST_CHECK_EQUAL(result[2].get_int(), 9);
|
||||
}
|
||||
#endif // ENABLE_MINER
|
||||
|
||||
BOOST_AUTO_TEST_CASE(rpc_sentinel_ping)
|
||||
{
|
||||
|
@ -4504,6 +4504,11 @@ static const uint64_t MEMPOOL_DUMP_VERSION = 1;
|
||||
|
||||
bool LoadMempool(void)
|
||||
{
|
||||
if (GetBoolArg("-zapwallettxes", false)) {
|
||||
LogPrintf("Skipping mempool.dat because of zapwallettxes\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
int64_t nExpiryTimeout = GetArg("-mempoolexpiry", DEFAULT_MEMPOOL_EXPIRY) * 60 * 60;
|
||||
FILE* filestr = fopen((GetDataDir() / "mempool.dat").string().c_str(), "rb");
|
||||
CAutoFile file(filestr, SER_DISK, CLIENT_VERSION);
|
||||
|
Loading…
Reference in New Issue
Block a user