Version 0.3.13, please upgrade

34 messages BitcoinTalk Satoshi Nakamoto, LZ, ShadowOfHarbringer, Michael Marquardt, nanotube, FreeMoney, mizerydearia, tcatm, lfm October 1, 2010 — October 17, 2010
Satoshi Nakamoto October 1, 2010 00:34 UTC Source ·

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 October 2, 2010 08:46 UTC Source ·

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 October 2, 2010 09:28 UTC Source ·

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?

ShadowOfHarbringer October 2, 2010 13:00 UTC Source ·

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.

theymos October 2, 2010 22:43 UTC Source ·

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.

nanotube October 3, 2010 01:24 UTC Source ·
Quote from: satoshi on September 30, 2010, 3:34:35 PM UTC

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. 😊

FreeMoney October 3, 2010 04:15 UTC Source ·
Quote from: theymos on October 02, 2010, 1:43:29 PM UTC

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.

theymos October 3, 2010 04:42 UTC Source ·
Quote from: FreeMoney on October 02, 2010, 7:15:09 PM UTC

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.

mizerydearia October 3, 2010 05:25 UTC Source ·

I suggest a manpage should be included in the tarball.

nanotube October 3, 2010 05:59 UTC Source ·
Quote from: theymos on October 02, 2010, 1:43:29 PM UTC

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.

Satoshi Nakamoto October 3, 2010 18:17 UTC Source ·
Quote from: ShadowOfHarbringer on October 02, 2010, 4:00:07 AM UTC

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?

Satoshi Nakamoto October 3, 2010 19:39 UTC Source ·

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.

tcatm October 3, 2010 19:45 UTC Source ·

Can you include the source? Or better the diff for those transactions? I could run it on my 983 Mhash/s box.

Satoshi Nakamoto October 3, 2010 19:49 UTC Source ·
Quote from: tcatm on October 03, 2010, 10:45:45 AM UTC

983 Mhash/s box.

Seriously?  What hardware is that?

tcatm October 3, 2010 19:50 UTC Source ·

Three GPUs (ATI HD 5870).

Satoshi Nakamoto October 3, 2010 20:02 UTC Source ·
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";
theymos October 3, 2010 20:09 UTC Source ·

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.

tcatm October 3, 2010 20:10 UTC Source ·

It’s running. Should find a block within 3 hours.

Satoshi Nakamoto October 3, 2010 20:54 UTC Source ·
Quote from: theymos on October 03, 2010, 11:09:51 AM UTC

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.

Quote from: theymos on October 03, 2010, 11:09:51 AM UTC

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.

Quote from: tcatm on October 03, 2010, 11:10:47 AM UTC

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.

theymos October 3, 2010 21:06 UTC Source ·

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.

mizerydearia October 3, 2010 21:24 UTC Source ·
Quote from: satoshi on October 03, 2010, 9:17:06 AM UTC
Quote from: ShadowOfHarbringer on October 02, 2010, 4:00:07 AM UTC

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?

$ grep -i cpuid debug.log 
CPUID 444d4163 family 16, model 5, stepping 2, fUseSSE2=0
/proc/cpuinfo
ShadowOfHarbringer October 3, 2010 21:36 UTC Source ·
Quote from: satoshi on October 03, 2010, 9:17:06 AM UTC

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 ?:

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:

CPUID 444d4163 family 16, model 2, stepping 3, fUseSSE2=0
Satoshi Nakamoto October 3, 2010 21:43 UTC Source ·

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 October 3, 2010 22:32 UTC Source ·
Quote from: satoshi on October 03, 2010, 9:43:20 PM UTC

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.

nanotube October 3, 2010 22:35 UTC Source ·
Quote from: satoshi on October 03, 2010, 8:54:07 PM UTC

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:

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…

nanotube October 3, 2010 22:43 UTC Source ·
Quote from: theymos on October 03, 2010, 12:06:59 PM UTC

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.

lfm October 3, 2010 23:34 UTC Source ·
Quote from: satoshi on October 03, 2010, 9:17:06 AM UTC

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

lfm October 3, 2010 23:44 UTC Source ·
Quote from: nanotube on October 02, 2010, 4:24:27 PM UTC
Quote from: satoshi on September 30, 2010, 3:34:35 PM UTC

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.

The command line switches are listed in “bitcoind -?” instead of “bitcoind help”. You are still right tho, those options are missing from ”-?” too.

Satoshi Nakamoto October 3, 2010 23:46 UTC Source ·

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.

nanotube October 4, 2010 00:34 UTC Source ·
Quote from: satoshi on October 03, 2010, 11:46:19 PM UTC

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.

ok, will do… how long should i keep it online for, before i can come back and bug you about it again (if it stays at 0 conf) ? 😊

(and btw, i’m using the official .13 client)

nanotube October 4, 2010 00:35 UTC Source ·
Quote from: lfm on October 03, 2010, 11:44:39 PM UTC

The command line switches are listed in “bitcoind -?” instead of “bitcoind help”. You are still right tho, those options are missing from ”-?” too.

lfm: try it, ‘-help’ is /quite/ different from just ‘help’ (‘-help’ is the same as ’-?’) 😊

tcatm October 4, 2010 11:21 UTC Source ·
Quote from: satoshi on October 03, 2010, 7:39:06 PM UTC

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.

I generated 8 blocks with the patch.

nanotube October 5, 2010 02:18 UTC Source ·
Quote from: satoshi on October 03, 2010, 11:46:19 PM UTC

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.

OK… so i’ve been running the node for the past day, i have been consistently connected to 8 other nodes, i’m up to the latest block in the chain as of this moment (83535), and the transaction is still not verified… how do we proceed from here, satoshi?

LZ October 17, 2010 04:44 UTC Source ·
Quote from: lzsaver on October 02, 2010, 9:28:46 AM UTC

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?

Quote from: satoshi on October 01, 2010, 12:34:35 AM UTC

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

It opens my corrupted wallet. Magic! 😄