Browse Source

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

tags/v0.15.1
Gavin Andresen 9 years ago
parent
commit
7bf8b7c25c
5 changed files with 34 additions and 15 deletions
  1. 26
    7
      src/init.cpp
  2. 5
    2
      src/main.cpp
  3. 1
    4
      src/main.h
  4. 1
    1
      src/util.cpp
  5. 1
    1
      src/util.h

+ 26
- 7
src/init.cpp 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");

+ 5
- 2
src/main.cpp 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

+ 1
- 4
src/main.h 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;




+ 1
- 1
src/util.cpp 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"));

+ 1
- 1
src/util.h 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);




Loading…
Cancel
Save