Via Tokyo

東京経由--行き

bitcoin coreをUbuntuにInstallしただけ

Bitcoin

bitcoin core

github.com

環境

ubuntuのversion確認

$ cat /etc/issue

package list の update

$ sudo apt-get update

Install Bitcoin Core

$ mkdir bitcoincore && cd bitcoincore
$ mkdir src && cd src
$ git clone https://github.com/bitcoin/bitcoin.git

install gcc

gccとは、C言語プログラムを作成するためにコンパイラ

$ sudo apt-get install build-essential automake pkg-config libevent-dev bsdmainutils

install OpenSSL

OpenSSLとは、SSLTLSの機能を実装した、OSSのライブラリ

$ sudo apt-get install libtool autotools-dev autoconf
$ sudo apt-get install libssl-dev

install boost

boostとは、C++の先駆的な開発者のコミュニティ、およびそのコミュニティによって公開されているオープンソースライブラリのこと

$ sudo apt-get install libbost-all-dev

install libdb4.8

$ sudo add-apt-repository ppa:bitcoin/bitcoin
$ sudo apt-get update
$ sudo apt-get install libdb4.8-dev
$ sudo apt-get install libdb4.8++-dev

関連ライブラリのInstall

$ sudo apt-get install libminiupnpc-dev
$ sudo apt-get install libqrencode-dev

GUI LibraryのInstall

$ sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

build

$ cd bitcoin
$ ./autogen.sh
$ ./configure
$ make

install

$ sudo make install

Bitcoin Coreの起動

テストモード

  • Testnet : インターネット上で稼働しているテストネットワーク
  • Regtest : ローカルPC内のテストネットワーク
# start
$ bitcoind -regtest -deamon &

# stop
$ bitcoin-cli -regtest stop

Blockの生成

101BTC 生成する

$ bitcoin-cli -regtest generate 101
[
  "204b980adc1aad448ece9973dd50b71e8dc3f53768db137618e45c2bb9ff6ad1",
    ・
    ・
    ・
  "2095f81f050503c0ad4b05e2a2b68704d3629d320f0353aa9fa72ecbfe24b70c"
]

Block数の確認

101BTCあるはず

$ bitcoin-cli -regtest getblockcount
101

アカウントの生成

$ bitcoin-cli -regtest getnewaddress test01
mnNT3imKg8iRT4dnpkiTTzjFsZYKe8QB1F

残高の確認

$ bitcoin-cli -regtest getbalance
50.00000000

※ blockを生成した報酬として50BTC口座に存在する。

特定アカウントの残高確認

$ bitcoin-cli -regtest getbalance test01
0.00000000

送金

test01のアドレス宛に10BTC送金する

$ bitcoin-cli -regtest sendtoaddress mnNT3imKg8iRT4dnpkiTTzjFsZYKe8QB1F 10
3610f889307cc949516ed34187012fa65eb4a18fcfca9c8a1c72afac256cf1f7

トランザクションの確認

$ bitcoin-cli -regtest listunspent
[
]

出力されない。これはトランザクションが確定してないため。

未確定トランザクションの確認

$ bitcoin-cli -regtest listunspent 0
[
  {
    "txid": "3610f889307cc949516ed34187012fa65eb4a18fcfca9c8a1c72afac256cf1f7",
    "vout": 0,
    "address": "mjsZ2mVxbNSU8TtP29RaCVjruKHzEcUvKG",
    "scriptPubKey": "76a9142fc5d1a34ce8e6b55b204d804897b03537d356e488ac",
    "amount": 39.99996160,
    "confirmations": 0,
    "spendable": true,
    "solvable": true,
    "safe": true
  },
  {
    "txid": "3610f889307cc949516ed34187012fa65eb4a18fcfca9c8a1c72afac256cf1f7",
    "vout": 1,
    "address": "mnNT3imKg8iRT4dnpkiTTzjFsZYKe8QB1F",
    "account": "test01",
    "scriptPubKey": "76a9144b2d2376446b5d58cf784fb6c9cd19e36cf49fa788ac",
    "amount": 10.00000000,
    "confirmations": 0,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

マイナーの残高の確認

$ bitcoin-cli -regtest getbalance
49.99996160

減っている。理由は送金の手数料。

マイニング

マイニングによってトランザクションがblockに書き込まれる。それによって送金が確定する。

$ bitcoin-cli -regtest generate 1
[
 "42d1a4a79ea3a6ab7ef250e41609a1d3438bf4b109150100d1c0b8f7e7e28221"
]

送金の確認

未確定のトランザクションが確定したはず

$ bitcoin-cli -regtest listunspent
[
  {
    "txid": "6733e1a24c9df10438a7bbdad1eb642fbc18eded25da2dfb67c17ad0335db7b8",
    "vout": 0,
    "address": "mnUYByQRXmuQKvcMp4j6DysMNcHjakKfnX",
    "scriptPubKey": "21027b7406188f545d20e71e42d2f83ce3109aad6cff4061b73d6b91334175932109ac",
    "amount": 50.00000000,
    "confirmations": 101,
    "spendable": true,
    "solvable": true,
    "safe": true
  },
  {
    "txid": "3610f889307cc949516ed34187012fa65eb4a18fcfca9c8a1c72afac256cf1f7",
    "vout": 0,
    "address": "mjsZ2mVxbNSU8TtP29RaCVjruKHzEcUvKG",
    "scriptPubKey": "76a9142fc5d1a34ce8e6b55b204d804897b03537d356e488ac",
    "amount": 39.99996160,
    "confirmations": 1,
    "spendable": true,
    "solvable": true,
    "safe": true
  },
  {
    "txid": "3610f889307cc949516ed34187012fa65eb4a18fcfca9c8a1c72afac256cf1f7",
    "vout": 1,
    "address": "mnNT3imKg8iRT4dnpkiTTzjFsZYKe8QB1F",
    "account": "test01",
    "scriptPubKey": "76a9144b2d2376446b5d58cf784fb6c9cd19e36cf49fa788ac",
    "amount": 10.00000000,
    "confirmations": 1,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

test01の残高確認

$ bitcoin-cli -regtest getbalance test01
10.00000000