BitcoinTalk
Version 0.3.13, please upgrade

View Satoshi only

External link

Version 0.3.13 is now available.  You should upgrade to prevent potential problems with 0/unconfirmed transactions.  Note: 0.3.13 prevents problems if you haven't already spent a 0/unconfirmed transaction, but if that already happened, you need 0.3.13.2.

Changes:
- Don't count or spend payments until they have 1 confirmation.
- Internal version number from 312 to 31300.
- Only accept transactions sent by IP address if -allowreceivebyip is specified.
- Dropped DB_PRIVATE Berkeley DB flag.
- Fix problem sending the last cent with sub-cent fractional change.
- Auto-detect whether to use 128-bit 4-way SSE2 on Linux.
Gavin Andresen:
- Option -rpcallowip= to accept json-rpc connections from another machine.
- Clean shutdown on SIGTERM on Linux.

Download:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.13/

(Thanks Laszlo for the Mac OSX build!)

Note:
The SSE2 auto-detect in the Linux 64-bit version doesn't work with AMD in 64-bit mode.  Please try this instead and let me know if it gets it right:
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz

You can still control the SSE2 use manually with -4way and -4way=0.

Version 0.3.13.2 (SVN rev 161) has improvements for the case where you already had 0/unconfirmed transactions that you might have already spent.  Here's a Windows build of it:
http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe
LZ
#2
If I create a wallet and then send some bitcoin to it,
then wait for confirmations, then remove that wallet
and restore it's previous copy - so the client will not
see that transaction. However, if I remove all blocks
and download all blocks again - then the amount will
appear. It would nice to make a re-count function...
LZ
#3
Oh! My wallet corrupted. Dropbox saved only too
old copies, because Bitcoin did not close the file.
I think client must close the wallet when it is not
needed for any operations on it. What you think?
That's nice, however the automatic 4way detection is not working on my Gentoo AMD 64 version client.

I still have to add the "-4way" switch.
Dwdollar lost some BTC with Bitcoin Market because someone either maliciously or accidentally sent him "unconfirmable" transactions, and he hadn't upgraded. Maybe now would be a good time to test the alert feature.
Version 0.3.13 is now available.
- Only accept transactions sent by IP address if -allowreceivebyip is specified.
- Option -rpcallowip= to accept json-rpc connections from another machine.

I notice that these options are not showing up in --help output... Shouldn't --help have a comprehensive listing of these options in it? (Especially given that there's no manpage or other help docs distributed in the official-release tarball?)

Just an idle question, whose result I hope makes its way into the next release. Smiley
Dwdollar lost some BTC with Bitcoin Market because someone either maliciously or accidentally sent him "unconfirmable" transactions, and he hadn't upgraded. Maybe now would be a good time to test the alert feature.

If they didn't confirm why would he clear them to go into the account? Is he counting blocks instead of confirmations? That seems odd.
If they didn't confirm why would he clear them to go into the account? Is he counting blocks instead of confirmations? That seems odd.

He sent a transaction that took coins from a transaction that will never confirm, so this transaction will also never confirm and is therefore lost (along with any change). If the person he sent it to isn't using 0.3.13, they'll also send unconfirmable transactions. It's like a virus. People need to move to 0.3.13 ASAP.

It has nothing to do with confirmations.
I suggest a manpage should be included in the tarball.
Dwdollar lost some BTC with Bitcoin Market because someone either maliciously or accidentally sent him "unconfirmable" transactions, and he hadn't upgraded. Maybe now would be a good time to test the alert feature.

I can agree with that. otherwise the 0/unconf txns can propagate through the network and mess up a lot of people's wallets.
That's nice, however the automatic 4way detection is not working on my Gentoo AMD 64 version client.

I still have to add the "-4way" switch.
Forgot to say, I suspected the detect might not work on 64-bit AMD.  I found it hard to believe but AMD reports a different model number in 64-bit mode.

Could you grep CPUID your debug.log and tell me what it says?  (and anyone else with 64-bit AMD)  And what AMD chip do you have?

Do all AMDs that support 64-bit have the better SSE2 hardware also?
Could a few people please run this special build?  It'll amnesty the dust spam transactions, which will clear up the 0/unconfirmed problem for now.  We really just need one block letting them through to clear up the previous transactions.  Post if you generate a block with this.

These are binaries only.  The linux version is 64-bit only.
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-win32.zip
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz

SHA1 fb7c66270281ed058c570627cf7baff0bdc16e5d bitcoin-0.3.13.1-specialbuild-win32.zip
SHA1 9fc44ea5f2109618073e2cfd887e2cc266eb31a9 bitcoin-0.3.13.1-specialbuild-linux64.tar.gz

The linux 64-bit version includes a change to the cpuid 4-way 128-bit SSE2 autodetect for AMD in 64-bit mode, if you'd like to test that and see if that's better.
Can you include the source? Or better the diff for those transactions? I could run it on my 983 Mhash/s box.
983 Mhash/s box.
Seriously?  What hardware is that?
Three GPUs (ATI HD 5870).
Code:
diff -u old\main.cpp new\main.cpp
--- old\main.cpp Sun Oct 03 20:57:20 2010
+++ new\main.cpp Sun Oct 03 20:57:54 2010
@@ -2831,6 +2831,10 @@
     bool fUseSSE2 = ((fIntel && nFamily * 10000 + nModel >=  60026) ||
                      (fAMD   && nFamily * 10000 + nModel >= 160010));
 
+    // AMD reports a lower model number in 64-bit mode
+    if (fAMD && sizeof(void*) > 4 && nFamily * 10000 + nModel >= 160004)
+        fUseSSE2 = true;
+
     static bool fPrinted;
     if (!fPrinted)
     {
@@ -2989,6 +2993,17 @@
 
                     // Transaction fee based on block size
                     int64 nMinFee = tx.GetMinFee(nBlockSize);
+                    //////// temporary code
+                    if (nBlockSize < MAX_BLOCK_SIZE_GEN / 10 && GetWarnings("statusbar") == "")
+                    {
+                        if (nBestHeight < 91000)
+                            nMinFee = 0;
+                        if (nBestHeight < 100000 && nTxSize < 2000)
+                            nMinFee = 0;
+                        if (nBestHeight < 110000 && nBestHeight % 10 == 0)
+                            nMinFee = 0;
+                    }
+                    //////// temporary code
 
                     map<uint256, CTxIndex> mapTestPoolTmp(mapTestPool);
                     if (!tx.ConnectInputs(txdb, mapTestPoolTmp, CDiskTxPos(1,1,1), pindexPrev, nFees, false, true, nMinFee))
diff -u old\serialize.h new\serialize.h
--- old\serialize.h Sun Oct 03 20:57:45 2010
+++ new\serialize.h Sun Oct 03 20:57:54 2010
@@ -22,8 +22,8 @@
 class CAutoFile;
 static const unsigned int MAX_SIZE = 0x02000000;
 
-static const int VERSION = 31300;
-static const char* pszSubVer = "";
+static const int VERSION = 31301;
+static const char* pszSubVer = " test1";
ArtForz is already running with no fees, and he has 20-30% of the network's CPU power. The person who originally sent the broken transactions deleted his wallet, though, and the network has forgotten these historical transactions, so any transactions based on this won't confirm.
It's running. Should find a block within 3 hours.
ArtForz is already running with no fees, and he has 20-30% of the network's CPU power. The person who originally sent the broken transactions deleted his wallet, though, and the network has forgotten these historical transactions, so any transactions based on this won't confirm.
Transactions aren't accepted or displayed as 0/unconfirmed until your node has a path of transactions back to the block chain.

Any transactions in your wallet also have bundled with them all unrecorded transactions required to reach the block chain.  If you have a transaction that is displayed as 0/unconfirmed, then you have all the previous unrecorded transactions it depends on and you will also rebroadcast those transactions when you rebroadcast yours.

If a no-fee block has already been generated and hasn't helped, then I need to look at what's wrong.  It's a part of code that doesn't get much use.  They should be recorded in the wallets of everyone who has a transaction depending on them.

The person who originally sent the broken transactions deleted his wallet
Sigh... why delete a wallet instead of moving it aside and keeping the old copy just in case?  You should never delete a wallet.

It's running. Should find a block within 3 hours.
It may take a while to collect re-broadcast transactions.  It'll help if you can accept inbound connections so you'll be listening to more nodes.  Even if you find a block in 3 hours, keep it running continuously for a few days at least.
Block 83018 (00000000002bba570c3) cleared out a bunch of them. Last I heard nanotube still had one that's unconfirmed, though.

Edit: Nanotube's transaction cleared recently. I don't know why it was delayed, since it wasn't relying on a sub-0.01 transaction.
That's nice, however the automatic 4way detection is not working on my Gentoo AMD 64 version client.

I still have to add the "-4way" switch.
Forgot to say, I suspected the detect might not work on 64-bit AMD.  I found it hard to believe but AMD reports a different model number in 64-bit mode.

Could you grep CPUID your debug.log and tell me what it says?  (and anyone else with 64-bit AMD)  And what AMD chip do you have?

Do all AMDs that support 64-bit have the better SSE2 hardware also?

Code:
$ grep -i cpuid debug.log
CPUID 444d4163 family 16, model 5, stepping 2, fUseSSE2=0

/proc/cpuinfo
Forgot to say, I suspected the detect might not work on 64-bit AMD.  I found it hard to believe but AMD reports a different model number in 64-bit mode.

Could you grep CPUID your debug.log and tell me what it says?  (and anyone else with 64-bit AMD)  And what AMD chip do you have?

Do all AMDs that support 64-bit have the better SSE2 hardware also?

Will that be enough ?:

Code:
cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 2
model name      : AMD Phenom(tm) 9850 Quad-Core Processor
stepping        : 3
cpu MHz         : 2508.353
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs npt lbrv svm_lock
bogomips        : 5018.72
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

EDIT:
Also, i have just found out how to do the cpuid thingy:

Code:
CPUID 444d4163 family 16, model 2, stepping 3, fUseSSE2=0
ShadowOfHarbringer, is yours faster with -4way?

If it is, then I'm thinking that any AMD that supports 64-bit has 128-bit SSE2.

The specialbuild version I posted here looks for model 4 or higher.  If yours is faster with -4way, then I should change it to always use SSE2 with any AMD with 64-bit.
ShadowOfHarbringer, is yours faster with -4way?

Indeed, it is almost 2 x as fast with -4way as it is without.

I get about 8500 khash/sec with -4way, and 4500 khash/sec without.
Any transactions in your wallet also have bundled with them all unrecorded transactions required to reach the block chain.  If you have a transaction that is displayed as 0/unconfirmed, then you have all the previous unrecorded transactions it depends on and you will also rebroadcast those transactions when you rebroadcast yours.

If a no-fee block has already been generated and hasn't helped, then I need to look at what's wrong.  It's a part of code that doesn't get much use.  They should be recorded in the wallets of everyone who has a transaction depending on them.

I have one transaction that remains perpetually in 0/unconfirmed status in my wallet. Here are the details, as shown in debug mode:

Code:
Status: 0/unconfirmed
Date: 09/29/2010 12:46
From: unknown
To: 1MgD6rah5zUgEGYZnNmdpnXMaDR3itKYzU (yours, label: gribble stored address)
Credit: 0.03
Net amount: +0.03

debug print
Credit: 0.03
Inputs:

Transaction:
CTransaction(hash=5c05d9, ver=1, vin.size=1, vout.size=1, nLockTime=0)
   CTxIn(COutPoint(b412a0, 0), scriptSig=3045022049753afb02f58a7b)
   CTxOut(nValue=0.03000000, scriptPubKey=OP_DUP OP_HASH160 e2ccd6)

Would appreciate it if you take a look and see what's wrong with it and why it remains unconfirmed....
Block 83018 (00000000002bba570c3) cleared out a bunch of them. Last I heard nanotube still had one that's unconfirmed, though.

Edit: Nanotube's transaction cleared recently. I don't know why it was delayed, since it wasn't relying on a sub-0.01 transaction.

just a clarification, the one that "cleared recently" didn't have anything to do with the problem microtransactions. the problem one, that was unconfirmed, is still unconfirmed, see info in my post above.
Do all AMDs that support 64-bit have the better SSE2 hardware also?


Old AMD Sempron 64 does not have the good sse2 speed.  This one should stay with -4way=0

CPUID 444d4163 family 15, model 44, stepping 2, fUseSSE2=0
Version 0.3.13 is now available.
- Only accept transactions sent by IP address if -allowreceivebyip is specified.
- Option -rpcallowip= to accept json-rpc connections from another machine.

I notice that these options are not showing up in --help output... Shouldn't --help have a comprehensive listing of these options in it? (Especially given that there's no manpage or other help docs distributed in the official-release tarball?)

Just an idle question, whose result I hope makes its way into the next release. Smiley

The command line switches are listed in "bitcoind -?" instead of "bitcoind help". You are still right tho, those options are missing from "-?" too.
Make sure you keep your node online so it'll keep rebroadcasting transaction b412a0.  It haven't seen it rebroadcast since 29/09/2010 16:41.