aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2012-01-19 14:14:41 -0500
committerGavin Andresen <gavinandresen@gmail.com>2012-01-19 14:14:41 -0500
commitaacefd279549c4b524def6e46f4a004bf8bb92bf (patch)
treed96dcaefbf2261ea72abd4896ebc6792fcd361ea
parent43cda5f325f53e8941efa7f712aed66e3fde172a (diff)
parentab845122587ed5bef403fcce1891a52501602a5a (diff)
downloadbitcoin-aacefd279549c4b524def6e46f4a004bf8bb92bf.tar.xz
Merge branch 'getmemorypool_blockflagstime' of https://github.com/forrestv/bitcoin
-rw-r--r--src/bitcoinrpc.cpp6
-rw-r--r--src/main.cpp7
-rw-r--r--src/main.h6
3 files changed, 13 insertions, 6 deletions
diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp
index db595cbf96..5ac58de06d 100644
--- a/src/bitcoinrpc.cpp
+++ b/src/bitcoinrpc.cpp
@@ -1871,7 +1871,10 @@ Value getmemorypool(const Array& params, bool fHelp)
" \"previousblockhash\" : hash of current highest block\n"
" \"transactions\" : contents of non-coinbase transactions that should be included in the next block\n"
" \"coinbasevalue\" : maximum allowable input to coinbase transaction, including the generation award and transaction fees\n"
+ " \"coinbaseflags\" : data that should be included in coinbase so support for new features can be judged\n"
" \"time\" : timestamp appropriate for next block\n"
+ " \"mintime\" : minimum timestamp appropriate for next block\n"
+ " \"curtime\" : current timestamp\n"
" \"bits\" : compressed target of next block\n"
"If [data] is specified, tries to solve the block and returns true if it was successful.");
@@ -1925,7 +1928,10 @@ Value getmemorypool(const Array& params, bool fHelp)
result.push_back(Pair("previousblockhash", pblock->hashPrevBlock.GetHex()));
result.push_back(Pair("transactions", transactions));
result.push_back(Pair("coinbasevalue", (int64_t)pblock->vtx[0].vout[0].nValue));
+ result.push_back(Pair("coinbaseflags", HexStr(COINBASE_FLAGS.begin(), COINBASE_FLAGS.end())));
result.push_back(Pair("time", (int64_t)pblock->nTime));
+ result.push_back(Pair("mintime", (int64_t)pindexPrev->GetMedianTimePast()+1));
+ result.push_back(Pair("curtime", (int64_t)GetAdjustedTime()));
union {
int32_t nBits;
diff --git a/src/main.cpp b/src/main.cpp
index 3c3f066042..891dbed980 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -3130,12 +3130,7 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int&
hashPrevBlock = pblock->hashPrevBlock;
}
++nExtraNonce;
- pblock->vtx[0].vin[0].scriptSig = CScript() << pblock->nTime << CBigNum(nExtraNonce);
-
- // Put "/P2SH/" in the coinbase so everybody can tell when
- // a majority of miners support it
- const char* pszP2SH = "/P2SH/";
- pblock->vtx[0].vin[0].scriptSig += CScript() << std::vector<unsigned char>(pszP2SH, pszP2SH+strlen(pszP2SH));
+ pblock->vtx[0].vin[0].scriptSig = (CScript() << pblock->nTime << CBigNum(nExtraNonce)) + COINBASE_FLAGS;
assert(pblock->vtx[0].vin[0].scriptSig.size() <= 100);
pblock->hashMerkleRoot = pblock->BuildMerkleTree();
diff --git a/src/main.h b/src/main.h
index 678c14cc39..be5f2f58a5 100644
--- a/src/main.h
+++ b/src/main.h
@@ -49,6 +49,12 @@ static const int fHaveUPnP = false;
#endif
+// Put "/P2SH/" in the coinbase so everybody can tell when
+// a majority of miners support it
+static const char* pszP2SH = "/P2SH/";
+static const CScript COINBASE_FLAGS = CScript() << std::vector<unsigned char>(pszP2SH, pszP2SH+strlen(pszP2SH));
+
+