ビットコイン・インスティテュート

*** 警告 *** 0.3.6に今すぐアップグレードしてください!

できるだけ早く0.3.6にアップグレードしてくれ! 偽のトランザクションが承認済みとして表示される可能性がある実装バグを修正した。バージョン0.3.6にアップグレードするまで、Bitcoinトランザクションを支払いとして受け入れないでほしい!

すぐに0.3.6にアップグレードできない場合は、アップグレードするまでBitcoinノードをシャットダウンすることをお勧めする。

また、0.3.6ではハッシュが高速化されている:

  • tcatmの功績によるmidstateキャッシュ最適化
  • BlackEyeの功績によるCrypto++ ASM SHA-256生成速度の合計高速化は2.4倍だ。

ダウンロード:http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.6/

WindowsとLinuxのユーザーへ:0.3.5を入手済みでも、0.3.6にアップグレードする必要がある。

Olipro 2010年7月29日19:25 UTC

これ、SVNに入ってる?

knightmb 2010年7月29日19:26 UTC

このセキュリティアップデートの素早さには感謝するが、残念ながらLinuxビルドはどれも(32ビットも64ビットも)動かない。ファイルが欠けているからだ。ファイルを自分で見つけてくれば動くと思うが、新しいビルドを使う他の人がどれだけうまくやれるかは分からない。

エラー

./bitcoin: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory
andy_3_913 2010年7月29日19:30 UTC

サトシとOliproは一緒に作業してるの? そうでないなら、一緒にやれる可能性はある? 😊

Oliproが進めている速度改善にはとても満足しているが、bcは安全であってほしいんだ!

サトシ・ナカモトの投稿(2010年7月29日19:13 UTC)

至急0.3.5へアップグレードしてほしい! 不正なトランザクションが受理されてしまう実装上のバグを修正した。バージョン0.3.5にアップグレードするまでは、Bitcoinトランザクションを支払いとして受け取らないでほしい!

Oliproと同様、世にはカスタムビルドを使っている人が大勢いる。実際、自分も複数のマシンでカスタムビルドを使わざるを得ない。

SVNには必要な更新がすべて入っている、と考えていいのか?

公式Linux-64bitビルドをFedora 13で実行したところ、ひどく失敗した:

************************
EXCEPTION: 22DbRunRecoveryException       
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery       
bitcoin in AppInit()       

************************
EXCEPTION: 22DbRunRecoveryException       
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery       
bitcoin in CMyApp::OnUnhandledException()       

terminate called after throwing an instance of ‘DbRunRecoveryException’ what(): DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery

私のBitcoinが食われてないことを祈る…

knightmb 2010年7月29日19:47 UTC
ジェフ・ガージックの投稿(2010年7月29日19:42 UTC)

公式Linux-64bitビルドをFedora 13で実行したところ、ひどく失敗した:

************************
EXCEPTION: 22DbRunRecoveryException       
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery       
bitcoin in AppInit()       



************************
EXCEPTION: 22DbRunRecoveryException       
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery       
bitcoin in CMyApp::OnUnhandledException()       

terminate called after throwing an instance of 'DbRunRecoveryException'
  what():  DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery

私のBitcoinが食われてないことを祈る…

大丈夫だと思う、こっちも吹っ飛んだ。旧バージョンを実行すれば、コインは全部見えるはずだ。次のLinuxリリースに備えて、まずバックアップしておくといいよ 😉

ジェフ・ガージックの投稿(2010年7月29日19:42 UTC)

公式Linux-64bitビルドをFedora 13で実行したところ、ひどく失敗した:

別のマシンでも同じ結果だ。BDBエラーで死亡。64bit Linuxの0.3.5は問題がある。32bit Linuxのビルドと取り違えていないよね?

debug.logの内容:

Bitcoin version 0.3.5 beta
Default data directory /g/g/.bitcoin
Bound to port 8333
Loading addresses...
dbenv.open strLogDir=/garz/bitcoin/data/database strErrorFile=/garz/bitcoin/data/db.log

************************
EXCEPTION: 22DbRunRecoveryException       
DbEnv::open: DB_RUNRECOVERY: Fatal error, run database recovery       
bitcoin in AppInit()
knightmbの投稿(2010年7月29日19:47 UTC)

大丈夫だと思う、自分もやられた。古いバージョンを実行すれば、コインは全部見えるはずだ。次のLinuxリリースに備えてまずバックアップを

ダブルACK 😊

古いバージョン(SVN 117 + listtransactions + getinfo KHPS)は問題なく動作、すべてのビットコインが存在する。そして確かに、「アップグレードしてください」の指示に従う前にバックアップすべきだった…… 😊

knightmb 2010年7月29日19:54 UTC

[削除済み] Quote from: davidonpda on July 29, 2010, 07:51:38 PM

Windowsユーザーはとりあえず3.5にアップグレードできるか?

はい、Windows XP、2003、7でテスト済み、すべて問題なく通った。速度向上も楽しめるだろう。😉

[えっ、待った、新バージョンが出るところだ]

まだSVNを更新する時間がなかった。0.3.6を待ってくれ、今ビルドしている。その間、ノードをシャットダウンしておいてもかまわない。

SVNをバージョン0.3.6に更新した。

0.3.6のWindowsビルドをSourceforgeにアップロード中だ。その後、Linuxを再ビルドする。

RudeDude 2010年7月29日20:35 UTC

ハ! 変更内容の1つは”0.3.3”を”0.3.6”に更新した部分があるが、それはアップデートの重要な部分ではない。:-)

SVN r119はここでは問題なく動作する。BDBの爆発はなし。

knightmb 2010年7月29日20:51 UTC

WindowsビルドをXP、2003、Vista、7(32ビットと64ビットの両方)でテスト済み、クライアントのインストールと実行に問題なし。今のところ順調、Linuxクライアントが楽しみだ。😉

0.3.6のLinuxビルドは古いmakefile.unixに戻った。libjpegを静的リンクしているので、問題はないはずだ。

これでうまく動くようになったかな?

22DbRunRecoveryExceptionが発生し、以前に他の人のビルドを使用したことがある場合は、database/log.000000*を削除(またはファイルを別の場所に移動)する必要があるかもしれない。

WindowsとLinuxのユーザーへ:0.3.5を入手済みでも、0.3.6にアップグレードする必要がある。

knightmb 2010年7月29日21:23 UTC

それでもLinuxビルドは依然としてダメだ、これがコンソールに出ているエラーだ。ファイルがあることは確認したが、バージョンが合っていないようだ?

64ビットクライアントのエラー。32ビットクライアントも試して、似たようなエラーが出るか見てみる。

./bitcoin: /lib64/libc.so.6: version `GLIBC_2.11' not found (required by ./bitcoin)

これをテストしたマシンはストックビルドしか使っていない。これまでに改造ビルドは一切使っていない。

32ビットクライアントでも同じエラーだ。

./bitcoin: /lib/libc.so.6: version `GLIBC_2.11' not found (required by ./bitcoin)

Linux - Mandriva 2010.0 [64ビットおよび32ビット] OSのセットアップ

bitcoinex 2010年7月29日21:27 UTC

Linux用の0.3.6バイナリは、Debian squeeze/sidの自分の2台のマシン(64bitと32bit)で問題なく動作した。

knightmb 2010年7月29日21:28 UTC
bitcoinexの投稿(2010年7月29日21:27 UTC)

Linux用の0.3.6バイナリは、自分の2台のマシン(64bitと32bit)で問題なく動作した

それは参考になる。こちらが更新するだけで済むかもしれないので、現在インストールされているバージョンを確認している。

bitcoinexの投稿(2010年7月29日21:27 UTC)

Linux用の0.3.6バイナリは、自分の2台のマシン(64bitと32bit)で問題なく動作した

差し支えなければ、成功/失敗の報告時にOS名とOSバージョンを投稿してほしい。

別のフォーラムメンバーからサトシへの提案を繰り返す:より広い互換性を確保するために、古いLinux OSでLinuxバイナリをビルドすべきだ。CentOS 5くらい古いものでもいいかもしれない(注意:カスタムのopenssl、boost、db4、wxビルドが必要)。

knightmb 2010年7月29日21:30 UTC

ああ、私のは2.10.1にリンクされている。最新にアップデートして解決するか試してみる 😄

[編集] パッケージでは2.10が上限で、できなかった

knightmb 2010年7月29日21:32 UTC
ジェフ・ガージックの投稿(2010年7月29日21:30 UTC)
bitcoinexの投稿(2010年7月29日21:27 UTC)

Linux用の0.3.6バイナリは、自分の2台のマシン(64bitと32bit)で問題なく動作した

差し支えなければ、成功/失敗の報告時にOS名とOSバージョンを投稿してほしい。

別のフォーラムメンバーからサトシへの提案を繰り返す:より広い互換性を確保するために、古いLinux OSでLinuxバイナリをビルドすべきだ。CentOS 5くらい古いものでもいいかもしれない(注意:カスタムのopenssl、boost、db4、wxビルドが必要)。

同意する、最先端のディストロパッケージを使っていない我々にとって助かる。😊

bitcoinex 2010年7月29日21:35 UTC
ジェフ・ガージックの投稿(2010年7月29日21:30 UTC)
bitcoinexの投稿(2010年7月29日21:27 UTC)

Linux用の0.3.6バイナリは、自分の2台のマシン(64bitと32bit)で問題なく動作した

差し支えなければ、成功/失敗の報告時にOS名とOSバージョンを投稿してほしい。

別のフォーラムメンバーからサトシへの提案を繰り返す:より広い互換性を確保するために、古いLinux OSでLinuxバイナリをビルドすべきだ。CentOS 5くらい古いものでもいいかもしれない(注意:カスタムのopenssl、boost、db4、wxビルドが必要)。

すまない。Debian GNU/Linux squeeze/sidでバイナリを確認した。

「./bitcoin: /lib64/libc.so.6: version `GLIBC_2.11’ not found (required by ./bitcoin)」は0.3.6から始まった新しい問題ではないよな? これは0.3.0と同じOS環境でビルドされたものだ。

残念ながら、0.3.0の前にUbuntu 10.04にアップグレードしてしまった。もうこれ以上アップグレードしない。ダウングレードのために再インストールする時間がいつ取れるかわからないが、少なくともアップグレードしないことで、徐々に問題は解消されるだろう。

The Madhatter 2010年7月29日21:44 UTC

v0.3.6はFreeBSD/i386 7.2、7.3、およびFreeBSD/amd64 8.0で動作する。

警告ひとつなくきれいにコンパイルが通り、問題なく動作しているようだ。

Odin 2010年7月29日21:45 UTC

http://bitcointalk.org/index.php?topic=612.0に挙げられている各点を参考にすれば、Linuxバイナリ配布をできるだけ広い層で動かせるようにする助けになるかもしれない。

OpenSUSEのOBSサービスでプロジェクトをビルドできるようにすれば、メンテナはディストリビューション固有のコンパイルを無料で手に入れられるはずだ。

SmokeTooMuch 2010年7月29日21:47 UTC

0.3.6はWin7 Pro 64ビットで快調に動いている。

Gooffy 2010年7月29日22:08 UTC

Ubuntu Linux 9.10

エラー:

/lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11’ not found 😢

Debianテスティング32ビットで、いくつかのビルドエラーが出る。すべて以下に類似している:

script.cpp:114: error: ‘OP_NOP1’ was not declared in this scope

“make clean”または”make”を先にせずに”make bitcoind”しようとした時にこのエラーが出た。bitcoindのビルド手順はヘッダーを先にコンパイルしないが、headers.h.gchも削除しないので、存在する場合は古いヘッダーが使われるようだ。

このエラーが出た人は、“make clean”してからビルドを再試行するのが最も簡単な解決策だ。

dwdollar 2010年7月29日22:53 UTC
サトシ・ナカモトの投稿(2010年7月29日21:43 UTC)

「./bitcoin: /lib64/libc.so.6: version `GLIBC_2.11’ not found (required by ./bitcoin)」は0.3.6から始まった新しい問題ではないよな? これは0.3.0と同じOS環境でビルドされたものだ。

残念ながら、0.3.0の前にUbuntu 10.04にアップグレードしてしまった。もうこれ以上アップグレードしない。ダウングレードのために再インストールする時間がいつ取れるかわからないが、少なくともアップグレードしないことで、徐々に問題は解消されるだろう。

変だな、0.3.3はそのマシンで問題なく動いていた。たいしたことはない、どのみちそのマシンをアップグレードする必要がある。

Odin 2010年7月29日22:57 UTC
Gooffyの投稿(2010年7月29日22:08 UTC)

Ubuntu Linux 9.10

エラー:

/lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11’ not found 😢

dpkg -l | egrep "(libc6|glibc)"
# 現在インストールされているバージョンが表示される

# おそらくglibc version 2.10以前がインストールされている。

apt-get update
apt-cache showpkg libc6 | less
# (下の方で)2.11バージョンが利用可能か確認する

# 以下でアップグレードできるかもしれない:
apt-get upgrade libc6

# 上記は本来のDebianシステム用の手順で、Ubuntuでも動くかもしれない
エリック・スワンソンの投稿(2010年7月29日22:14 UTC)

Debianテスティング32ビットで、いくつかのビルドエラーが出る。すべて以下に類似している:

script.cpp:114: error: ‘OP_NOP1’ was not declared in this scope

“make clean”または”make”を先にせずに”make bitcoind”しようとした時にこのエラーが出た。bitcoindのビルド手順はヘッダーを先にコンパイルしないが、headers.h.gchも削除しないので、存在する場合は古いヘッダーが使われるようだ。

このエラーが出た人は、“make clean”してからビルドを再試行するのが最も簡単な解決策だ。

プリコンパイル済みヘッダーは実際には必要ない。コンパイルがわずかに速くなるだけだ。廃止しようと思う。それでも、残ったファイルを削除するために、もう一度「make -f makefile.unix clean」を実行するかheaders.h.gchを削除する必要がある。

まったく、GLIBC_2.11め。アップデートを受け入れないよう注意していたと思っていたのに。

knightmb 2010年7月30日00:27 UTC
サトシ・ナカモトの投稿(2010年7月29日23:12 UTC)

プリコンパイル済みヘッダーは実際には必要ない。コンパイルがわずかに速くなるだけだ。廃止しようと思う。それでも、残ったファイルを削除するために、もう一度「make -f makefile.unix clean」を実行するかheaders.h.gchを削除する必要がある。

まったく、GLIBC_2.11め。アップデートを受け入れないよう注意していたと思っていたのに。

GLIBC_2.10版をコンパイルしようと思ったが、チェックエラーを通すためにどんどんインストールしないといけないことに気づいた、笑える。開発パッケージを全部入れたVirtual Boxを立ち上げて、仮想マシンの中でやった方が楽になりそうだ。

ハッシュが2倍速くなることがなぜ重要なのか、誰か理解を助けてくれないか? 全員がアップグレードしても、コインのインフレ率は変わらない。つまり、アーリーアダプターには「わずかな」優位性があるということだ。これによって「正直なノード」により多くの時間が与えられ、結果として不正なノードが優位を得るのがさらに難しくなる、と言う者もいるだろう。

通貨の最重要要素は分割可能性と固定供給量だ。コインの相対的な価値は、購入可能な商品の供給量に応じて自動的に調整される。だから、まず「生成速度」以外のところに力を入れたいと思う。

knightmb 2010年7月30日01:25 UTC
ダニエル・ラリマーの投稿(2010年7月30日01:05 UTC)

ハッシュが2倍速くなることがなぜ重要なのか、誰か理解を助けてくれないか? 全員がアップグレードしても、コインのインフレ率は変わらない。つまり、アーリーアダプターには「わずかな」優位性があるということだ。これによって「正直なノード」により多くの時間が与えられ、結果として不正なノードが優位を得るのがさらに難しくなる、と言う者もいるだろう。

通貨の最重要要素は分割可能性と固定供給量だ。コインの相対的な価値は、購入可能な商品の供給量に応じて自動的に調整される。だから、まず「生成速度」以外のところに力を入れたいと思う。

ごく単純に言えば、コイン生成の競争条件を平準化し、ブロック生成を安定したレートで維持できるようにするためだ。もしクライアント側で全員が100 khash/sに制限されていたら、誰かが制限のないクライアントをコンパイルして、1台あたり10,000 khash/sを叩き出せるサーバーファームに載せるだけのことだ。そうなればコイン生成の供給は、サーバーに大金を投じられる人間の手に渡り、それ以外の人々はコインを鋳造しようとする意欲をくじかれる。もしクライアントがトランザクションノードとしてのみ振る舞い、誰もが公平にコイン生成に挑めると信じられるなら、クライアントが常時5 khash/sで生成していようと誰も気にしないだろう。

だから完璧な世界であれば、自分より他人が2倍3倍速く生成できようと誰も気にしないが、我々は完璧な世界には住んでいないんだ。 😉

andy_3_913 2010年7月30日16:04 UTC

BCに自動アップデート機能を組み込むことは可能だろうか?

HostFat 2010年7月30日16:49 UTC
andy_3_913の投稿(2010年7月30日16:04 UTC)

BCに自動アップデート機能を組み込むことは可能だろうか?

それはもうここで提案済みだ :| http://bitcointalk.org/index.php?topic=259.0

andy_3_913 2010年7月30日16:51 UTC
HostFatの投稿(2010年7月30日16:49 UTC)
andy_3_913の投稿(2010年7月30日16:04 UTC)

BCに自動アップデート機能を組み込むことは可能だろうか?

それはもうここで提案済みだ :| http://bitcointalk.org/index.php?topic=259.0

ごめん!😊

knightmb 2010年7月30日19:24 UTC

これらのビルドを作るのにどれだけ苦労したか想像できる。自分はUbuntu 9.04上でプログラムをビルドしようとしているが、パッケージをインストールしてソースをコンパイルし続けても、依存関係を全部見つけられない(笑)。

knightmbの投稿(2010年7月30日19:24 UTC)

これらのビルドを作るのにどれだけ苦労したか想像できる。自分はUbuntu 9.04上でプログラムをビルドしようとしているが、パッケージをインストールしてソースをコンパイルし続けても、依存関係を全部見つけられない(笑)。

なぜそんなに苦労しているのか理解できない。build-unix.txtの手順に従っただけだ。Boost 1.37用にちょっとした修正を加えたが、次回SVNを更新する時にアップロードする。以下に記載する:

依存関係
------------
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install libssl-dev
sudo apt-get install libdb4.7-dev
sudo apt-get install libdb4.7++-dev
sudo apt-get install libboost-all-dev(またはlibboost1.37-dev)

wxWidgets
---------
cd /usr/local
tar -xzvf wxWidgets-2.9.0.tar.gz
cd /usr/local/wxWidgets-2.9.0
mkdir buildgtk
cd buildgtk
../configure --with-gtk --enable-debug --disable-shared --enable-monolithic
make
sudo su
make install
ldconfig

makefile.unixにコメントを追加:

# boost 1.37の場合、boostライブラリに-mtを追加
LIBS= \
 -Wl,-Bstatic \
   -l boost_system \
   -l boost_filesystem \
   -l boost_program_options \
   -l boost_thread \
   -l db_cxx \
   -l crypto \
 -Wl,-Bdynamic \
   -l gthread-2.0
knightmb 2010年7月30日20:04 UTC
サトシ・ナカモトの投稿(2010年7月30日19:53 UTC)

なぜそんなに苦労しているのか理解できない。build-unix.txtの手順に従っただけだ。Boost 1.37用にちょっとした修正を加えたが、次回SVNを更新する時にアップロードする。以下に記載する:

依存関係

sudo apt-get install build-essential sudo apt-get install libgtk2.0-dev sudo apt-get install libssl-dev sudo apt-get install libdb4.7-dev sudo apt-get install libdb4.7++-dev sudo apt-get install libboost-all-dev (or libboost1.37-dev)

その最後のハイライト部分が原因だった。そのコマンドではすべてのlibboostパッケージをインストールできない(*でも試した)が、問題の一部はlibboostに関する「すべて」をインストールすると文字通りに解釈しすぎたことだ、笑。

実際には、libboost1.37-devパッケージだけで、すべてのコンパイルエラーが消えた。それ以外は、独自のwxWidgetsのコンパイル、Boost 1.4のコンパイルなど、すべて問題なく動いた。

つまり最後のコマンドは単純にsudo apt-get install libboost1.37-dev

余談だが、Ubuntu 64bitシステムでコンパイルしたので、できたプログラムは64bit対応になった。いくつかの64bitシステムでテスト中だ。

knightmbの投稿(2010年7月30日20:04 UTC)

つまり最後のコマンドは単純に

sudo apt-get install libboost1.37-devただし、それはboost 1.40以降(Ubuntu 10.04)では動作しない。その場合はlibboost-all-devを入手する必要がある。

最近Boostの仕様がいろいろ変わったようで、-mtなどの問題もあり、大変だ。

ちなみに、Boost 1.34を試したが、boost.interprocessがなかった。

Mac OSX版が利用可能になった。bitcoin.orgまたはSourceForgeのリンクを見てくれ。

knightmb 2010年7月30日21:47 UTC
サトシ・ナカモトの投稿(2010年7月30日21:44 UTC)
knightmbの投稿(2010年7月30日20:04 UTC)

つまり最後のコマンドは単純にsudo apt-get install libboost1.37-dev

ただし、それはboost 1.40以降(Ubuntu 10.04上)では動かない。そちらではlibboost-all-devを取得する必要がある。

最近Boostの仕様がいろいろ変わったようで、-mtなどの問題もあり、大変だ。

ちなみに、Boost 1.34を試したが、boost.interprocessがなかった。

Mac OSX版が利用可能になった。bitcoin.orgまたはSourceForgeのリンクを見てくれ。

ああ、なるほど、それで腑に落ちた。Ubuntu 10.04でコンパイルしているとは知らなかった、こっちはUbuntu 9.04の視点ですべてを考えていた。

自分の環境では、Ubuntu 9.04のマシンで64ビットのコンパイルを通すのに必要だったのはlibboost1.37-devだけだった。コンパイルする際にディストリの混乱を避けるために、それぞれ用にVirtual Boxを複数持っておく必要がありそうだ 😁

andy_3_913 2010年7月30日21:50 UTC

白状するよ。 完全にお手上げだ。orbit@homeがオンラインに戻るのを待つことにする。

😄

knightmb 2010年7月30日22:20 UTC

私がそれをタイプしているのを見たときの妻の表情を見せたいくらいだ 😁

最初に妻が言ったのは「あなたたち一体何の話をしているの」だった 🤐