LoginSignup
14
9

More than 5 years have passed since last update.

Bitcoin Core を AWS で動かしてみる

Posted at

Bitcoin Core を AWS で動かす

Bitcoin Core を動かしたい.
Mac でも動かすことが可能だが, 2017/09/12 現在で blockchain の size は 130 GB 程度あり, 自分の Mac では容量的な不安がある.

そこで, 今回は AWS で動かしてみることにした.

Ubuntu Server を立てる

Bitcoin はほぼ無関係なので読み飛ばし推奨.

AMI として, Ubuntu Server 16.04 LTS を選択し, t2.medium で立てることとした. 現在 $0.047 / hour なので, だいたい月に 3700 円 ($33.84, 110 円 / $) かかる.
また, ストレージとして 300 GB 追加した.

なお, Bitcoin core の推奨スペックは以下で確認できる.

Requirements And Warnings - Bitcoin Core
https://bitcoin.org/en/bitcoin-core/features/requirements

今回は pem ファイルを作り直したので, 移動させてパーミッションを変更する.

mv ~/Download/new.pem ~/.ssh/
chmod 400 ~/.ssh/new.pem

早速接続する.

ssh -i ~/.ssh/new.pem ubuntu@ec2-**-**-**-**.ap-northeast-1.compute.amazonaws.com

authorized_keys から pem を削除して, 自分の public key を追加する.

vi ~/.ssh/authorized_keys

自分が GitHub に追加した公開鍵は以下でも参照できる.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8GeeRUxOPn0H0lSeX50WxFhwYJ7+//ueVfns1vDBZyAwNDk8cx/gXo2nqNhGkuvOyMp0vetrHVtYxfuTR1vSNmjpYuNrxfGXTmSxbD8eXdY+6S+KQz2kG0Ly+vNVvQYWoElj1kYaFNKyr2bMfYX/XbULl6SWpuyTXmXwZqSRgjPZ4K0ZcxxqAvaEQxUXE2s2BbBzjvre7SZXj61XkrPlK3o/JIMecTU+n2F9yF6C/xcme8umV98+Qy7zHGqysGE1DRoxf7kAxkAiNCCes8INEQRz/67nQJSqpvVYKKx1jSzm8NVYfXB0VruHFqCa2v/8VTqbYVYhZsJzLoLDwry8P sqrtxx@gmail.com

追加したら, ローカルの ~/.ssh/config にサーバー情報を載せる.

Host bitcoin
  User ubuntu
  Port 22
  HostName **.**.**.**
  IdentityFile ~/.ssh/id_rsa.github.com.sqrtxx

接続してみて成功したら authorized_keys から
new.pem のほうを削除する.

Bitcoin Core のインストール

以下に導入方法が載っている.

Running A Full Node - Bitcoin
https://bitcoin.org/en/full-node#linux-instructions

まずリポジトリを追加する.

sudo apt-add-repository ppa:bitcoin/bitcoin -y

apt-get を更新する.

sudo apt-get update -y

GUI が必要な場合は bitcoin-qt を入れる (今回は CUI オンリーなので入れない)

 sudo apt-get install bitcoin-qt -y

Bitcoin Core デーモンを入れる.

sudo apt-get install bitcoind -y

Bitcoin Core デーモン

transaction の index のために, $HOME/.bitcoin/bitcoin.conf を作成し, 以下を追加する.

txindex=1

以下のコマンドで Bitcoin Core デーモンプロセスが立ち上がる.

bitcoind -daemon

立ち上げると, Block を取得しだす.
以下のコマンドを叩くと, 取得状況を確認できる

$ bitcoin-cli getinfo
{
  "version": 140200,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 960,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 1,
  "testnet": false,
  "keypoololdest": 1505219747,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

わりとすぐ取得開始する.
現在は約 48 万 Blocks 積み上がっており, Bitcoin Core 14.0 からはだいたい 6 時間程度で取得完了するらしい.

Bitcoin Core :: Bitcoin Core 0.14.0 Released with Performance Improvements
https://bitcoincore.org/en/2017/03/08/release-0.14.0/

以前の文献では数日程度と表現されており, Bitcoin Core 13.2 で 1 日と 12 時間程度かかっていたようだから, かなりの改善がされているようだ.

bitcoin-cli の基本的なコマンド

以下にクイックリファレンスがある.

Developer Reference - Bitcoin
https://bitcoin.org/en/developer-reference#rpc-quick-reference

現在の状況を確認する

$ bitcoin-cli getinfo

接続数を確認する

$ bitcoin-cli getconnectioncount

接続先を確認する

$ bitcoin-cli getpeerinfo

ブロックハッシュを取得する

$ bitcoin-cli getblockhash 0
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

ブロックの情報を取得する

$ bitcoin-cli getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
{
  "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
  "confirmations": 235626,
  "strippedsize": 285,
  "size": 285,
  "weight": 1140,
  "height": 0,
  "version": 1,
  "versionHex": "00000001",
  "merkleroot": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
  "tx": [
    "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
  ],
  "time": 1231006505,
  "mediantime": 1231006505,
  "nonce": 2083236893,
  "bits": "1d00ffff",
  "difficulty": 1,
  "chainwork": "0000000000000000000000000000000000000000000000000000000100010001",
  "nextblockhash": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048"
}
14
9
0

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
14
9