Version 0.3.11 with upgrade alerts

10 messages BitcoinTalk Satoshi Nakamoto, BioMike, Jeff Garzik, tcatm, pavelo, torservers August 27, 2010 — August 28, 2010

Version 0.3.11 is now available.

Changes:

  • Some blk*.dat checking on load
  • Built the -4way code with -march=amdfam10, which makes it a little faster
  • Warning if your clock is too far off
  • Warnings/errors/alerts can also be seen in the getinfo command
  • Alert system

The alert system can display notifications on the status bar to alert you if you’re running a version that needs to be upgraded for an important security update.

In response to an alert, your node may also go into safe mode, which disables the following json-rpc commands (used by automated websites) to protect it from losing money until you get a chance to upgrade:  sendtoaddress  getbalance  getreceivedbyaddress  getreceivedbylabel  listreceivedbyaddress  listreceivedbylabel

If you decide it’s a false alarm and want to take your chances, you can use the switch -disablesafemode to re-enable them.

This is an important safety improvement.  For a large segment of possible problems, this can warn everyone immediately once a problem is discovered and prevent them from acting on bad information.

Nodes keep operating and do not stop generating in response to an alert, so old versions may still try to make a fork, but the alert system can make sure users are warned not to act on anything in the fork.

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

BioMike August 27, 2010 Source · Permalink

Quote from: satoshi on August 27, 2010, 09:54:12 PM

  • Built with -march=amdfam10, which makes -4way slightly faster

Doesn’t -march break abi with older systems?

Quote from: BioMike on August 27, 2010, 10:40:35 PM

Quote from: satoshi on August 27, 2010, 09:54:12 PM

  • Built with -march=amdfam10, which makes -4way slightly faster

Doesn’t -march break abi with older systems?

It’s quite possible. -mtune=XXXX may be preferred, because -march=XXXX means the compiler expects the binary will only be run on amdfam10.

tcatm August 28, 2010 Source · Permalink

Quote from: jgarzik on August 27, 2010, 11:35:26 PM

… -march=XXXX means the compiler expects the binary will only be run on amdfam10.

That’s exactly what we want. But I agree, it’s a dirty hack to use -march=amdfam10. In this case it’ll produce the most compact and efficient SSE2 code from the source. A cleaner alternative would be inline assembler.

pavelo August 28, 2010 Source · Permalink

iirc, it is possible to specify -march on a per-function basis using some gcc attribute. That way, only the function in question would be optimized, and if the user doesn’t specify -4way, everything else should be ok.

BioMike August 28, 2010 Source · Permalink

Quote from: tcatm on August 28, 2010, 12:33:35 AM

Quote from: jgarzik on August 27, 2010, 11:35:26 PM

… -march=XXXX means the compiler expects the binary will only be run on amdfam10.

That’s exactly what we want. But I agree, it’s a dirty hack to use -march=amdfam10. In this case it’ll produce the most compact and efficient SSE2 code from the source. A cleaner alternative would be inline assembler.

So, what CPU’s support this? Is this only the newest AMD ones? And how many systems are we excluding because of this?

tcatm August 28, 2010 Source · Permalink

Quote from: BioMike on August 28, 2010, 08:24:05 AM

So, what CPU’s support this? Is this only the newest AMD ones? And how many systems are we excluding because of this?

Phenoms, i5 and i7 from what I know. Those are the only CPUs that have a 128 bit SSE2 instruction decoder and benefit at all, every older CPU will be slower. Don’t think about it as “only works on AMDs K10” but rather as “tweak the compiler to produce the exact assembly code we want and still be flexible to support other vector engines in the future”.

BioMike August 28, 2010 Source · Permalink

Quote from: tcatm on August 28, 2010, 10:12:18 AM

Quote from: BioMike on August 28, 2010, 08:24:05 AM

So, what CPU’s support this? Is this only the newest AMD ones? And how many systems are we excluding because of this?

Phenoms, i5 and i7 from what I know. Those are the only CPUs that have a 128 bit SSE2 instruction decoder and benefit at all, every older CPU will be slower. Don’t think about it as “only works on AMDs K10” but rather as “tweak the compiler to produce the exact assembly code we want and still be flexible to support other vector engines in the future”.

Ah. Ok. Thank you for the info.

torservers August 28, 2010 Source · Permalink

The “About” dialog still shows 0.3.10.1 beta.

Quote from: torservers on August 28, 2010, 01:00:37 PM

The “About” dialog still shows 0.3.10.1 beta.

What OS?  I ran the Windows and 64-bit Linux version and checked the about dialog.

The Mac version is still 0.3.10.1.

Quote from: pavelo on August 28, 2010, 07:36:07 AM

iirc, it is possible to specify -march on a per-function basis using some gcc attribute. That way, only the function in question would be optimized, and if the user doesn’t specify -4way, everything else should be ok.

I updated the first post to be more specific.  Only the -4way code is compiled this way.