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

CentOS用Bitcoind x86バイナリ

15件のメッセージ BitcoinTalk nimnul, サトシ・ナカモト, knightmb, sgtstein, ジェフ・ガージック 2010年8月3日 — 2010年8月4日
nimnul 2010年8月3日10:33 UTC

誰かバイナリを持っていない?

knightmb 2010年8月3日15:58 UTC

最初の障害はecdsa.h(楕円曲線デジタル署名アルゴリズム)ファイルが見つからないことだ。CentOSのmanページには載っているのに、パッケージには入っていない。なんだこれは?

とにかく、どこか別の場所からコピーすればいいだろう。うまくいけば、みんな向けのバイナリをすぐに用意できるはずだ。

sgtstein 2010年8月3日17:30 UTC

4.8では正常にビルドできた。4.7ではだめだったが、4.8ではbitcoindが初期ブロックダウンロードをディスクにダンプする際にハングする。😐

knightmb 2010年8月3日17:59 UTC

試しにDB4.8でコンパイルしてみたが同じエラーだった、笑(行番号は少し違ったが、同じクラスだ)

他のディストロではこのエラーは出なかった。CentOS特有のエラーかもしれないが、理由は分からない。

knightmbの投稿(2010年8月3日15:58 UTC)

最初の障害はecdsa.h(楕円曲線デジタル署名アルゴリズム)ファイルが見つからないことだ。CentOSのmanページには載っているのに、パッケージには入っていない。なんだこれは?

とにかく、どこか別の場所からコピーすればいいだろう。うまくいけば、みんな向けのバイナリをすぐに用意できるはずだ。

はい、ecdsa.hは特許の問題があるとされ、Red Hatなどのディストロはec-dsaを無効にしている。

そうだよ、バージニア。つまりbitcoinには特許の問題がある可能性があるということだ。

knightmb 2010年8月3日18:53 UTC
sgtsteinの投稿(2010年8月3日17:30 UTC)

4.8では正常にビルドできた。4.7ではだめだったが、4.8ではbitcoindが初期ブロックダウンロードをディスクにダンプする際にハングする。😐

おそらくCentOS 5.5の仮想マシンを立ち上げてそちらで作業する。実験で使っていたサーバーはバイナリをビルドしようとしてめちゃくちゃにしてしまった、笑。

sgtsteinの投稿(2010年8月3日17:30 UTC)

4.8では正常にビルドできた。4.7ではだめだったが、4.8ではbitcoindが初期ブロックダウンロードをディスクにダンプする際にハングする。😐

BDB 4.8を使わないよう強く勧める。あなたのビルドを使った人が公式ビルドに戻った場合、database/log0000*ファイルに互換性がなくなる。

knightmb 2010年8月3日22:11 UTC

よし、Oracleの開発者を一日中つつき回した末に、DBの問題を片付けた 😛

DB 4.7.25をコンパイルするときには、追加のconfigコマンドを使わないと、コンパイル成果物に重要なヘッダーファイルが含まれない(なぜだ???)

ともあれ、必要なのはこれだった

../dist/configure --enable-cxx
make

ソースをコンパイルする際にこれを実行すれば、DBコンパイル関連のエラーは解消する。

sgtstein 2010年8月3日22:51 UTC

ああ、しまった。あの追加フラグのことをすっかり忘れていた。ラズロのLinux Build Documentで前に知っていたのに。すまない。動作するビルドを作ってくれたら、間違いなくBTCを送る。😄

knightmb 2010年8月3日23:17 UTC

ああ、まだあるぞ!😲

それをやった後でも、リンクエラーのためコンパイルできなかった。ただし、bitcoindの確実なコンパイルには成功した。追加で必要だった手順は以下だ。

BerkeleyDB4.7をコンパイル・インストールした後、そのインクルードパスをmakefile.unixに追加する必要がある

-I”/usr/local/BerkeleyDB.4.7/include” を追加

次に、/usr/local/BerkeleyDB.4.7/libのすべてのライブラリを /usr/libにコピーする必要がある だが待て、まだあるぞ!😕

そう、それでもまだ十分に面倒ではないかのように、今度はOpenSSLエラーでコンパイルに失敗する、Grrrrr……

今度は /usr/local/ssl/libからlibcrypto.aとlibssl.aを /usr/libにコピーしなければならない

確かにリンクできるが、コンパイラーエラーを追いかけるのに疲れたので、コピーする方が簡単だった。🙄

それをすべてやった後、ようやくbitcoindバイナリをコンパイルできるはずだ。

今テスト中で、問題なく動いているようだ。ブロックのダウンロードなどができている。完了したら、コイン生成とコイン転送を試してみる。

GUIクライアントのコンパイルはまだ詰まっている。現在は以下で止まっている:

/usr/bin/ld: cannot find -lSM
Googleに詳しい人がいれば教えてほしい。😉
knightmb 2010年8月3日23:46 UTC

バイナリをここにアップロードした(32ビットのみ - bitcoind):Click Here

2つのバージョンがある。1つは標準コードからビルドしたもの、もう1つは最大1,000ノードを受け入れるよう改造したもの(だからスーパーノードという名前だ)。

GUIクライアントのビルドはまた別の日にやるだろう。今回で疲れ果てた。気前がよければ、署名欄のアドレスにBTCを寄付してもらえるとうれしい 😉

knightmbの投稿(2010年8月3日23:46 UTC)

2つのバージョンがある。1つは標準コードからビルドしたもの、もう1つは最大1,000ノードを受け入れるよう改造したもの(だからスーパーノードという名前だ)。

1000ノード接続版のビルドを公開しないでほしい。それを実行する人が少しでも増えると、着信接続を制限するためだけに別のリリースを出さなければならなくなる。

knightmb 2010年8月4日00:25 UTC
サトシ・ナカモトの投稿(2010年8月4日00:09 UTC)
knightmbの投稿(2010年8月3日23:46 UTC)

2つのバージョンがある。1つは標準コードからビルドしたもの、もう1つは最大1,000ノードを受け入れるよう改造したもの(だからスーパーノードという名前だ)。

1000ノード接続版のビルドを公開しないでほしい。それを実行する人が少しでも増えると、着信接続を制限するためだけに別のリリースを出さなければならなくなる。

心配してくれるのはありがたい。現行のリリース版はすでに接続数を8に制限している。こちらのバイナリは単一のクライアントやノードに対して何百もの接続を張りに行くわけではなく、独立したクライアントからの何百もの接続を受け付けるように改造しただけだ。CPUと帯域に余裕があるのだから、Bitcoinのために役立ててもいいんじゃないか、と思ったんだ。

sgtstein 2010年8月4日01:22 UTC

自分のCentOS 5.5マシンを本当にめちゃくちゃにしてしまったらしい。trunkからビルドした自分のものでも、君のビルドでも、こうなる:

Tue Aug  3 15:24:07 CDT 2010
[myles@kappa ~]$ ./bitcoind getinfo
{
    "balance" : 0.000000000000000,
    "blocks" : 3095,
    "connections" : 5,
    "proxy" : "",
    "generate" : true,
    "genproclimit" : -1,
    "difficulty" : 1.000000000000000
}
[myles@kappa ~]$ date
Tue Aug  3 15:28:53 CDT 2010
[myles@kappa ~]$ ./bitcoind getinfo
{
    "balance" : 0.000000000000000,
    "blocks" : 3095,
    "connections" : 5,
    "proxy" : "",
    "generate" : true,
    "genproclimit" : -1,
    "difficulty" : 1.000000000000000
}

何かアイデアはある?

knightmb 2010年8月4日03:15 UTC

ダウンロード先について最初に投稿して以来、こちらでもずっと動かしている。

すべて問題ないようで、topで確認したところ、bitcoindは最低プライオリティでコイン生成にCPUを100%使っている

knightmb@serverfarm528 32]$ ./bitcoind getinfo
{
    "balance" : 0.000000000000000,
    "blocks" : 72169,
    "connections" : 329,
    "proxy" : "",
    "generate" : true,
    "genproclimit" : -1,
    "difficulty" : 244.2132230923753
}

君の出力を見る限り、何らかの理由でそのブロックでハングしているようだ。デーモンを停止してから再起動すると、その後は進むのかな?

よければ、./bitcoind -server -connect=12.53.130.10でこちらに直接接続して試してみるといい。ビルドの問題かどうかを切り分けられる。