バージョン 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 スイッチを追加する必要がある。

theymos 2010年10月2日 22:43 UTC 原文 ·

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

nanotube 2010年10月3日 01:24 UTC 原文 ·
サトシ・ナカモトの投稿(2010年9月30日 15:34 UTC)

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

変更点:

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

次のリリースに反映されることを期待する、ちょっとした質問だ。

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

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

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

theymos 2010年10月3日 04:42 UTC 原文 ·
FreeMoneyの投稿(2010年10月2日 19: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日 13:43 UTC)

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

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

ShadowOfHarbringerの投稿(2010年10月2日 04: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日 10: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";
theymos 2010年10月3日 20:09 UTC 原文 ·

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

tcatm 2010年10月3日 20:10 UTC 原文 ·

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

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

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

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

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

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

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

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

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

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

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

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

theymos 2010年10月3日 21:06 UTC 原文 ·

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

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

mizerydearia 2010年10月3日 21:24 UTC 原文 ·
サトシ・ナカモトの投稿(2010年10月3日 09:17 UTC)
ShadowOfHarbringerの投稿(2010年10月2日 04: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
ShadowOfHarbringer 2010年10月3日 21:36 UTC 原文 ·
サトシ・ナカモトの投稿(2010年10月3日 09: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日 12:06 UTC)

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

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

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

lfm 2010年10月3日 23:34 UTC 原文 ·
サトシ・ナカモトの投稿(2010年10月3日 09: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月2日 16:24 UTC)
サトシ・ナカモトの投稿(2010年9月30日 15:34 UTC)

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

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

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

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

コマンドラインスイッチは”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 原文 ·
lzsaverの投稿(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

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