aboutsummaryrefslogtreecommitdiff
path: root/src/coins.cpp
diff options
context:
space:
mode:
authorGregory Maxwell <greg@xiph.org>2017-06-17 00:18:42 +0000
committerGregory Maxwell <greg@xiph.org>2017-07-14 19:24:17 +0000
commit3babbcb48786372d4b22171674c4cc5a6220c294 (patch)
tree099fab1403b69a6da62d222fbf8b2d45f0c12fa7 /src/coins.cpp
parente4fcbf797ed3b472d352ac3794ec82f581209c50 (diff)
Remove confusing MAX_BLOCK_BASE_SIZE.
Some people keep thinking that MAX_BLOCK_BASE_SIZE is a separate size limit from the weight limit when it fact it is superfluous, and used in early tests before the witness data has been validated or just to compute worst case sizes. The size checks that use it would not behave any differently consensus wise if they were eliminated completely. Its correct value is not independently settable but is a function of the weight limit and weight formula. This patch just eliminates it and uses the scale factor as required to compute the worse case constants. It also moves the weight factor out of primitives into consensus, which is a more logical place for it.
Diffstat (limited to 'src/coins.cpp')
-rw-r--r--src/coins.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/coins.cpp b/src/coins.cpp
index b5dc6197bd..e30bda930a 100644
--- a/src/coins.cpp
+++ b/src/coins.cpp
@@ -245,7 +245,8 @@ bool CCoinsViewCache::HaveInputs(const CTransaction& tx) const
return true;
}
-static const size_t MAX_OUTPUTS_PER_BLOCK = MAX_BLOCK_BASE_SIZE / ::GetSerializeSize(CTxOut(), SER_NETWORK, PROTOCOL_VERSION); // TODO: merge with similar definition in undo.h.
+static const size_t MIN_TRANSACTION_OUTPUT_WEIGHT = WITNESS_SCALE_FACTOR * ::GetSerializeSize(CTxOut(), SER_NETWORK, PROTOCOL_VERSION);
+static const size_t MAX_OUTPUTS_PER_BLOCK = MAX_BLOCK_WEIGHT / MIN_TRANSACTION_OUTPUT_WEIGHT;
const Coin& AccessByTxid(const CCoinsViewCache& view, const uint256& txid)
{