Browse Source

Policy: allow transaction version 2 relay policy.

This commit introduces a way to gracefully bump the default
transaction version in a two step process.
0.13
BtcDrak 8 years ago
parent
commit
12c89c9185
  1. 2
      src/policy/policy.cpp
  2. 7
      src/primitives/transaction.h

2
src/policy/policy.cpp

@ -55,7 +55,7 @@ bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType) @@ -55,7 +55,7 @@ bool IsStandard(const CScript& scriptPubKey, txnouttype& whichType)
bool IsStandardTx(const CTransaction& tx, std::string& reason)
{
if (tx.nVersion > CTransaction::CURRENT_VERSION || tx.nVersion < 1) {
if (tx.nVersion > CTransaction::MAX_STANDARD_VERSION || tx.nVersion < 1) {
reason = "version";
return false;
}

7
src/primitives/transaction.h

@ -206,8 +206,15 @@ private: @@ -206,8 +206,15 @@ private:
void UpdateHash() const;
public:
// Default transaction version.
static const int32_t CURRENT_VERSION=1;
// Changing the default transaction version requires a two step process: first
// adapting relay policy by bumping MAX_STANDARD_VERSION, and then later date
// bumping the default CURRENT_VERSION at which point both CURRENT_VERSION and
// MAX_STANDARD_VERSION will be equal.
static const int32_t MAX_STANDARD_VERSION=2;
// The local variables are made const to prevent unintended modification
// without updating the cached hash value. However, CTransaction is not
// actually immutable; deserialization and assignment are implemented,

Loading…
Cancel
Save