aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dashjr <luke-jr+git@utopios.org>2014-10-10 23:55:14 +0000
committerLuke Dashjr <luke-jr+git@utopios.org>2014-10-27 09:41:57 +0000
commit2aa632921efd861a7c9968e8faf6c73cb3d62c4a (patch)
tree16dcffd8471a67df2fcd537f885af2c3797ce5e1
parent2ffdf21ce39fc3133fc028fb51d49cd7479eaa43 (diff)
downloadbitcoin-2aa632921efd861a7c9968e8faf6c73cb3d62c4a.tar.xz
Enable customising node policy for datacarrier data size with a -datacarriersize option
-rw-r--r--src/init.cpp3
-rw-r--r--src/script/standard.cpp6
-rw-r--r--src/script/standard.h1
3 files changed, 8 insertions, 2 deletions
diff --git a/src/init.cpp b/src/init.cpp
index 70ac5190d3..a33452aa30 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -17,6 +17,7 @@
#include "miner.h"
#include "net.h"
#include "rpcserver.h"
+#include "script/standard.h"
#include "txdb.h"
#include "ui_interface.h"
#include "util.h"
@@ -345,6 +346,7 @@ std::string HelpMessage(HelpMessageMode mode)
strUsage += "\n" + _("Node relay options:") + "\n";
strUsage += " -datacarrier " + strprintf(_("Relay and mine data carrier transactions (default: %u)"), 1) + "\n";
+ strUsage += " -datacarriersize " + strprintf(_("Maximum size of data in data carrier transactions we relay and mine (default: %u)"), MAX_OP_RETURN_RELAY) + "\n";
strUsage += "\n" + _("Block creation options:") + "\n";
strUsage += " -blockminsize=<n> " + strprintf(_("Set minimum block size in bytes (default: %u)"), 0) + "\n";
@@ -702,6 +704,7 @@ bool AppInit2(boost::thread_group& threadGroup)
#endif // ENABLE_WALLET
fIsBareMultisigStd = GetArg("-permitbaremultisig", true) != 0;
+ nMaxDatacarrierBytes = GetArg("-datacarriersize", nMaxDatacarrierBytes);
// ********************************************************* Step 4: application initialization: dir lock, daemonize, pidfile, debug log
diff --git a/src/script/standard.cpp b/src/script/standard.cpp
index 05938961bc..7356e541a6 100644
--- a/src/script/standard.cpp
+++ b/src/script/standard.cpp
@@ -15,6 +15,8 @@ using namespace std;
typedef vector<unsigned char> valtype;
+unsigned nMaxDatacarrierBytes = MAX_OP_RETURN_RELAY;
+
CScriptID::CScriptID(const CScript& in) : uint160(in.size() ? Hash160(in.begin(), in.end()) : 0) {}
const char* GetTxnOutputType(txnouttype t)
@@ -139,8 +141,8 @@ bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, vector<vector<unsi
}
else if (opcode2 == OP_SMALLDATA)
{
- // small pushdata, <= MAX_OP_RETURN_RELAY bytes
- if (vch1.size() > MAX_OP_RETURN_RELAY)
+ // small pushdata, <= nMaxDatacarrierBytes
+ if (vch1.size() > nMaxDatacarrierBytes)
break;
}
else if (opcode1 != opcode2 || vch1 != vch2)
diff --git a/src/script/standard.h b/src/script/standard.h
index 961b214c89..d795121e3c 100644
--- a/src/script/standard.h
+++ b/src/script/standard.h
@@ -26,6 +26,7 @@ public:
};
static const unsigned int MAX_OP_RETURN_RELAY = 40; // bytes
+extern unsigned nMaxDatacarrierBytes;
// Mandatory script verification flags that all new blocks must comply with for
// them to be valid. (but old blocks may not comply with) Currently just P2SH,