changeset 276:2aab2e6f3ed0 draft

changed free transactions per block threshold git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@157 1a98c847-1fd6-4fd8-948a-caf3550aa51b
author s_nakamoto <s_nakamoto@1a98c847-1fd6-4fd8-948a-caf3550aa51b>
date Thu, 23 Sep 2010 16:01:44 +0000
parents 9d53003f99ba
children eb048502574e 1066ee9ece84
files main.cpp main.h serialize.h
diffstat 3 files changed, 23 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/main.cpp
+++ b/main.cpp
@@ -2929,7 +2929,7 @@
             CTxDB txdb("r");
             map<uint256, CTxIndex> mapTestPool;
             vector<char> vfAlreadyAdded(mapTransactions.size());
-            uint64 nBlockSize = 10000;
+            uint64 nBlockSize = 1000;
             int nBlockSigOps = 100;
             bool fFoundSomething = true;
             while (fFoundSomething)
@@ -2944,7 +2944,7 @@
                     if (tx.IsCoinBase() || !tx.IsFinal())
                         continue;
                     unsigned int nTxSize = ::GetSerializeSize(tx, SER_NETWORK);
-                    if (nBlockSize + nTxSize >= MAX_BLOCK_SIZE)
+                    if (nBlockSize + nTxSize >= MAX_BLOCK_SIZE_GEN)
                         continue;
                     int nTxSigOps = tx.GetSigOpCount();
                     if (nBlockSigOps + nTxSigOps >= MAX_BLOCK_SIGOPS)
--- a/main.h
+++ b/main.h
@@ -565,15 +565,16 @@
     {
         // Base fee is 1 cent per kilobyte
         unsigned int nBytes = ::GetSerializeSize(*this, SER_NETWORK);
+        unsigned int nNewBlockSize = nBlockSize + nBytes;
         int64 nMinFee = (1 + (int64)nBytes / 1000) * CENT;
 
-        // Transactions under 60K are free as long as block size is under 80K
-        // (about 27,000bc if made of 50bc inputs)
-        if (nBytes < 60000 && nBlockSize < 80000)
+        // Transactions under 25K are free as long as block size is under 40K
+        // (about 11,000bc if made of 50bc inputs)
+        if (nBytes < 25000 && nNewBlockSize < 40000)
             nMinFee = 0;
 
-        // Transactions under 3K are free as long as block size is under 200K
-        if (nBytes < 3000 && nBlockSize < 200000)
+        // Transactions under 3K are free as long as block size is under 50K
+        if (nBytes < 3000 && nNewBlockSize < 50000)
             nMinFee = 0;
 
         // To limit dust spam, require a 0.01 fee if any output is less than 0.01
@@ -583,11 +584,15 @@
                     nMinFee = CENT;
 
         // Raise the price as the block approaches full
-        if (MAX_BLOCK_SIZE/2 <= nBlockSize && nBlockSize < MAX_BLOCK_SIZE)
-            nMinFee *= MAX_BLOCK_SIZE / (MAX_BLOCK_SIZE - nBlockSize);
+        if (nBlockSize != 1 && nNewBlockSize >= MAX_BLOCK_SIZE_GEN/2)
+        {
+            if (nNewBlockSize >= MAX_BLOCK_SIZE_GEN)
+                return MAX_MONEY;
+            nMinFee *= MAX_BLOCK_SIZE_GEN / (MAX_BLOCK_SIZE_GEN - nNewBlockSize);
+        }
+
         if (!MoneyRange(nMinFee))
             nMinFee = MAX_MONEY;
-
         return nMinFee;
     }
 
@@ -1186,9 +1191,11 @@
 
     CBigNum GetBlockWork() const
     {
-        if (CBigNum().SetCompact(nBits) <= 0)
+        CBigNum bnTarget;
+        bnTarget.SetCompact(nBits);
+        if (bnTarget <= 0)
             return 0;
-        return (CBigNum(1)<<256) / (CBigNum().SetCompact(nBits)+1);
+        return (CBigNum(1)<<256) / (bnTarget+1);
     }
 
     bool IsInMainChain() const
@@ -1470,10 +1477,10 @@
     //// todo: add something to note what created it (user, getnewaddress, change)
     ////   maybe should have a map<string, string> property map
 
-    CWalletKey(int64 nTimeExpiresIn=0)
+    CWalletKey(int64 nExpires=0)
     {
-        nTimeCreated = (nTimeExpiresIn ? GetTime() : 0);
-        nTimeExpires = nTimeExpiresIn;
+        nTimeCreated = (nExpires ? GetTime() : 0);
+        nTimeExpires = nExpires;
     }
 
     IMPLEMENT_SERIALIZE
--- a/serialize.h
+++ b/serialize.h
@@ -23,7 +23,7 @@
 static const unsigned int MAX_SIZE = 0x02000000;
 
 static const int VERSION = 312;
-static const char* pszSubVer = ".7";
+static const char* pszSubVer = ".8";