-bip16 option (default: 1) to support / not support BIP 16. And bumped default BIP16 switchover date from Feb 15 to Mar 1

This commit is contained in:
Gavin Andresen 2012-02-06 15:48:00 -05:00
parent 0b9a05a2bc
commit 7bf8b7c25c
5 changed files with 34 additions and 15 deletions

View file

@ -474,19 +474,38 @@ bool AppInit2(int argc, char* argv[])
bool fTor = (fUseProxy && addrProxy.GetPort() == 9050);
if (fTor)
{
// Use SoftSetArg here so user can override any of these if they wish.
// Use SoftSetBoolArg here so user can override any of these if they wish.
// Note: the GetBoolArg() calls for all of these must happen later.
SoftSetArg("-nolisten", true);
SoftSetArg("-noirc", true);
SoftSetArg("-nodnsseed", true);
SoftSetArg("-noupnp", true);
SoftSetArg("-upnp", false);
SoftSetArg("-dns", false);
SoftSetBoolArg("-nolisten", true);
SoftSetBoolArg("-noirc", true);
SoftSetBoolArg("-nodnsseed", true);
SoftSetBoolArg("-noupnp", true);
SoftSetBoolArg("-upnp", false);
SoftSetBoolArg("-dns", false);
}
fAllowDNS = GetBoolArg("-dns");
fNoListen = GetBoolArg("-nolisten");
// This code can be removed once a super-majority of the network has upgraded.
if (GetBoolArg("-bip16", true))
{
if (fTestNet)
SoftSetArg("-paytoscripthashtime", "1329264000"); // Feb 15
else
SoftSetArg("-paytoscripthashtime", "1330578000"); // Mar 1
// Put "/P2SH/" in the coinbase so everybody can tell when
// a majority of miners support it
const char* pszP2SH = "/P2SH/";
COINBASE_FLAGS << std::vector<unsigned char>(pszP2SH, pszP2SH+strlen(pszP2SH));
}
else
{
const char* pszP2SH = "NOP2SH";
COINBASE_FLAGS << std::vector<unsigned char>(pszP2SH, pszP2SH+strlen(pszP2SH));
}
// Command-line args override in-wallet settings:
if (mapArgs.count("-upnp"))
fUseUPnP = GetBoolArg("-upnp");

View file

@ -52,6 +52,8 @@ multimap<uint256, CBlock*> mapOrphanBlocksByPrev;
map<uint256, CDataStream*> mapOrphanTransactions;
multimap<uint256, CDataStream*> mapOrphanTransactionsByPrev;
// Constant stuff for coinbase transactions we create:
CScript COINBASE_FLAGS;
const string strMessageMagic = "Bitcoin Signed Message:\n";
@ -1213,8 +1215,9 @@ bool CBlock::ConnectBlock(CTxDB& txdb, CBlockIndex* pindex)
// To avoid being on the short end of a block-chain split,
// don't do secondary validation of pay-to-script-hash transactions
// until blocks with timestamps after paytoscripthashtime:
int64 nEvalSwitchTime = GetArg("-paytoscripthashtime", 1329264000); // Feb 15, 2012
// until blocks with timestamps after paytoscripthashtime (see init.cpp for default).
// This code can be removed once a super-majority of the network has upgraded.
int64 nEvalSwitchTime = GetArg("-paytoscripthashtime", std::numeric_limits<int64_t>::max());
bool fStrictPayToScriptHash = (pindex->nTime >= nEvalSwitchTime);
//// issue here: it doesn't know the version

View file

@ -49,10 +49,7 @@ 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));
extern CScript COINBASE_FLAGS;

View file

@ -488,7 +488,7 @@ bool SoftSetArg(const std::string& strArg, const std::string& strValue)
return true;
}
bool SoftSetArg(const std::string& strArg, bool fValue)
bool SoftSetBoolArg(const std::string& strArg, bool fValue)
{
if (fValue)
return SoftSetArg(strArg, std::string("1"));

View file

@ -442,7 +442,7 @@ bool SoftSetArg(const std::string& strArg, const std::string& strValue);
* @param fValue Value (e.g. false)
* @return true if argument gets set, false if it already had a value
*/
bool SoftSetArg(const std::string& strArg, bool fValue);
bool SoftSetBoolArg(const std::string& strArg, bool fValue);