Merge pull request #6825
af6edac*: alias -h for --help (Daniel Cousens)131d7f9Change URLs to https in debian/control (Matt Corallo)7ce2c91Update debian/changelog and slight tweak to debian/control (Matt Corallo)4fbfebeCorrect spelling mistakes in doc folder (Mitchell Cash)e42bf16Clarification of unit test build instructions. (Eric Lombrozo)54f9deeUpdate bluematt-key, the old one is long-since revoked (Matt Corallo)bfc6154[Trivial] Fixed typo when referring to a previous section in depends/README.md [skip ci] (Chris Kleeschulte)9e45157build: disable -Wself-assign (Wladimir J. van der Laan)33d6825Bugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) (Luke Dashjr)87a797abuild: Remove dependency of bitcoin-cli on secp256k1 (Wladimir J. van der Laan)a33cd5b[trivial] Fix rpc message "help generate" (MarcoFalke)6fd0019Drop "with minimal dependencies" from description (Zak Wilcox)2394f4dSplit bitcoin-tx into its own package (Zak Wilcox)1e672aeInclude bitcoin-tx binary on Debian/Ubuntu (Zak Wilcox)b3eaa30[Qt] Raise debug window when requested (MarcoFalke)01878c9Fix locking in GetTransaction. (Alex Morcos)9b9acc2Fix spelling of Qt (Diego Viola)
This commit is contained in:
@@ -343,8 +343,7 @@ endif
|
||||
|
||||
bitcoin_cli_LDADD = \
|
||||
$(LIBBITCOIN_CLI) \
|
||||
$(LIBBITCOIN_UTIL) \
|
||||
$(LIBSECP256K1)
|
||||
$(LIBBITCOIN_UTIL)
|
||||
|
||||
bitcoin_cli_LDADD += $(BOOST_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS)
|
||||
#
|
||||
|
||||
@@ -62,7 +62,7 @@ static bool AppInitRPC(int argc, char* argv[])
|
||||
// Parameters
|
||||
//
|
||||
ParseParameters(argc, argv);
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) {
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version")) {
|
||||
std::string strUsage = _("Bitcoin Core RPC client version") + " " + FormatFullVersion() + "\n";
|
||||
if (!mapArgs.count("-version")) {
|
||||
strUsage += "\n" + _("Usage:") + "\n" +
|
||||
|
||||
@@ -41,7 +41,7 @@ static bool AppInitRawTx(int argc, char* argv[])
|
||||
|
||||
fCreateBlank = GetBoolArg("-create", false);
|
||||
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help"))
|
||||
if (argc<2 || mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help"))
|
||||
{
|
||||
// First part of help message is specific to this utility
|
||||
std::string strUsage = _("Bitcoin Core bitcoin-tx utility version") + " " + FormatFullVersion() + "\n\n" +
|
||||
|
||||
@@ -67,7 +67,7 @@ bool AppInit(int argc, char* argv[])
|
||||
ParseParameters(argc, argv);
|
||||
|
||||
// Process help and version before taking care about datadir
|
||||
if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
{
|
||||
std::string strUsage = _("Bitcoin Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n";
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ public:
|
||||
vAlertPubKey = ParseHex("04fc9702847840aaf195de8442ebecedf5b095cdbb9bc716bda9110971b28a49e0ead8564ff0db22209e0374782c093bb899692d524e9d6a6956e7c5ecbcd68284");
|
||||
nDefaultPort = 8333;
|
||||
nMinerThreads = 0;
|
||||
nMaxTipAge = 24 * 60 * 60;
|
||||
nPruneAfterHeight = 100000;
|
||||
|
||||
/**
|
||||
@@ -147,6 +148,7 @@ public:
|
||||
vAlertPubKey = ParseHex("04302390343f91cc401d56d68b123028bf52e5fca1939df127f63c6467cdf9c8e2c14b61104cf817d0b780da337893ecc4aaff1309e536162dabbdb45200ca2b0a");
|
||||
nDefaultPort = 18333;
|
||||
nMinerThreads = 0;
|
||||
nMaxTipAge = 0x7fffffff;
|
||||
nPruneAfterHeight = 1000;
|
||||
|
||||
//! Modify the testnet genesis block so the timestamp is valid for a later start.
|
||||
@@ -206,6 +208,7 @@ public:
|
||||
pchMessageStart[2] = 0xb5;
|
||||
pchMessageStart[3] = 0xda;
|
||||
nMinerThreads = 1;
|
||||
nMaxTipAge = 24 * 60 * 60;
|
||||
genesis.nTime = 1296688602;
|
||||
genesis.nBits = 0x207fffff;
|
||||
genesis.nNonce = 2;
|
||||
|
||||
@@ -60,6 +60,7 @@ public:
|
||||
bool DefaultConsistencyChecks() const { return fDefaultConsistencyChecks; }
|
||||
/** Policy: Filter transactions that do not match well-defined patterns */
|
||||
bool RequireStandard() const { return fRequireStandard; }
|
||||
int64_t MaxTipAge() const { return nMaxTipAge; }
|
||||
int64_t PruneAfterHeight() const { return nPruneAfterHeight; }
|
||||
/** Make miner stop after a block is found. In RPC, don't return until nGenProcLimit blocks are generated */
|
||||
bool MineBlocksOnDemand() const { return fMineBlocksOnDemand; }
|
||||
@@ -80,6 +81,7 @@ protected:
|
||||
std::vector<unsigned char> vAlertPubKey;
|
||||
int nDefaultPort;
|
||||
int nMinerThreads;
|
||||
long nMaxTipAge;
|
||||
uint64_t nPruneAfterHeight;
|
||||
std::vector<CDNSSeedData> vSeeds;
|
||||
std::vector<unsigned char> base58Prefixes[MAX_BASE58_TYPES];
|
||||
|
||||
76
src/main.cpp
76
src/main.cpp
@@ -1116,47 +1116,45 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
||||
bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock, bool fAllowSlow)
|
||||
{
|
||||
CBlockIndex *pindexSlow = NULL;
|
||||
|
||||
LOCK(cs_main);
|
||||
|
||||
if (mempool.lookup(hash, txOut))
|
||||
{
|
||||
LOCK(cs_main);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (fTxIndex) {
|
||||
CDiskTxPos postx;
|
||||
if (pblocktree->ReadTxIndex(hash, postx)) {
|
||||
CAutoFile file(OpenBlockFile(postx, true), SER_DISK, CLIENT_VERSION);
|
||||
if (file.IsNull())
|
||||
return error("%s: OpenBlockFile failed", __func__);
|
||||
CBlockHeader header;
|
||||
try {
|
||||
file >> header;
|
||||
fseek(file.Get(), postx.nTxOffset, SEEK_CUR);
|
||||
file >> txOut;
|
||||
} catch (const std::exception& e) {
|
||||
return error("%s: Deserialize or I/O error - %s", __func__, e.what());
|
||||
}
|
||||
hashBlock = header.GetHash();
|
||||
if (txOut.GetHash() != hash)
|
||||
return error("%s: txid mismatch", __func__);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (fAllowSlow) { // use coin database to locate block that contains transaction, and scan it
|
||||
int nHeight = -1;
|
||||
{
|
||||
if (mempool.lookup(hash, txOut))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (fTxIndex) {
|
||||
CDiskTxPos postx;
|
||||
if (pblocktree->ReadTxIndex(hash, postx)) {
|
||||
CAutoFile file(OpenBlockFile(postx, true), SER_DISK, CLIENT_VERSION);
|
||||
if (file.IsNull())
|
||||
return error("%s: OpenBlockFile failed", __func__);
|
||||
CBlockHeader header;
|
||||
try {
|
||||
file >> header;
|
||||
fseek(file.Get(), postx.nTxOffset, SEEK_CUR);
|
||||
file >> txOut;
|
||||
} catch (const std::exception& e) {
|
||||
return error("%s: Deserialize or I/O error - %s", __func__, e.what());
|
||||
}
|
||||
hashBlock = header.GetHash();
|
||||
if (txOut.GetHash() != hash)
|
||||
return error("%s: txid mismatch", __func__);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (fAllowSlow) { // use coin database to locate block that contains transaction, and scan it
|
||||
int nHeight = -1;
|
||||
{
|
||||
CCoinsViewCache &view = *pcoinsTip;
|
||||
const CCoins* coins = view.AccessCoins(hash);
|
||||
if (coins)
|
||||
nHeight = coins->nHeight;
|
||||
}
|
||||
if (nHeight > 0)
|
||||
pindexSlow = chainActive[nHeight];
|
||||
CCoinsViewCache &view = *pcoinsTip;
|
||||
const CCoins* coins = view.AccessCoins(hash);
|
||||
if (coins)
|
||||
nHeight = coins->nHeight;
|
||||
}
|
||||
if (nHeight > 0)
|
||||
pindexSlow = chainActive[nHeight];
|
||||
}
|
||||
|
||||
if (pindexSlow) {
|
||||
@@ -1265,7 +1263,7 @@ bool IsInitialBlockDownload()
|
||||
if (lockIBDState)
|
||||
return false;
|
||||
bool state = (chainActive.Height() < pindexBestHeader->nHeight - 24 * 6 ||
|
||||
pindexBestHeader->GetBlockTime() < GetTime() - 24 * 60 * 60);
|
||||
pindexBestHeader->GetBlockTime() < GetTime() - chainParams.MaxTipAge());
|
||||
if (!state)
|
||||
lockIBDState = true;
|
||||
return state;
|
||||
|
||||
@@ -548,7 +548,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// Show help message immediately after parsing command-line options (for "-lang") and setting locale,
|
||||
// but before showing splash screen.
|
||||
if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||
{
|
||||
HelpMessageDialog help(NULL, mapArgs.count("-version"));
|
||||
help.showOrPrint();
|
||||
|
||||
@@ -212,11 +212,6 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
|
||||
statusBar()->addWidget(progressBar);
|
||||
statusBar()->addPermanentWidget(frameBlocks);
|
||||
|
||||
connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show()));
|
||||
|
||||
// prevents an open debug window from becoming stuck/unusable on client shutdown
|
||||
connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide()));
|
||||
|
||||
// Install event filter to be able to catch status tip events (QEvent::StatusTip)
|
||||
this->installEventFilter(this);
|
||||
|
||||
@@ -349,6 +344,10 @@ void BitcoinGUI::createActions()
|
||||
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
|
||||
connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden()));
|
||||
connect(showHelpMessageAction, SIGNAL(triggered()), this, SLOT(showHelpMessageClicked()));
|
||||
connect(openRPCConsoleAction, SIGNAL(triggered()), this, SLOT(showDebugWindow()));
|
||||
// prevents an open debug window from becoming stuck/unusable on client shutdown
|
||||
connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide()));
|
||||
|
||||
#ifdef ENABLE_WALLET
|
||||
if(walletFrame)
|
||||
{
|
||||
@@ -587,6 +586,14 @@ void BitcoinGUI::aboutClicked()
|
||||
dlg.exec();
|
||||
}
|
||||
|
||||
void BitcoinGUI::showDebugWindow()
|
||||
{
|
||||
rpcConsole->showNormal();
|
||||
rpcConsole->show();
|
||||
rpcConsole->raise();
|
||||
rpcConsole->activateWindow();
|
||||
}
|
||||
|
||||
void BitcoinGUI::showHelpMessageClicked()
|
||||
{
|
||||
HelpMessageDialog *help = new HelpMessageDialog(this, false);
|
||||
|
||||
@@ -191,6 +191,8 @@ private Q_SLOTS:
|
||||
void optionsClicked();
|
||||
/** Show about dialog */
|
||||
void aboutClicked();
|
||||
/** Show debug window */
|
||||
void showDebugWindow();
|
||||
/** Show help message dialog */
|
||||
void showHelpMessageClicked();
|
||||
#ifndef Q_OS_MAC
|
||||
|
||||
@@ -391,7 +391,7 @@ void SubstituteFonts(const QString& language)
|
||||
{
|
||||
#if defined(Q_OS_MAC)
|
||||
// Background:
|
||||
// OSX's default font changed in 10.9 and QT is unable to find it with its
|
||||
// OSX's default font changed in 10.9 and Qt is unable to find it with its
|
||||
// usual fallback methods when building against the 10.7 sdk or lower.
|
||||
// The 10.8 SDK added a function to let it find the correct fallback font.
|
||||
// If this fallback is not properly loaded, some characters may fail to
|
||||
|
||||
@@ -121,6 +121,7 @@ Value generate(const Array& params, bool fHelp)
|
||||
"generate numblocks\n"
|
||||
"\nMine blocks immediately (before the RPC call returns)\n"
|
||||
"\nNote: this function can only be used on the regtest network\n"
|
||||
"\nArguments:\n"
|
||||
"1. numblocks (numeric) How many blocks are generated immediately.\n"
|
||||
"\nResult\n"
|
||||
"[ blockhashes ] (array) hashes of blocks generated\n"
|
||||
|
||||
@@ -16,6 +16,8 @@ their tests in a test suite called "<source_filename>_tests". For an
|
||||
examples of this pattern, examine uint160_tests.cpp and
|
||||
uint256_tests.cpp.
|
||||
|
||||
Add the source files to /src/Makefile.test.include to add them to the build.
|
||||
|
||||
For further reading, I found the following website to be helpful in
|
||||
explaining how the boost unit test framework works:
|
||||
[http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/](http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/).
|
||||
Reference in New Issue
Block a user