Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: satoshi on October 01, 2010, 12:34:35 AM



Title: Version 0.3.13, please upgrade
Post by: satoshi on October 01, 2010, 12:34:35 AM
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


Title: Re: Version 0.3.13
Post by: LZ on October 02, 2010, 08:46:18 AM
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...


Title: Re: Version 0.3.13
Post by: LZ on October 02, 2010, 09:28:46 AM
Oh! My wallet corrupted. Dropbox (https://www.dropbox.com/referrals/NTEwNjgzMTEwOQ) 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?


Title: Re: Version 0.3.13
Post by: ShadowOfHarbringer on October 02, 2010, 01:00:07 PM
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.


Title: Re: Version 0.3.13
Post by: theymos on October 02, 2010, 10:43:29 PM
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.


Title: Re: Version 0.3.13
Post by: nanotube on October 03, 2010, 01:24:27 AM
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. :)


Title: Re: Version 0.3.13
Post by: FreeMoney on October 03, 2010, 04:15:09 AM
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.


Title: Re: Version 0.3.13
Post by: theymos on October 03, 2010, 04:42:43 AM
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.


Title: Re: Version 0.3.13
Post by: mizerydearia on October 03, 2010, 05:25:12 AM
I suggest a manpage should be included in the tarball.


Title: Re: Version 0.3.13
Post by: nanotube on October 03, 2010, 05:59:06 AM
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.


Title: Re: Version 0.3.13
Post by: satoshi on October 03, 2010, 06:17:06 PM
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?


Title: Re: Version 0.3.13, please upgrade
Post by: satoshi on October 03, 2010, 07:39:06 PM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: tcatm on October 03, 2010, 07:45:45 PM
Can you include the source? Or better the diff for those transactions? I could run it on my 983 Mhash/s box.


Title: Re: Version 0.3.13, please upgrade
Post by: satoshi on October 03, 2010, 07:49:32 PM
983 Mhash/s box.
Seriously?  What hardware is that?


Title: Re: Version 0.3.13, please upgrade
Post by: tcatm on October 03, 2010, 07:50:15 PM
Three GPUs (ATI HD 5870).


Title: Re: Version 0.3.13, please upgrade
Post by: satoshi on October 03, 2010, 08:02:24 PM
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";


Title: Re: Version 0.3.13, please upgrade
Post by: theymos on October 03, 2010, 08:09:51 PM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: tcatm on October 03, 2010, 08:10:47 PM
It's running. Should find a block within 3 hours.


Title: Re: Version 0.3.13, please upgrade
Post by: satoshi on October 03, 2010, 08:54:07 PM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: theymos on October 03, 2010, 09:06:59 PM
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.


Title: Re: Version 0.3.13
Post by: mizerydearia on October 03, 2010, 09:24:48 PM
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 (http://pastebin.com/mkis0AsC)


Title: Re: Version 0.3.13
Post by: ShadowOfHarbringer on October 03, 2010, 09:36:11 PM
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


Title: Re: Version 0.3.13, please upgrade
Post by: satoshi on October 03, 2010, 09:43:20 PM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: ShadowOfHarbringer on October 03, 2010, 10:32:16 PM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: nanotube on October 03, 2010, 10:35:45 PM
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....


Title: Re: Version 0.3.13, please upgrade
Post by: nanotube on October 03, 2010, 10:43:45 PM
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.


Title: Re: Version 0.3.13
Post by: lfm on October 03, 2010, 11:34:49 PM
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


Title: Re: Version 0.3.13
Post by: lfm on October 03, 2010, 11:44:39 PM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: satoshi on October 03, 2010, 11:46:19 PM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: nanotube on October 04, 2010, 12:34:35 AM
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)


Title: Re: Version 0.3.13
Post by: nanotube on October 04, 2010, 12:35:50 AM
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 '-?') :)


Title: Re: Version 0.3.13, please upgrade
Post by: tcatm on October 04, 2010, 11:21:27 AM
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.


Title: Re: Version 0.3.13, please upgrade
Post by: nanotube on October 05, 2010, 02:18:57 AM
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?


Title: Re: Version 0.3.13, please upgrade
Post by: LZ on October 17, 2010, 04:44:04 AM
Oh! My wallet corrupted. Dropbox (http://bit.ly/aL9ZBU) 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?
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! :D