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

バージョン0.3.13、アップグレードしてください

34件のメッセージ BitcoinTalk サトシ・ナカモト, LZ, ShadowOfHarbringer, マイケル・マーカート, nanotube, FreeMoney, mizerydearia, tcatm, lfm 2010年10月1日 — 2010年10月17日

バージョン0.3.13が利用可能になった。0/未承認トランザクションに関する潜在的な問題を防ぐためにアップグレードしてほしい。注意:0.3.13は0/未承認トランザクションをまだ使用していない場合の問題を防ぐが、すでに使用してしまった場合は0.3.13.2が必要だ。

変更点:

  • 1回の承認があるまで支払いをカウントまたは使用しない。
  • 内部バージョン番号を312から31300に変更。
  • -allowreceivebyipが指定された場合のみIPアドレスで送信されたトランザクションを受け入れる。
  • DB_PRIVATE Berkeley DBフラグを廃止。
  • 1セント未満の端数のお釣りで最後の1セントを送金する際の問題を修正。
  • Linuxでの128ビット4-way SSE2の自動検出。

ギャビン・アンドレセン:

  • 別のマシンからのJSON-RPC接続を受け入れるオプション -rpcallowip=。
  • LinuxでのSIGTERMによるクリーンシャットダウン。

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

(Mac OSXビルドをしてくれたラズロに感謝!)

注意:Linux 64ビット版のSSE2自動検出は、64ビットモードのAMDでは動作しない。代わりにこちらを試して、正しく動作するか知らせてほしい:http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz

-4wayおよび -4way=0で手動でSSE2の使用を制御することもできる。

バージョン0.3.13.2(SVN rev 161)には、すでに0/未承認トランザクションがあり、それをすでに使用した可能性がある場合の改善が含まれている。Windows版のビルドはこちらだ:http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe

LZ 2010年10月2日08:46 UTC

ウォレットを作成して、それにビットコインを送って、 確認を待ってから、そのウォレットを削除して 以前のコピーを復元すると、クライアントはそのトランザクション を見なくなる。しかし、すべてのブロックを削除して すべてのブロックを再ダウンロードすると、その金額が 表示される。再カウント機能を作ると良いだろう……

LZ 2010年10月2日09:28 UTC

ああ! ウォレットが壊れた。Bitcoinがファイルを閉じなかったため、Dropboxは古すぎるコピーしか保存していなかった。クライアントはウォレットに対する操作が必要ない時にはウォレットを閉じるべきだと思う。どう思う?

ShadowOfHarbringer 2010年10月2日13:00 UTC

それは良いが、自動4way検出がGentoo AMD 64版のクライアントで動いていない。

まだ -4wayスイッチを追加する必要がある。

Dwdollarは、誰かが悪意を持ってか偶然か「確認不能な」トランザクションを送ってきたため、Bitcoin Marketでいくらかのbtcを失った。彼はアップグレードしていなかった。今がアラート機能をテストする良いタイミングかもしれない。

nanotube 2010年10月3日01:24 UTC
サトシ・ナカモトの投稿(2010年10月1日00:34 UTC)

バージョン0.3.13が利用可能になった。

  • -allowreceivebyipが指定された場合のみIPアドレスで送信されたトランザクションを受け入れる。
  • 別のマシンからのJSON-RPC接続を受け入れるオプション -rpcallowip=。

これらのオプションが—helpの出力に表示されていないことに気づいた…—helpにはこれらのオプションの包括的なリストが載っているべきじゃないかな? (特に、公式リリースのtarballにはmanページやその他のヘルプドキュメントが含まれていないことを考えると)

ただの何気ない質問だけど、結果が次のリリースに反映されるといいな。😊

FreeMoney 2010年10月3日04:15 UTC
マイケル・マーカートの投稿(2010年10月2日22:43 UTC)

Dwdollarは、誰かが悪意を持ってか偶然か「確認不能な」トランザクションを送ってきたため、Bitcoin Marketでいくらかのbtcを失った。彼はアップグレードしていなかった。今がアラート機能をテストする良いタイミングかもしれない。

確認されなかったなら、なぜアカウントに入金を認めたんだろう? ブロック数を確認回数の代わりにカウントしているのかな? 変な話だ。

FreeMoneyの投稿(2010年10月3日04:15 UTC)

確認されなかったなら、なぜアカウントに入金を認めたんだろう? ブロック数を確認回数の代わりにカウントしているのかな? 変な話だ。

彼は永遠に承認されない取引からコインを取る取引を送ったので、この取引も永遠に承認されず、したがって失われた(お釣りも含めて)。送った相手が0.3.13を使っていなければ、その人も承認不能な取引を送ることになる。ウイルスのようなものだ。できるだけ早く0.3.13に移行する必要がある。

承認とは何の関係もない。

mizerydearia 2010年10月3日05:25 UTC

tarballにmanページを含めるべきだと提案する。

nanotube 2010年10月3日05:59 UTC
マイケル・マーカートの投稿(2010年10月2日22:43 UTC)

Dwdollarは、誰かが悪意を持ってか偶然か「確認不能な」トランザクションを送ってきたため、Bitcoin Marketでいくらかのbtcを失った。彼はアップグレードしていなかった。今がアラート機能をテストする良いタイミングかもしれない。

それには同意できる。さもないと0承認の取引がネットワークを伝播して多くの人のウォレットを台無しにする可能性がある。

ShadowOfHarbringerの投稿(2010年10月2日13:00 UTC)

それは良いが、自動4way検出がGentoo AMD 64版のクライアントで動いていない。

まだ -4wayスイッチを追加する必要がある。

言い忘れていたが、64ビットAMDでは検出がうまくいかないのではないかと疑っていた。信じがたいことだが、AMDは64ビットモードで異なるモデル番号を報告する。

debug.logでCPUIDをgrepして、何が表示されるか教えてもらえないだろうか? (64ビットAMDを使っているほかの人も)それと、どのAMDチップを使っているの?

64ビットをサポートするすべてのAMDは、より良いSSE2ハードウェアも搭載しているのだろうか?

数人の方にこのスペシャルビルドを実行してもらえないだろうか? ダストスパムトランザクションを免除し、当面の0/未承認問題を解消する。通過させるブロックが1つあれば、以前のトランザクションを解消できる。このビルドでブロックを生成したら投稿してくれ。

これらはバイナリのみだ。Linux版は64ビットのみだ。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

Linux 64ビット版には、64ビットモードのAMD向けcpuid 4-way 128ビットSSE2自動検出の変更が含まれている。テストしてより良いかどうか確認してもらえると助かる。

tcatm 2010年10月3日19:45 UTC

ソースを含めてもらえるかな? あるいはそれらの取引のdiffの方がいい。自分の983 Mhash/sのマシンで実行できる。

tcatmの投稿(2010年10月3日19:45 UTC)

983 Mhash/sのマシン。

本当に? どんなハードウェアなの?

tcatm 2010年10月3日19:50 UTC

GPU3台(ATI HD 5870)。

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は64ビットモードでより低いモデル番号を報告する
+    if (fAMD && sizeof(void*) > 4 && nFamily * 10000 + nModel >= 160004)
+        fUseSSE2 = true;
+
     static bool fPrinted;
     if (!fPrinted)
     {
@@ -2989,6 +2993,17 @@

                     // ブロックサイズに基づくトランザクション手数料
                     int64 nMinFee = tx.GetMinFee(nBlockSize);
+                    //////// 一時的なコード
+                    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;
+                    }
+                    //////// 一時的なコード

                     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はすでに手数料なしで稼働しており、ネットワークのCPUパワーの20〜30%を持っている。ただし、元の壊れた取引を送った人はウォレットを削除し、ネットワークはこれらの過去の取引を忘れているため、これに基づく取引は承認されない。

tcatm 2010年10月3日20:10 UTC

動いている。3時間以内にブロックが見つかるはずだ。

マイケル・マーカートの投稿(2010年10月3日20:09 UTC)

ArtForzはすでに手数料なしで稼働しており、ネットワークのCPUパワーの20〜30%を持っている。ただし、元の壊れた取引を送った人はウォレットを削除し、ネットワークはこれらの過去の取引を忘れているため、これに基づく取引は承認されない。

トランザクションは、ノードがブロックチェーンに戻るトランザクションのパスを持つまで、0/未承認として受け入れられたり表示されたりしない。

ウォレット内のトランザクションには、ブロックチェーンに到達するために必要な未記録のトランザクションもすべて一緒にバンドルされている。0/未承認として表示されるトランザクションがある場合、それが依存する以前の未記録のトランザクションもすべて持っており、自分のトランザクションを再ブロードキャストする際にそれらも再ブロードキャストする。

手数料なしのブロックがすでに生成されたのに解決しない場合は、何が問題なのか調べる必要がある。あまり使われないコードの部分だ。それらに依存するトランザクションを持つ全員のウォレットに記録されているはずだ。

マイケル・マーカート

元の壊れた取引を送った人はウォレットを削除した

はぁ……ウォレットを別の場所に移動して万が一のために古いコピーを保管しておくのではなく、なぜ削除するのだろうか? ウォレットは決して削除すべきではない。

tcatmの投稿(2010年10月3日20:10 UTC)

動いている。3時間以内にブロックが見つかるはずだ。

再ブロードキャストされたトランザクションを収集するのに時間がかかるかもしれない。より多くのノードをリッスンできるよう、インバウンド接続を受け入れられるようにすると助けになる。3時間でブロックを見つけたとしても、少なくとも数日間は継続して実行し続けてくれ。

ブロック83018(00000000002bba570c3)で大量に処理された。最後に聞いた時点では、nanotubeにまだ未確認のものが1件あった。

追記:nanotubeのトランザクションは最近処理された。0.01未満のトランザクションに依存していなかったので、遅延の理由は分からない。

mizerydearia 2010年10月3日21:24 UTC
サトシ・ナカモトの投稿(2010年10月3日18:17 UTC)
ShadowOfHarbringerの投稿(2010年10月2日13:00 UTC)

それは良いが、自動4way検出がGentoo AMD 64版のクライアントで動いていない。

まだ -4wayスイッチを追加する必要がある。

言い忘れていたが、64ビットAMDでは検出がうまくいかないのではないかと疑っていた。信じがたいことだが、AMDは64ビットモードで異なるモデル番号を報告する。

debug.logでCPUIDをgrepして、何が表示されるか教えてもらえないだろうか? (64ビットAMDを使っているほかの人も)それと、どのAMDチップを使っているの?

64ビットをサポートするすべてのAMDは、より良いSSE2ハードウェアも搭載しているのだろうか?

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

/proc/cpuinfo (http://pastebin.com/mkis0AsC)

ShadowOfHarbringer 2010年10月3日21:36 UTC
サトシ・ナカモトの投稿(2010年10月3日18:17 UTC)

言い忘れていたが、64ビットAMDでは検出がうまくいかないのではないかと疑っていた。信じがたいことだが、AMDは64ビットモードで異なるモデル番号を報告する。

debug.logでCPUIDをgrepして、何が表示されるか教えてもらえないだろうか? (64ビットAMDを使っているほかの人も)それと、どのAMDチップを使っているの?

64ビットをサポートするすべてのAMDは、より良いSSE2ハードウェアも搭載しているのだろうか?

これで足りるかな?:

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: CPUIDの確認方法もわかった:

CPUID 444d4163 family 16, model 2, stepping 3, fUseSSE2=0

ShadowOfHarbringer、あなたのは -4wayの方が速い?

もしそうなら、64ビットをサポートするすべてのAMDが128ビットSSE2を搭載していると考えている。

ここに投稿したスペシャルビルド版はモデル4以上を探す。あなたのが -4wayで速いなら、64ビット対応のすべてのAMDで常にSSE2を使用するように変更すべきだろう。

ShadowOfHarbringer 2010年10月3日22:32 UTC
サトシ・ナカモトの投稿(2010年10月3日21:43 UTC)

ShadowOfHarbringer、あなたのは -4wayの方が速い?

確かに、-4wayありの方が、なしの場合と比べてほぼ2倍速い。

-4wayありで約8500 khash/sec、なしで4500 khash/secが出ている。

nanotube 2010年10月3日22:35 UTC
サトシ・ナカモトの投稿(2010年10月3日20:54 UTC)

ウォレット内のトランザクションには、ブロックチェーンに到達するために必要な未記録のトランザクションもすべて一緒にバンドルされている。0/未承認として表示されるトランザクションがある場合、それが依存する以前の未記録のトランザクションもすべて持っており、自分のトランザクションを再ブロードキャストする際にそれらも再ブロードキャストする。

手数料なしのブロックがすでに生成されたのに解決しない場合は、何が問題なのか調べる必要がある。あまり使われないコードの部分だ。それらに依存するトランザクションを持つ全員のウォレットに記録されているはずだ。

自分のウォレットに、永続的に0/unconfirmed状態のままのトランザクションが1つある。以下はデバッグモードで表示される詳細だ:

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) これを見てもらって、何が問題で、なぜ未確認のままなのかを確認してもらえるとありがたい……

nanotube 2010年10月3日22:43 UTC
マイケル・マーカートの投稿(2010年10月3日21:06 UTC)

ブロック83018(00000000002bba570c3)で大量に処理された。最後に聞いた時点では、nanotubeにまだ未確認のものが1件あった。

追記:nanotubeのトランザクションは最近処理された。0.01未満のトランザクションに依存していなかったので、遅延の理由は分からない。

明確にしておくと、「最近クリアされた」ものは問題のマイクロ取引とは無関係だ。未承認の問題のものはまだ未承認のままだ。上の投稿の情報を見てくれ。

lfm 2010年10月3日23:34 UTC
サトシ・ナカモトの投稿(2010年10月3日18:17 UTC)

64ビットをサポートするすべてのAMDは、より良いSSE2ハードウェアも搭載しているのだろうか?

古いAMD Sempron 64は良いSSE2速度を持っていない。これは -4way=0のままにすべきだ。

CPUID 444d4163 family 15, model 44, stepping 2, fUseSSE2=0

lfm 2010年10月3日23:44 UTC
nanotubeの投稿(2010年10月3日01:24 UTC)
サトシ・ナカモトの投稿(2010年10月1日00:34 UTC)

バージョン0.3.13が利用可能になった。

  • -allowreceivebyipが指定された場合のみIPアドレスで送信されたトランザクションを受け入れる。
  • 別のマシンからのJSON-RPC接続を受け入れるオプション -rpcallowip= 。

これらのオプションが—helpの出力に表示されていないことに気づいた…—helpにはこれらのオプションの包括的なリストが載っているべきじゃないかな? (特に、公式リリースのtarballにはmanページやその他のヘルプドキュメントが含まれていないことを考えると)

ただの素朴な疑問だが、その結果が次のリリースに反映されることを期待している。

コマンドラインスイッチは”bitcoind help”ではなく”bitcoind -?”にリストされている。とはいえその通りで、それらのオプションは”-?”からも欠けている。

ノードをオンラインのままにして、トランザクションb412a0を再ブロードキャストし続けるようにしてくれ。2010年9月29日16:41以降、再ブロードキャストされているのを確認していない。

nanotube 2010年10月4日00:34 UTC
サトシ・ナカモトの投稿(2010年10月3日23:46 UTC)

ノードをオンラインのままにして、トランザクションb412a0を再ブロードキャストし続けるようにしてくれ。2010年9月29日16:41以降、再ブロードキャストされているのを確認していない。

了解、そうする……(0 confのままだったら)またあなたにしつこく聞きに来る前に、どのくらいの時間オンラインにしておけばいいかな? 😊

(ちなみに、公式の.13クライアントを使っている)

nanotube 2010年10月4日00:35 UTC
lfmの投稿(2010年10月3日23:44 UTC)

コマンドラインスイッチは”bitcoind help”ではなく”bitcoind -?”にリストされている。とはいえその通りで、それらのオプションは”-?”からも欠けている。

lfm:試してみてくれ、‘-help’ は単なる ‘help’ とは /かなり/ 違う(‘-help’ は ’-?’ と同じだ) 😊

tcatm 2010年10月4日11:21 UTC
サトシ・ナカモトの投稿(2010年10月3日19:39 UTC)

数人の方にこのスペシャルビルドを実行してもらえないだろうか? ダストスパムトランザクションを免除し、当面の0/未承認問題を解消する。通過させるブロックが1つあれば、以前のトランザクションを解消できる。このビルドでブロックを生成したら投稿してくれ。

このパッチで8ブロック生成した。

nanotube 2010年10月5日02:18 UTC
サトシ・ナカモトの投稿(2010年10月3日23:46 UTC)

ノードをオンラインのままにして、トランザクションb412a0を再ブロードキャストし続けるようにしてくれ。2010年9月29日16:41以降、再ブロードキャストされているのを確認していない。

OK……過去1日間ノードを動かし続けていて、常に他の8ノードに接続していて、現時点でチェーンの最新ブロック(83535)まで進んでいるが、トランザクションは依然として検証されない……ここからどう進めればいい、サトシ?

LZ 2010年10月17日04:44 UTC
LZの投稿(2010年10月2日09:28 UTC)

ああ! ウォレットが壊れた。Bitcoinがファイルを閉じなかったため、Dropboxは古すぎるコピーしか保存していなかった。クライアントはウォレットに対する操作が必要ない時にはウォレットを閉じるべきだと思う。どう思う?

サトシ・ナカモトの投稿(2010年10月1日00:34 UTC)

バージョン0.3.13.2(SVN rev 161)には、すでに使用済みかもしれない0/unconfirmedトランザクションがすでにあった場合のための改善が含まれている。Windowsビルドはこちら:http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe

これは自分の壊れたウォレットを開いてくれた。魔法だ! 😄