Merge branch 'getmininginfo' of https://github.com/luke-jr/bitcoin
This commit is contained in:
commit
f290a649f9
@ -347,10 +347,7 @@ Value getinfo(const Array& params, bool fHelp)
|
|||||||
obj.push_back(Pair("blocks", (int)nBestHeight));
|
obj.push_back(Pair("blocks", (int)nBestHeight));
|
||||||
obj.push_back(Pair("connections", (int)vNodes.size()));
|
obj.push_back(Pair("connections", (int)vNodes.size()));
|
||||||
obj.push_back(Pair("proxy", (fUseProxy ? addrProxy.ToStringIPPort() : string())));
|
obj.push_back(Pair("proxy", (fUseProxy ? addrProxy.ToStringIPPort() : string())));
|
||||||
obj.push_back(Pair("generate", (bool)fGenerateBitcoins));
|
|
||||||
obj.push_back(Pair("genproclimit", (int)(fLimitProcessors ? nLimitProcessors : -1)));
|
|
||||||
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
||||||
obj.push_back(Pair("hashespersec", gethashespersec(params, false)));
|
|
||||||
obj.push_back(Pair("testnet", fTestNet));
|
obj.push_back(Pair("testnet", fTestNet));
|
||||||
obj.push_back(Pair("keypoololdest", (boost::int64_t)pwalletMain->GetOldestKeyPoolTime()));
|
obj.push_back(Pair("keypoololdest", (boost::int64_t)pwalletMain->GetOldestKeyPoolTime()));
|
||||||
obj.push_back(Pair("keypoolsize", pwalletMain->GetKeyPoolSize()));
|
obj.push_back(Pair("keypoolsize", pwalletMain->GetKeyPoolSize()));
|
||||||
@ -362,6 +359,28 @@ Value getinfo(const Array& params, bool fHelp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Value getmininginfo(const Array& params, bool fHelp)
|
||||||
|
{
|
||||||
|
if (fHelp || params.size() != 0)
|
||||||
|
throw runtime_error(
|
||||||
|
"getmininginfo\n"
|
||||||
|
"Returns an object containing mining-related information.");
|
||||||
|
|
||||||
|
Object obj;
|
||||||
|
obj.push_back(Pair("blocks", (int)nBestHeight));
|
||||||
|
obj.push_back(Pair("currentblocksize",(uint64_t)nLastBlockSize));
|
||||||
|
obj.push_back(Pair("currentblocktx",(uint64_t)nLastBlockTx));
|
||||||
|
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
||||||
|
obj.push_back(Pair("errors", GetWarnings("statusbar")));
|
||||||
|
obj.push_back(Pair("generate", (bool)fGenerateBitcoins));
|
||||||
|
obj.push_back(Pair("genproclimit", (int)(fLimitProcessors ? nLimitProcessors : -1)));
|
||||||
|
obj.push_back(Pair("hashespersec", gethashespersec(params, false)));
|
||||||
|
obj.push_back(Pair("pooledtx", (uint64_t)nPooledTx));
|
||||||
|
obj.push_back(Pair("testnet", fTestNet));
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Value getnewaddress(const Array& params, bool fHelp)
|
Value getnewaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (fHelp || params.size() > 1)
|
if (fHelp || params.size() > 1)
|
||||||
@ -1986,6 +2005,7 @@ pair<string, rpcfn_type> pCallTable[] =
|
|||||||
make_pair("setgenerate", &setgenerate),
|
make_pair("setgenerate", &setgenerate),
|
||||||
make_pair("gethashespersec", &gethashespersec),
|
make_pair("gethashespersec", &gethashespersec),
|
||||||
make_pair("getinfo", &getinfo),
|
make_pair("getinfo", &getinfo),
|
||||||
|
make_pair("getmininginfo", &getmininginfo),
|
||||||
make_pair("getnewaddress", &getnewaddress),
|
make_pair("getnewaddress", &getnewaddress),
|
||||||
make_pair("getaccountaddress", &getaccountaddress),
|
make_pair("getaccountaddress", &getaccountaddress),
|
||||||
make_pair("setaccount", &setaccount),
|
make_pair("setaccount", &setaccount),
|
||||||
@ -2036,6 +2056,7 @@ string pAllowInSafeMode[] =
|
|||||||
"setgenerate",
|
"setgenerate",
|
||||||
"gethashespersec",
|
"gethashespersec",
|
||||||
"getinfo",
|
"getinfo",
|
||||||
|
"getmininginfo",
|
||||||
"getnewaddress",
|
"getnewaddress",
|
||||||
"getaccountaddress",
|
"getaccountaddress",
|
||||||
"getaccount",
|
"getaccount",
|
||||||
|
15
src/main.cpp
15
src/main.cpp
@ -559,8 +559,11 @@ bool CTransaction::AcceptToMemoryPool(bool fCheckInputs, bool* pfMissingInputs)
|
|||||||
return AcceptToMemoryPool(txdb, fCheckInputs, pfMissingInputs);
|
return AcceptToMemoryPool(txdb, fCheckInputs, pfMissingInputs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64 nPooledTx = 0;
|
||||||
|
|
||||||
bool CTransaction::AddToMemoryPoolUnchecked()
|
bool CTransaction::AddToMemoryPoolUnchecked()
|
||||||
{
|
{
|
||||||
|
printf("AcceptToMemoryPoolUnchecked(): size %lu\n", mapTransactions.size());
|
||||||
// Add to memory pool without checking anything. Don't call this directly,
|
// Add to memory pool without checking anything. Don't call this directly,
|
||||||
// call AcceptToMemoryPool to properly check the transaction first.
|
// call AcceptToMemoryPool to properly check the transaction first.
|
||||||
CRITICAL_BLOCK(cs_mapTransactions)
|
CRITICAL_BLOCK(cs_mapTransactions)
|
||||||
@ -570,6 +573,7 @@ bool CTransaction::AddToMemoryPoolUnchecked()
|
|||||||
for (int i = 0; i < vin.size(); i++)
|
for (int i = 0; i < vin.size(); i++)
|
||||||
mapNextTx[vin[i].prevout] = CInPoint(&mapTransactions[hash], i);
|
mapNextTx[vin[i].prevout] = CInPoint(&mapTransactions[hash], i);
|
||||||
nTransactionsUpdated++;
|
nTransactionsUpdated++;
|
||||||
|
++nPooledTx;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -584,6 +588,7 @@ bool CTransaction::RemoveFromMemoryPool()
|
|||||||
mapNextTx.erase(txin.prevout);
|
mapNextTx.erase(txin.prevout);
|
||||||
mapTransactions.erase(GetHash());
|
mapTransactions.erase(GetHash());
|
||||||
nTransactionsUpdated++;
|
nTransactionsUpdated++;
|
||||||
|
--nPooledTx;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -2887,6 +2892,9 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
uint64 nLastBlockTx = 0;
|
||||||
|
uint64 nLastBlockSize = 0;
|
||||||
|
|
||||||
CBlock* CreateNewBlock(CReserveKey& reservekey)
|
CBlock* CreateNewBlock(CReserveKey& reservekey)
|
||||||
{
|
{
|
||||||
CBlockIndex* pindexPrev = pindexBest;
|
CBlockIndex* pindexPrev = pindexBest;
|
||||||
@ -2974,6 +2982,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
|
|||||||
// Collect transactions into block
|
// Collect transactions into block
|
||||||
map<uint256, CTxIndex> mapTestPool;
|
map<uint256, CTxIndex> mapTestPool;
|
||||||
uint64 nBlockSize = 1000;
|
uint64 nBlockSize = 1000;
|
||||||
|
uint64 nBlockTx = 0;
|
||||||
int nBlockSigOps = 100;
|
int nBlockSigOps = 100;
|
||||||
while (!mapPriority.empty())
|
while (!mapPriority.empty())
|
||||||
{
|
{
|
||||||
@ -3008,6 +3017,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
|
|||||||
pblock->vtx.push_back(tx);
|
pblock->vtx.push_back(tx);
|
||||||
nBlockSize += nTxSize;
|
nBlockSize += nTxSize;
|
||||||
nBlockSigOps += nTxSigOps;
|
nBlockSigOps += nTxSigOps;
|
||||||
|
++nBlockTx;
|
||||||
|
|
||||||
// Add transactions that depend on this one to the priority queue
|
// Add transactions that depend on this one to the priority queue
|
||||||
uint256 hash = tx.GetHash();
|
uint256 hash = tx.GetHash();
|
||||||
@ -3024,6 +3034,11 @@ CBlock* CreateNewBlock(CReserveKey& reservekey)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nLastBlockTx = nBlockTx;
|
||||||
|
nLastBlockSize = nBlockSize;
|
||||||
|
printf("CreateNewBlock(): total size %lu\n", nBlockSize);
|
||||||
|
|
||||||
}
|
}
|
||||||
pblock->vtx[0].vout[0].nValue = GetBlockValue(pindexPrev->nHeight+1, nFees);
|
pblock->vtx[0].vout[0].nValue = GetBlockValue(pindexPrev->nHeight+1, nFees);
|
||||||
|
|
||||||
|
@ -62,7 +62,10 @@ extern CBigNum bnBestChainWork;
|
|||||||
extern CBigNum bnBestInvalidWork;
|
extern CBigNum bnBestInvalidWork;
|
||||||
extern uint256 hashBestChain;
|
extern uint256 hashBestChain;
|
||||||
extern CBlockIndex* pindexBest;
|
extern CBlockIndex* pindexBest;
|
||||||
|
extern uint64 nPooledTx;
|
||||||
extern unsigned int nTransactionsUpdated;
|
extern unsigned int nTransactionsUpdated;
|
||||||
|
extern uint64 nLastBlockTx;
|
||||||
|
extern uint64 nLastBlockSize;
|
||||||
extern double dHashesPerSec;
|
extern double dHashesPerSec;
|
||||||
extern int64 nHPSTimerStart;
|
extern int64 nHPSTimerStart;
|
||||||
extern int64 nTimeBestReceived;
|
extern int64 nTimeBestReceived;
|
||||||
|
Loading…
Reference in New Issue
Block a user