CentOS 6.x に bitcoind デーモンをインストールする方法

NO IMAGE

CentOS 6.x なサーバに bitcoinのデーモンである bitcoind のインストールする方法

2014年4月時点では、bitcoin の開発者は、Debian, Ubuntuでコンパイルしているようで、そちらのほうがスムーズです。

3通りのやり方

  • yum で非公式rpmをインストール
  • bitcoin公式バイナリでインストール
  • ソースコードからコンパイル、インストール

非公式rpmの方法でやります。

事前知識

  • livenet: 本番ネットワーク (TCP: 8332, 8333)
  • testnet: テスト用ネットワーク (TCP: 18332, 18333)

yumでインストール

注意) rpmの安全性はご自分でご確認下さい。

以下からインストール。
release, SRPM, rpm があります。

Bitcoin for Fedora and Red Hat Enterprise Linux

上記から bitcoin-release-x-x.noarch.rpm をインストール

サーバをインストールしたいなら

# yum install bitcoin-server

/etc/bitcoin/bitcoin.conf で設定をする
設定方法は、のちほど。

# chkconfig bitcoin on
# /etc/init.d/bitcoin start

エラーで起動しない。ので
/etc/init.d/bitcoin 内容を編集して、エラーを /dev/nullに入れないようにする

  • ユーザ名(bitcoin)がいる?
  • 起動時にメッセージ出力をするようにする

で、以下のエラーが出た。

************************
EXCEPTION: N5boost12interprocess22interprocess_exceptionE
Permission denied
bitcoin in AppInit()

スティッキービットを立ててやる

# ls -la /usr/sbin/bitcoind
-rwxr-xr-x 1 root root 6010208 3月 23 06:08 2014 bitcoind*
# chmod a+s /usr/sbin/bitcoind

再度起動

# /etc/init.d/bitcoind start
bitcoin を起動中: Bitcoin server starting
[ OK ]
# Error: To use the "-server" option, you must set a rpcpassword in the configuration file:
/etc/bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=E7Do...(みたいな文字列)
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com

bitcoin.conf

/etc/bitcoin/bitcoin.conf を書く

サンプルのBitcoin.conf は公式サイトを参考に

Running Bitcoin – Bitcoin

# /etc/init.d/bitcoind start
bitcoin を起動中: Bitcoin server starting
[ OK ]
# bitcoind: main.cpp:1638: bool ConnectBlock(CBlock&, CValidationState&, CBlockIndex*, CCoinsViewCache&, bool): Assertion `hashPrevBlock == view.GetBestBlock()' failed.

/etc/init.d/bitcoin stop

# /etc/init.d/bitcoin start
bitcoin を起動中: Bitcoin server starting
[ OK ]
# : Incorrect or no genesis block found. Wrong datadir for network?

/var/lib/bitcoin 以下のデータを削除すれば良さそうだけど、面倒なので yum remove & yum install してみたが失敗。

: Error opening block database.

Do you want to rebuild the block database now?

なぜかyと答えられない。
remove & install だと /var/lib/bitcoin は消えないので、バックアップ取って、再インストール。

# yum remove bitcoin-server
# mv /var/lib/bitcoin /var/lib/bitcoin-bak
# yum install -y bitcoin-server

再度起動。

Error: To use the "-server" option, you must set a rpcpassword in the configuration file:
/etc/bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=HQ58(文字列)VCC
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com

chmod & chown

# : You need to rebuild the database using -reindex to change -txindex.

Do you want to rebuild the block database now?

helpを見る。blk000???.dat ファイルがおかしいっぽい。

# /usr/sbin/bitcoind --help | grep reindex
-reindex Rebuild block chain index from current blk000??.dat files

ブロックチェーンのindexをリビルド by bitcoin ユーザ

sudo -u bitcoin /usr/sbin/bitcoind -reindex

/etc/init.d/bitcoin stop
/etc/init.d/bitdoin start

で動いている。ようだ。

以上。

参考URL

commerce – How do I go about installing a Bitcoin daemon in CentOS Linux? – Bitcoin Stack Exchange

公式バイナリの tar.gz からインストール

以下、CentOS6.xのglibcのバージョンが古くてエラーになり、時間がかかるので途中で諦めています。

ダウンロード

以下から、linux版をダウンロード

Download – Bitcoin

解凍してインストール

tar zxvf bitcoin-0.9.0-linux.tar.gz

32bitか64bitに合わせてコピーか、シンボリックリンクする

sudo cp bitcoin-0.9.0-linux/bin/64/bitcoind /usr/local/bin/

bitcoind ユーザの作成

sudo useradd bitcoind -c "Bitcoin Daemon" -d /home/bitcoind --create-home --shell /bin/bash --system

bitcoind ユーザが、bitcoind を実行できるようにパーミッションを変更

sudo chmod 750 /usr/local/bin/bitcoind
sudo chgrp bitcoind /usr/local/bin/bitcoind

bitcoin.conf

insight-api のサンプルを参考に

  • ユーザやパスワードや許可ネットワークを変更
  • /etc/bitcoind/ などに配置
  • permissionを変更
rpcuser=user
rpcpassword=pass
server=1
txindex=1

# Allow connections outsite localhost?
rpcallowip=192.168.1.*

rpcport=8332

参考設定ファイル
insight-api/etc/bitcoind/bitcoin-livenet.conf at master · bitpay/insight-api

can

startup スクリプト

以下の bitcoind をpath等変更し /etc/init.d/ とかに入れる

Install bitcoind on linux and setup server

  • path を /usr/loca/bin に
  • bitcoin.conf の読み場所を変更

/etc/init.d/bitcoind start で起動ができず。
以下のエラーが出ていた

# /etc/init.d/bitcoin start
bitcoin を起動中: /usr/sbin/bitcoind: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/sbin/bitcoind)
/usr/sbin/bitcoind: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /usr/sbin/bitcoind)
/usr/sbin/bitcoind: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/sbin/bitcoind)
[失敗]
zsh: exit 1 /etc/init.d/bitcoind start

バージョンが古いのか?
rpm だと libstdc++-4.4.7-4.el6 が入っている

$ strings /usr/lib64/libstdc++.so.6 | grep GLIBC

上記を実行すると、GLIBCXX_3.4.15が出てこない。
諦めて、ソースか、srpmからコンパイル、しようかと思う。

gccの新しいバージョンをコンパイルする方法でも治るかも?
以下、未実行。

tar xzf gcc-4.6.2.tar.gz
cd gcc-4.6.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.6.2/configure --prefix=/opt/gcc-4.6.2
make
make install

上記やってから、コピー か ln -sしたら、動くかも。

SPRMからrpmをビルド

http://linux.ringingliberty.com/bitcoin/el6/SRPMS/bitcoin-0.9.0-2.el6.src.rpm

エラー: ビルド依存性の失敗:
qrencode-devel は bitcoin-0.9.0-2.el6.x86_64 に必要とされています
openssl-compat-bitcoin-devel は bitcoin-0.9.0-2.el6.x86_64 に必要とされ ています
miniupnpc-devel は bitcoin-0.9.0-2.el6.x86_64 に必要とされています
protobuf-devel は bitcoin-0.9.0-2.el6.x86_64 に必要とされています
/usr/share/selinux/devel/policyhelp は bitcoin-0.9.0-2.el6.x86_64 に必要とされています
boost-compat-bitcoin-devel は bitcoin-0.9.0-2.el6.x86_64 に必要とされて います

上記、クライアント系のものもつっこんでいるっぽいので、無駄。

GitHubのソースからコンパイル

今度、試してみます。
中の人は、Debian, Ubuntuを利用している様子。

公式サイトのUnixでのビルドのドキュメント

bitcoin/doc/build-unix.md at master · bitcoin/bitcoin

     

免責事項

本記事に掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。

技術・サービス・実装方法等のレビュー、その他解説・分析・意見につきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。

     

コンセンサス・ベイス(株)とブロックチェーン事業を行なってみませんか?

当サイトを運営するコンセンサス・ベイス株式会社は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。

ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。

     
     

ブロックチェーン学習に最適の書籍の紹介

図解即戦力 ブロックチェーンのしくみと開発がこれ1冊でしっかりわかる教科書

ブロックチェーン イーサリアムへの入り口 第二版 (ブロックチェーン技術書籍)

本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。(はじめにより)

ビットコイン(Bitcoin)カテゴリの最新記事