bitcoinをAWSにインストール

まずは適当にインスタンスを用意しましょう。
今回はAWSで作ることにしました。

AWSインスタンスの入手

OS:AmazonLinux
インスタンスタイプ:t2.micro
インスタンスストレージ:30G

まあまあ用量を食うので30Gまでストレージをつけておきます。
出来上がったら適当につないでさっそく環境作りに取り掛かります。

OSは何でもよいと思いますが、本家のマニュアルやネットの事例はUbuntuというかDebian系が多かったのであえてのRedhat系でやってみました。

AWS Linuxの環境整備

とりあえずGitとC++コンパイラ入れましょう。

sudo yum install gcc-c++
sudo yum install git

そしてソースコードをClone

git clone https://github.com/bitcoin/bitcoin.git

さてdoc/build-unixを見ると必要ライブラリが書かれているので入れていきましょう。

必須ライブラリ系
 sudo yum install libssl
 sudo yum install libboost
 sudo yum install libevent

オプショナル

 sudo yum install miniupnpc 
 sudo yum install libdb4.8
 sudo yum install qt 
 sudo yum install protobuf
 sudo yum install libqrencode
 sudo yum install libzmq3

その他AmazonLinuxには必要なもの

 sudo yum install autoconf
 sudo yum install automake 
sudo yum install libtool
sudo yum install gcc-c++ make
sudo yum install boost-devel 
sudo yum install db4-devel
sudo yum install openssl-devel
sudo yum install rpm-build
sudo yum install lynx
sudo yum install python-devel
sudo yum install miniupnpc
sudo yum install miniupnpc-devel.i686
sudo yum install libdb-cxx.i686
sudo yum install libdb-cxx-devel.i686
sudo yum install libevent
sudo yum install libevent-devel

僕はLinux詳しくないのでなぜかは知りませんがAmazonLinuxでは以下のようなMakeファイル系の便利コマンドが入っていないのですよね。
 autoreconf (autoconfで入る)
 aclocal (automakeで入る)
まあいいか

さらにマニュアルに従ってBerkeley DBを入れてビルドします。
doc/build-unixを忠実に実施。

BITCOIN_ROOT=$(pwd)

# Pick some path to install BDB to, here we create a directory within the bitcoin directory
BDB_PREFIX="${BITCOIN_ROOT}/db4"
mkdir -p $BDB_PREFIX

# Fetch the source and verify that it is not tampered with
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef  db-4.8.30.NC.tar.gz' | sha256sum -c
# -> db-4.8.30.NC.tar.gz: OK
tar -xzvf db-4.8.30.NC.tar.gz

# Build the library and install to our prefix
cd db-4.8.30.NC/build_unix/
#  Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
make install

# Configure Bitcoin Core to use our own-built instance of BDB
cd $BITCOIN_ROOT

終わったらやってみましょう。

sudo ./autogen.sh
sudo ./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)

sudo make

ドキドキしながら待ちましょう。...
とまっていたらいやなかんじでおちた。

g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [libbitcoin_server_a-main.o] Error 4
make[2]: Leaving directory `/home/ec2-user/work/bitcoin/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ec2-user/work/bitcoin/src'
make: *** [all-recursive] Error 1
[ec2-user@ip-172-31-18-152 bitcoin]$

メモリ不足だろうということでスワップを追加します。

$ sudo -s
# fallocate -l 1024m /tmp/swap.img
# mkswap /tmp/swap.img
# chmod 600 /tmp/swap.img
# swapon /tmp/swap.img
$ free
             total       used       free     shared    buffers     cached
Mem:       1019452      67396     952056         64       3240      14956
-/+ buffers/cache:      49200     970252
Swap:      1048572          0    1048572

うむ。追加できた。

さてもっかい

sudo make

成功!めでたくインストール

sudo make install

$ ls /usr/local/bin/bitcoin*
/usr/local/bin/bitcoin-cli  /usr/local/bin/bitcoind  /usr/local/bin/bitcoin-tx

できましたー。

さて次からは起動させていきたいと思います。