Blockchain開発 はじめの第⼀歩
〜bitcoindによるWeb開発⼊⾨〜
株式会社キューブシステム
⼩渕 周(Shu Kobuchi)
BlockchainHub D-Members LT 2017/02/27
Copyright © 2017 CUBE SYSTEM INC. All Rights Reserved.
⾃⼰紹介と会社紹介
2
⽒名:⼩渕 周(Shu Kobuchi)
株式会社キューブシステム ⻄⽇本システム本部(⼤阪)
前職のWebベンチャーにてBitcoin Webウォレットアプリ開発
4⽉からは東京本社 技術戦略室にて、ブロックチェーンを中⼼に先
端技術の研究と戦略⽴案に従事予定
キューブシステムはブロックチェーンハブ コーポレート会員
Copyright © 2017 CUBE SYSTEM INC. All Rights Reserved.
Blockchain何から学ぶ?
3
• Bitcoin, Ethereum, Hyper Ledger, NEM, mijin, etc…
• Bitcoinは元祖ブロックチェーン
• 開発の情報量がBlockchainの中では⼀番多い(次はEthereum)
• Bitcoinは送⾦機能のみ(Ethereumは送⾦+スマートコントラクト)
• “Mastering Bitcoin”など詳細まで解説した書籍がある
Copyright © 2017 CUBE SYSTEM INC. All Rights Reserved.
環境構築と情報源
4
• Macなら、Virtual Box + Vagrant
• WindowsならMSYSで VirtualBox + Vagrant利⽤可能
• Linux OSはUbuntu(Cent OSは⾯倒)
• $ vagrant init bento/ubuntu-16.04
• bentoのubuntu16.04イメージなら『ブロックチェーン 仕組みと理論』(リック
テレコム)記載のインストール法で綺麗に⼊った
Copyright © 2017 CUBE SYSTEM INC. All Rights Reserved.
Testnet起動
5
• 開発者と実験の場としてTestnetがある
• Segwitがアクティベート済
• $ bitcoind –testnet –txindex
• bitcoindで起動(起動後、ブロックを#1から取得する)
• -testnetオプションでtestnetモード
• -txindexオプションで全取引履歴取得
• -txindexを付けないと、全ブロックと⾃ノードの取引履歴のみ
• -reindexで-txindex有無の切り替え可能
• $ bitcoind –testnet –reindex –txindex
Copyright © 2017 CUBE SYSTEM INC. All Rights Reserved.
設定ファイル
6
• /.bitcoin/bitcoin.conf
• 常時testnet 、txindexモードにし、JSON-RPCをアクティブに
• 詳細は以下のリンク参照
• https://en.bitcoin.it/wiki/
Running_Bitcoin#Bitcoin.conf_Configuration_File
JSON-RPCを”1”でアクティブ
ユーザID/Password
そのまま使わないで
全取引履歴取得モード
testnetモード”3”
Testnetのポート番号
Copyright © 2017 CUBE SYSTEM INC. All Rights Reserved.
bitcoin-cli
7
• $ bitcoin-cli getinfo
• 最新のブロックまで取得するまで待つ(bitcoin-cli getinfoで確認)
• TestnetのBlockchain Explore https://live.blockcypher.com/btc-testnet/
• “Mastering Bitcoin”(⽶オライリー:Web版は無料) 邦訳はNTT出版より
http://chimera.labs.oreilly.com/books/1234000001802/index.html
Copyright © 2017 CUBE SYSTEM INC. All Rights Reserved.
Testnet⽤BTCを⼊⼿
8
• $ bitcoin-cli getnewaddress でアドレスを⽣成したら、TestBTCを⼊⼿
• TestnetのBTCを配布しているサイト Faucet(下記は例:他のサイトも)
• http://tpfaucet.appspot.com/
• テストに使い終わったら返しましょう

Blockchain開発 はじめの第一歩 〜bitcoindによるWeb開発入門〜

  • 1.
  • 2.
    Copyright © 2017CUBE SYSTEM INC. All Rights Reserved. ⾃⼰紹介と会社紹介 2 ⽒名:⼩渕 周(Shu Kobuchi) 株式会社キューブシステム ⻄⽇本システム本部(⼤阪) 前職のWebベンチャーにてBitcoin Webウォレットアプリ開発 4⽉からは東京本社 技術戦略室にて、ブロックチェーンを中⼼に先 端技術の研究と戦略⽴案に従事予定 キューブシステムはブロックチェーンハブ コーポレート会員
  • 3.
    Copyright © 2017CUBE SYSTEM INC. All Rights Reserved. Blockchain何から学ぶ? 3 • Bitcoin, Ethereum, Hyper Ledger, NEM, mijin, etc… • Bitcoinは元祖ブロックチェーン • 開発の情報量がBlockchainの中では⼀番多い(次はEthereum) • Bitcoinは送⾦機能のみ(Ethereumは送⾦+スマートコントラクト) • “Mastering Bitcoin”など詳細まで解説した書籍がある
  • 4.
    Copyright © 2017CUBE SYSTEM INC. All Rights Reserved. 環境構築と情報源 4 • Macなら、Virtual Box + Vagrant • WindowsならMSYSで VirtualBox + Vagrant利⽤可能 • Linux OSはUbuntu(Cent OSは⾯倒) • $ vagrant init bento/ubuntu-16.04 • bentoのubuntu16.04イメージなら『ブロックチェーン 仕組みと理論』(リック テレコム)記載のインストール法で綺麗に⼊った
  • 5.
    Copyright © 2017CUBE SYSTEM INC. All Rights Reserved. Testnet起動 5 • 開発者と実験の場としてTestnetがある • Segwitがアクティベート済 • $ bitcoind –testnet –txindex • bitcoindで起動(起動後、ブロックを#1から取得する) • -testnetオプションでtestnetモード • -txindexオプションで全取引履歴取得 • -txindexを付けないと、全ブロックと⾃ノードの取引履歴のみ • -reindexで-txindex有無の切り替え可能 • $ bitcoind –testnet –reindex –txindex
  • 6.
    Copyright © 2017CUBE SYSTEM INC. All Rights Reserved. 設定ファイル 6 • /.bitcoin/bitcoin.conf • 常時testnet 、txindexモードにし、JSON-RPCをアクティブに • 詳細は以下のリンク参照 • https://en.bitcoin.it/wiki/ Running_Bitcoin#Bitcoin.conf_Configuration_File JSON-RPCを”1”でアクティブ ユーザID/Password そのまま使わないで 全取引履歴取得モード testnetモード”3” Testnetのポート番号
  • 7.
    Copyright © 2017CUBE SYSTEM INC. All Rights Reserved. bitcoin-cli 7 • $ bitcoin-cli getinfo • 最新のブロックまで取得するまで待つ(bitcoin-cli getinfoで確認) • TestnetのBlockchain Explore https://live.blockcypher.com/btc-testnet/ • “Mastering Bitcoin”(⽶オライリー:Web版は無料) 邦訳はNTT出版より http://chimera.labs.oreilly.com/books/1234000001802/index.html
  • 8.
    Copyright © 2017CUBE SYSTEM INC. All Rights Reserved. Testnet⽤BTCを⼊⼿ 8 • $ bitcoin-cli getnewaddress でアドレスを⽣成したら、TestBTCを⼊⼿ • TestnetのBTCを配布しているサイト Faucet(下記は例:他のサイトも) • http://tpfaucet.appspot.com/ • テストに使い終わったら返しましょう