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 は公式サイトを参考に
# /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版をダウンロード
解凍してインストール
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
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を利用している様子。