LoginSignup
6
5

More than 5 years have passed since last update.

BitZenyをコンパイルしてみる

Last updated at Posted at 2014-11-11

はじめに

bitcoin0.9系からの派生コインbitzenyを試してみた
centosでのコンパイルはめんどくさいです

centosでcryptocurrencyをコンパイルする環境を作るansibleをまとめたのでそれを基板に手順を書いてみます(この手順で一部をbitcoinに読みかえればbitcoin0.9系もコンパイルできると思います)

※bitzenyとはビットコインをforkして作られた暗号通貨です。
http://bitzeny.org/

※debianでコンパイルしたい方はこちら
http://zakki.mona-digest.net/?p=20

※ubuntuは公式に書いてあります
https://github.com/bitzeny/bitzeny/blob/z1.1.x/README.md

ansibleをインストールする

epelリポジトリを入れることでyumでansibleが入ります

rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y libyaml PyYAML ansible

gitをインストールする

gitがないと始まらないのでyumでgitを入れます

yum install git

暗号通貨用のビルド環境を作る

gitで環境構築用の定義ファイルをダウンロードしてきてansibleにやらせます

git clone https://github.com/you21979-storage/ansible-develop.git
cd ansible-develop
echo "[all]" > hosts
echo "localhost" >> hosts
ansible-playbook devel-cryptocurrency.yml -i hosts -k -c local

この定義ファイルでやってることは以下のライブラリをダウンロード~コンパイル~インストールするということをやってます

  • boost: boost_1_55_0
  • zlib: zlib-1.2.8
  • bzip2: bzip2-1.0.6
  • openssl: openssl-1.0.1j
  • bdb: db-4.8.30
  • miniupnpc: miniupnpc-1.9.20140401

yumで以下のパッケージもインストールしてます

  • git
  • gcc
  • gcc-c++
  • python-devel

ansibleの動作が正常終了したら暗号通貨のビルド環境の完成です
/usr/localの下にビルドに必要なライブラリ郡がインストールされています

bitzenyのビルド

githubからダウンロードしてきます。ブランチがリリースバージョンになっているのでブランチ指定を忘れずに。

bitcoin0.9系はconfigureが使えるようになってるのでビルドが楽になってます
configureを使うにはautoconf一式を入れます。
ツールが揃っていれば./autogen.shを実行することでconfigureが生成されます。
configureのオプションには/usr/localの下を明示的に指定します。
ライブラリ-lrtと-ldlの指定も必要です。忘れるとリンク時に失敗します。

make -j2の2のところにはCPUの数を指定してください。
CPUが8コア使えれば-j8とやると同時に8ファイルコンパイルされます

yum install automake autoconf libtool
git clone https://github.com/bitzeny/bitzeny.git -b z1.1.x
cd bitzeny
./autogen.sh
./configure LDFLAGS="-L /usr/local/lib64 -lrt -ldl" CXXFLAGS="-I /usr/local/include"
make -j2

起動

起動するにはbitzeny.confを作成します

# RPCを使うときのユーザー名
rpcuser=bitzenyrpc
# RPCを使うときのパスワード
rpcpassword=nagaipassword
# RPCを利用できるIPアドレス
rpcallowip=192.168.*
# RPCを受け付けるポート番号
rpcport=10000
# RPCを同時に受け付ける数
rpcthreads=10
# マイニングするかどうか。0でしない
gen=0
# P2Pのコネクション数
maxconnections=200

ファイルをコピーします

mkdir -p /opt/bitzeny/bin
mkdir -p /opt/bitzeny/etc
mkdir -p /opt/bitzeny/data
cp bitzeny.conf /opt/bitzeny/etc
cp bitzenyd /opt/bitzeny/bin

準備ができたら起動します

/opt/bitzeny/bin/bitzenyd -conf=/opt/bitzeny/etc/bitzeny.conf -datadir=/opt/bitzeny/data -daemon

正常に起動したらコマンドをうって情報を確認しよう

/opt/bitzeny/bin/bitzenyd -conf=/opt/bitzeny/etc/bitzeny.conf getinfo
コマンド 内容
getinfo ネットワークの情報と自分のプログラムの状態を表示
getaccountaddress account 受信用のアドレスを取得する。accountには識別できる文字(ハンドル名とか)
sendfrom account bitzenyaddress amount 指定したアカウントから指定したアドレスに送金する。
listtransactions account 指定したアカウントの送受信したトランザクションを確認する

おまけ

デーモン起動用のシェルです
/etc/init.d/bitzenyd start
/etc/init.d/bitzenyd stop

/etc/init.d/bitzenyd
#!/bin/sh
#
# bitzenyd      Start bitzenyd
#
# chkconfig: 2345 08 92
# description:  Starts, stops
#

# Source function library.
. /etc/init.d/functions
#
COINDIR=/opt/bitzeny
DAEMON=$COINDIR/bin/bitzenyd
CONF=$COINDIR/etc/bitzeny.conf
DATA=$COINDIR/data
start() {
        $DAEMON -conf=$CONF -datadir=$DATA -daemon
}
stop() {
        $DAEMON -conf=$CONF stop
}
restart() {
    stop
    sleep 3
    start
}
getinfo() {
    $DAEMON -conf=$CONF getinfo
    $DAEMON -conf=$CONF getmininginfo
    $DAEMON -conf=$CONF getdifficulty
}
case "$1" in
    start)
        start
        RETVAL=$?
        ;;
    stop)
        stop
        RETVAL=$?
        ;;
    restart|force-reload)
        restart
        RETVAL=$?
        ;;
    getinfo)
        getinfo
        RETVAL=$?
        ;;
    *)
        echo $"Usage: {start|stop|restart|getinfo}"
        RETVAL=2
        ;;
esac

exit $RETVAL

Donation

参考になったら投げ銭してみてください。
bitzeny: ZeW6dp1ZSACLNyQAPDguZzfgKnaxFpwQee
bitzeny

monacoin: MCEp2NWSFc352uaDc6nQYv45qUChnKRsKK
monacoin

6
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5