SlideShare a Scribd company logo
1 of 45
TECHNOMOBILE
GROUP
HEAD OFFICE
TOKUSHIMA development section
| 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan
| 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan
ブロックチェーンを理解して応援する
「熊本がんばれ募金ハック」サイト作成ハンズオン
2
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
またもや悲しいことが起きてしまいました
3
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
心配・自粛だけでは未来は作れません。
エンジニアはエンジニアらしく支援しま
しょう。
4
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinなどのブロックチェーンの技術を使
うと募金サイトが簡単に作れます。
ブロックチェーンを学びながら熊本・大分
を支援しませんか?
5
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
熊本がんばれ
6
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
みなさんBitcoin知ってますか?
7
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
逮捕されたり。。。仮想だし。。。
なんか怖いですよね
8
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
マウントゴックスの件は、不正会計や
かってに送金されただけで、Bitcoinの
セキュリティーをがハックされたわけ
ではないのです。
9
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
上下しながら取引されています。
10
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinで使われているブロックチェー
ンは通貨だけではなく広くサービスと
して使われつつあります。管理サー
バー無しで。。
Swarm
クラウドファンディングのプラットフォーム
Storjcoin X
分散型ストレージサービス
Gems
分散型メッセンジャーアプリ
LTBcoin
「Let's Talk Bitcoin」というビットコインのPodcastサービスの広告枠の利用等
に使用
11
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinを使ってブロックチェーン募金
サイトを作成しましょう。
ブロックチェーン上の本格的なサービ
ス構築はどこかの機会で、Ethereum
とか????
12
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
下記のような募金サイトを作ります。
何を作るの?
主に自分のBitcoinのお財布から寄付サイト(Bitcoinのお財布)に送金するプログラ
ムからなります。http://bitcoindonatemogi.appspot.com/
13
「Bitcoinを購入しましょう」ページを参考にBitcoinを購入しておいてください。時
間がかかることがあるので早めに購入しておいてください。
「Google Cloud Platformへの登録」を参考に登録してください。
「「Google App Engine SDK for PHP」をインストール」を参考にSDKをインストールしてお
いてください。
6
事前準備
14
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
この学びの対象者は?
→Macを使えるPHP初心者。PHPがわからな
くてもとりあえず本番までUPできます。
Windows環境でも動くと思います。
「Windows環境補足」のページを見て理解で
きる人が対象です。
教えないことは?
→ブロックチェーンの専門家ではないの
で。。。あ、最近ブロックチェーンのイスラエルの会社、ゼロビ
ルバンク(http://www.zerobillbank.com/ )にJoinしました。
わかったことがあったらフィードバックくだ
さい。
15
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
講師
Gashfara,Inc.代表
デジタルハリウッド大学院客員講師
茂木健一
mogi@gashfara.com
kenichi.mogi@tcmobile.jp
http://facebook.com/mogiken
http://www.slideshare.net/mogiken1
自己紹介
[プロフィール/実績]
もぎ・けんいち●青山学院大学大学院卒。Gashfara,Inc.代表。本社はハワイですが出社したことなし。
ホノルルマラソンには参加w
青山学院大学大学院卒:エニックスでオリジナルゲーム制作(Z80アセンブラ CP/M)、SmallTalkで
人工知能開発(企業買収)。
(株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッション
ウォーカー(えびもえのEC)など数社のベンチャー企業の立ち上げ・創業期に参画し、ガシュファ
ラ・インクをUSで起業。システム開発ではゲーム、TOL(ツタヤオンライン)の立ち上げ。動画配
信システム(USENのGate01:Gyaoの前進)、電子マネーシステム(Bitcash)、ECフルフィルメント
システムなど、多彩な分野を経験。IT関連教育では1998年ころからデジハリの2.5階に間借りしな
がら教育コンテンツ作成(JIB社)。Brew、Java、セキュリティーなどの講師として活躍。現在、
(株)HUGGを設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノ
モバイルにて技術顧問。㈱SGPにてドローンのソフトウェア開発もしています。
【著書】
BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516の極意[共著](秀和
システム)
16
成長を実現させるシステム”モバイルトータルソリュー
ション”
Web
システム
1
スマホ
アプリ
2 ゲーム
アプリ
3
モバイルトータルソリューション
B2B2C
• コンシューマ向けの大規模Webシステムの開発からアプリ・ゲーム開発までをマルチデバイスで対応
高い技術力 市場ニーズとマッチ
大規模
Webシステム
に強い
Java,PHP
Strong1
最先端技術・独自
フレームワークで
効率的な
開発
Strong2
高トラフィック、
インフラ
ネットワーク
に強い
Strong3 プライマリー
ベンダー、
ヒアリング・
要件定義
に強い
StrongⅠ
情報資産の活用
最先端と
知見に強い
StrongⅡ
最先端のマルチ
デバイス
ウェアラブルに
強い
StrongⅢ
Mashup Awards 5年連続 受賞
会社名 株式会社テクノモバイル
設 立 2008年
資本金 2,500万円
代 表 播田 誠
従業員数 100名(グループ合計)
本社所在地
〒 107-0062
東京都港区南青山7-1-5 コラム南青山 5F
開発室
〒771-0134
徳島県徳島市川内町平石住吉209-5
徳島健康科学総合センター 3F
17
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinとは
・2009年から運用が始まった仮想通貨。単
位:BTC
・管理サーバーを持たず、ルールに基づいた
P2Pネットワーク上に信用のもと構築・運用
・手数料が安い
・信用はブロックチェーンの仕組み。
・誰でも情報にアクセスして検証することが
できる
・取引所で現金化も可能
・実店舗でも利用可能。
http://jpbitcoin.com/shops
※ここがわかりやすい。
http://gigazine.net/news/20131007
-what-is-bitcoin/
18
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ブロックチェーンとは
・この解説が一番わかり易い。
http://www.slideshare.net/cookle/5-58379474
こまかいロジックはBitcoinのソースコードを
読むのが正解らしい。。。
※ポイントは。。。。
チェーンの改ざんを抑止するためにハッシュ値の計算(マイニング)
する難しさを定期的に調整しているが、調整が間に合わないような高速
演算できる環境を持ち込まれると長いチェーンを作成されてしまい、改
ざんできる余地がある。→完璧ではない。十分難しい状態のまま。
19
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
・この書籍がわかりやすい。おすすめ
http://goo.gl/Yciz4Y
20
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinの入手方法
・ビットコインをお小遣いサイトで手に入れ
る
・ビットコイン取引所で購入する
→いちばんお手軽
・ビットコインマイニング
21
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinを購入しましょう(事前準備)
Coincheckでの購入例 https://coincheck.jp
coincheckのAPIを使って募金をするのでcoincheckで購入してください
22
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
毎日のようにレートが変わります。銀行振込またはクレジットカードで購入可能
です。クレジットカードで購入するには与信確認のため1週間ほど入金に時間が
かかります。営業時間内なら銀行振り込みはすぐに入金されます。
銀行振込で入金した場合、日本円のままですので「ビットコインを買う」で
Bitcoinに交換するのを忘れないで下さい。
バグのためBitcoinを全額盗られる可能性も有り得るので、
必要最低限の金額だけ入金してください。数百円とか。
動作確認して問題がないことを確認してから寄付したい金
額を入金しましょう。
23
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinの送金
Bitcoinの送金はBitcoinアドレスを指定して
送金します。かなり匿名性が高いです。
自分のアドレスは下記で確認できます。
24
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
サーバー環境の構築
サーバーはGAE(Google App Engine)を使い
ます。
PHPやPythonが予め用意されているサー
バー環境です。PaaS
よほどの大量アクセスがない限り無料枠で
使えます。
参考:
http://koni.hateblo.jp/entry/2016/01/05/19000
0_1
25
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Google Cloud Platformへの登録(事前準備)
Google Cloud Platformへの登録することに
よりGAEが使えるようになります。
Googleのアカウントを用意して
https://console.cloud.google.com/ にアク
セスして登録してください。無料期間もあ
るのでクレジットカードなども登録してく
ださい。
カードが登録されていないと本番で重い処理が実行できないようです。
プロジェクトの支払いアカウントが登録されていない時も同様です。
無料枠にこだわりたい時はここを参考
http://koni.hateblo.jp/entry/2016/01/06/130613
26
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
「Google App Engine SDK for PHP」をイ
ンストール(事前準備)
https://cloud.google.com/appengine/downloa
ds?hl=ja にアクセスし「Google App
Engine SDK for PHP」をインストールして
ください。
※質問が表示されたら、答えはデフォルトのままでOK.
27
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
GAEのプロジェクトを作成
https://console.developers.google.com/project にアクセスし、
「プロジェクトの作成」からプロジェクト
を作成してください。
28
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
プロジェクト名は「bitcoindonatemogi」など分かり
やすい名前にしてください。
プロジェクトを作成すると自動的にプロジェクトIDが作成されます、こ
れをSDKでアプリを作成するときに使うのでメモしておいてください。
29
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
GAEアプリを作成
GAEのSDKをインストールすると「GoogleAppEngineLauncher」がイ
ンストールされています。これを起動してローカルPCで開発するため
のアプリを作成します。左下の+から作成します。
30
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
作成済みの「プロジェクトID」を指定。プロジェクト名
ではありません。
アプリの保存場所
使用言語PHPを指定
ローカルで動かすためのポートを指定
このように保存場所にファイルが作成されます
31
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ローカルでアプリを実行しましょう
Launcherから作成したアプリを選択し、Runボタンを押せば起動します。
ブラウザからhttp://localhost:8080/ を指定し、HelloWorldが表示されれば
OKです。
このようにローカルでアプリの動作確認をしながら開発を行います。
32
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
本番サーバーにUP
Launcherから作成したアプリを選択し、Deployボタンを押せばGAEサー
バーにUPされます。ログに「Deployment successful.」が表示されればOK。
初回だけアカウントの認証を求められますので「Google Cloud Platformへの
登録」で登録した同じアカウントで認証してください。
ブラウザから http:// [プロジェクトID].appspot.com/ を指定し、
HelloWorldが表示されればOKです。プロジェクトIDがサブドメインになり
ます。
このように本番リリースを行います。
33
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
coincheck APIを使う
Bitcoinの送金機能を実装するには公開されているBitcoinのクライアントプ
ロセスbitcoindをサーバーにインストールして実装します。これは難しいの
で、Bitcoinを購入したサイト「coincheck」にBitcoinを操作するためのAPI
が公開されているのでこれを使います。
GAEアプリ
自分のBitcoinお財布
寄付先のBitcoinお財布
coincheck
API
送金指示
送金指示 送金(マイニング)
Bitcoin網
34
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
coincheck APIの設定
APIを使うにはアクセスするための設定が必要です。
https://coincheck.jp/api_settings にアクセスして設定します。
パスワードの設定を聞かれる場合があります。設定
してください。
35
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
追加ボタンを押す
36
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
APIで使う必要な機能だけチェックします
送金先を寄付の送金先であるBitcoinアドレス
1Pu73sEiRwYN9jby9EftLii5b9Mgi21XnT
に限定します。https://coincheck.jp/donations/12
設定した自分のパスワードを入力
37
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
設定が完了するとキーが作成されます。
アクセスキーとシークレットアクセスキーをメモしてください。PHPのプ
ログラムで使います。
38
アプリを作成します。すでに作成済みのアプリがあるのでそれを元に自分
のアプリを作成しましょう。
まずは、LauncherのStopボタンを押してアプリを停止してください。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
プログラムの作成
39
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
https://goo.gl/HnbicX からファイルをダウンロード&解凍し、アプリを保存
しているフォルダーにすべてコピーしてください。上書き保存しましょう。
下記のような構成になります。
main.php TopページのPHP
send.php 送金ページのPHP
common.php 共通処理のPHP(ここにcoincheckAPIのアクセスキー
を設定します)
app.yaml アプリの設定ファイル
coincheck coincheckAPIのPHPライブラリー
composerでインストール設定していま
す。
詳細はhttps://github.com/coincheckjp/coincheck-php
php.ini GAEで使うライブラリの追加設定
40
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
app.yamlをテキストエディタで開いてapplication部分を自分のGAEで設定したプロ
ジェクトIDに変更してください。プロジェクト名ではありません。
[プロジェクトID]
41
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
common.phpをテキストエディタで開いてcoincheckAPIの設定で得られた、アクセ
スキーとシークレットアクセスキーを設定してください。重要な情報ですので、
Githubなどに公開しないように注意してください。
[アクセスキー] [シークレットアクセスキー]
42
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ローカルでアプリの動作確認をしましょう
Launcherからアプリを選択し、Runボタンを押せば起動します。
ブラウザからhttp://localhost:8080/ を指定し、「募金サイト」が表示され
ればOKです。
43
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
簡単にソースコードの解説をします。
あとは、main.php , send.phpにHTMLが記述されているので好きにデザイ
ンを変更しましょう。phpファイルを変更してもアプリを再起動する必要
はありません。自動的に取り込んでくれます。
動作確認をして問題なければ、本番にUPして公開しましょう。
送金されたかどうかはcoincheckのホーム画面で確認できます。
44
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
・Windows環境ではcurl環境の設定が必要で
す。下記のサイトを参考に対応してください。
Apacheの部分はLauncherに読み替えましょ
う。http://ameblo.jp/utkworks/entry-
10386784772.html
Windows環境補足
45
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
・Bitcoinを使ったサービスの提案
例)広告を見たらBitcoinがもらえる
適用事例(経営者・営業担当の方に)

More Related Content

Viewers also liked

ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
健一 茂木
 

Viewers also liked (20)

Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
 
Cocos2d js セットアップ for windows
Cocos2d js セットアップ for windowsCocos2d js セットアップ for windows
Cocos2d js セットアップ for windows
 
5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み
 
図解 Blockchainの仕組み
図解 Blockchainの仕組み図解 Blockchainの仕組み
図解 Blockchainの仕組み
 
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
デジタルハリウッド大学院 ブロックチェーン研究会第三回 2016年8月25日
 
Docker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころDocker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころ
 
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング
Java script初心者のためのnode.jsで学ぶドローン制御プログラミングJava script初心者のためのnode.jsで学ぶドローン制御プログラミング
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング
 
ブロックチェーン連続講義 第3回 ビットコインの技術
ブロックチェーン連続講義 第3回 ビットコインの技術ブロックチェーン連続講義 第3回 ビットコインの技術
ブロックチェーン連続講義 第3回 ビットコインの技術
 
Tensorflowのチュートリアルで理解するdeep learningはじめてハンズオン
Tensorflowのチュートリアルで理解するdeep learningはじめてハンズオンTensorflowのチュートリアルで理解するdeep learningはじめてハンズオン
Tensorflowのチュートリアルで理解するdeep learningはじめてハンズオン
 
ブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクトブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクト
 
Blockchain入門 20160416
Blockchain入門 20160416Blockchain入門 20160416
Blockchain入門 20160416
 
パネル 4feb
パネル 4febパネル 4feb
パネル 4feb
 
ビットコイン送金の基礎と「Mt.Gox事件」を知る
ビットコイン送金の基礎と「Mt.Gox事件」を知るビットコイン送金の基礎と「Mt.Gox事件」を知る
ビットコイン送金の基礎と「Mt.Gox事件」を知る
 
Mastering Bitcoin日本語訳の裏
Mastering Bitcoin日本語訳の裏Mastering Bitcoin日本語訳の裏
Mastering Bitcoin日本語訳の裏
 
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
 
シンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオン
シンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオンシンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオン
シンプルな9つのサンプルで学ぶJava Script初心者のためのAngularJS超入門ハンズオン
 
Bitcoinについて 2014年3月4日版
Bitcoinについて 2014年3月4日版Bitcoinについて 2014年3月4日版
Bitcoinについて 2014年3月4日版
 
『Bitcoinとプライバシー』@Bitcoin技術勉強会2015.07.20
『Bitcoinとプライバシー』@Bitcoin技術勉強会2015.07.20『Bitcoinとプライバシー』@Bitcoin技術勉強会2015.07.20
『Bitcoinとプライバシー』@Bitcoin技術勉強会2015.07.20
 
Blockchain and Big Data/IoT
Blockchain and Big Data/IoTBlockchain and Big Data/IoT
Blockchain and Big Data/IoT
 
ビットコイン~原理からソースまで~
ビットコイン~原理からソースまで~ビットコイン~原理からソースまで~
ビットコイン~原理からソースまで~
 

Similar to ブロックチェーンを理解して応援する「熊本がんばれ募金ハック」サイト作成ハンズオン

Similar to ブロックチェーンを理解して応援する「熊本がんばれ募金ハック」サイト作成ハンズオン (11)

"What is DAICO." by Taisuke Mino
"What is DAICO." by Taisuke Mino"What is DAICO." by Taisuke Mino
"What is DAICO." by Taisuke Mino
 
PaaSを使いこなす!「インフラSIer」の進化
PaaSを使いこなす!「インフラSIer」の進化PaaSを使いこなす!「インフラSIer」の進化
PaaSを使いこなす!「インフラSIer」の進化
 
Soracom ug#10:SORACOM Techonology Camp夜の部!東京支部活動報告
Soracom ug#10:SORACOM Techonology Camp夜の部!東京支部活動報告Soracom ug#10:SORACOM Techonology Camp夜の部!東京支部活動報告
Soracom ug#10:SORACOM Techonology Camp夜の部!東京支部活動報告
 
ICO超入門 〜構造・技術・実務〜 早稲田大学稲門会講演
ICO超入門 〜構造・技術・実務〜 早稲田大学稲門会講演ICO超入門 〜構造・技術・実務〜 早稲田大学稲門会講演
ICO超入門 〜構造・技術・実務〜 早稲田大学稲門会講演
 
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
 
クルマ情報を扱うREST APIの仕様と課題について
クルマ情報を扱うREST APIの仕様と課題についてクルマ情報を扱うREST APIの仕様と課題について
クルマ情報を扱うREST APIの仕様と課題について
 
「The Things Networkの生い立ちとTNN Japanユースケース」
「The Things Networkの生い立ちとTNN Japanユースケース」「The Things Networkの生い立ちとTNN Japanユースケース」
「The Things Networkの生い立ちとTNN Japanユースケース」
 
日本で初開催!WebRTC Conference Japanに無料で入場する方法
日本で初開催!WebRTC Conference Japanに無料で入場する方法日本で初開催!WebRTC Conference Japanに無料で入場する方法
日本で初開催!WebRTC Conference Japanに無料で入場する方法
 
Tezso and on-chain governanace: towards "Kyoto amendment"
Tezso  and on-chain governanace: towards "Kyoto amendment"Tezso  and on-chain governanace: towards "Kyoto amendment"
Tezso and on-chain governanace: towards "Kyoto amendment"
 
メイカーズ*アジア 成都メイカーフェア資料
メイカーズ*アジア 成都メイカーフェア資料メイカーズ*アジア 成都メイカーフェア資料
メイカーズ*アジア 成都メイカーフェア資料
 
尼崎から世界へ!モノタロウの海外展開を支えるDevOps基盤 (デブサミ関西2016)
尼崎から世界へ!モノタロウの海外展開を支えるDevOps基盤 (デブサミ関西2016)尼崎から世界へ!モノタロウの海外展開を支えるDevOps基盤 (デブサミ関西2016)
尼崎から世界へ!モノタロウの海外展開を支えるDevOps基盤 (デブサミ関西2016)
 

ブロックチェーンを理解して応援する「熊本がんばれ募金ハック」サイト作成ハンズオン

  • 1. TECHNOMOBILE GROUP HEAD OFFICE TOKUSHIMA development section | 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan | 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan ブロックチェーンを理解して応援する 「熊本がんばれ募金ハック」サイト作成ハンズオン
  • 2. 2 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 またもや悲しいことが起きてしまいました
  • 3. 3 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 心配・自粛だけでは未来は作れません。 エンジニアはエンジニアらしく支援しま しょう。
  • 4. 4 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Bitcoinなどのブロックチェーンの技術を使 うと募金サイトが簡単に作れます。 ブロックチェーンを学びながら熊本・大分 を支援しませんか?
  • 5. 5 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 熊本がんばれ
  • 6. 6 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 みなさんBitcoin知ってますか?
  • 7. 7 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 逮捕されたり。。。仮想だし。。。 なんか怖いですよね
  • 8. 8 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 マウントゴックスの件は、不正会計や かってに送金されただけで、Bitcoinの セキュリティーをがハックされたわけ ではないのです。
  • 9. 9 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 上下しながら取引されています。
  • 10. 10 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Bitcoinで使われているブロックチェー ンは通貨だけではなく広くサービスと して使われつつあります。管理サー バー無しで。。 Swarm クラウドファンディングのプラットフォーム Storjcoin X 分散型ストレージサービス Gems 分散型メッセンジャーアプリ LTBcoin 「Let's Talk Bitcoin」というビットコインのPodcastサービスの広告枠の利用等 に使用
  • 11. 11 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Bitcoinを使ってブロックチェーン募金 サイトを作成しましょう。 ブロックチェーン上の本格的なサービ ス構築はどこかの機会で、Ethereum とか????
  • 12. 12 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 下記のような募金サイトを作ります。 何を作るの? 主に自分のBitcoinのお財布から寄付サイト(Bitcoinのお財布)に送金するプログラ ムからなります。http://bitcoindonatemogi.appspot.com/
  • 14. 14 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 この学びの対象者は? →Macを使えるPHP初心者。PHPがわからな くてもとりあえず本番までUPできます。 Windows環境でも動くと思います。 「Windows環境補足」のページを見て理解で きる人が対象です。 教えないことは? →ブロックチェーンの専門家ではないの で。。。あ、最近ブロックチェーンのイスラエルの会社、ゼロビ ルバンク(http://www.zerobillbank.com/ )にJoinしました。 わかったことがあったらフィードバックくだ さい。
  • 15. 15 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 講師 Gashfara,Inc.代表 デジタルハリウッド大学院客員講師 茂木健一 mogi@gashfara.com kenichi.mogi@tcmobile.jp http://facebook.com/mogiken http://www.slideshare.net/mogiken1 自己紹介 [プロフィール/実績] もぎ・けんいち●青山学院大学大学院卒。Gashfara,Inc.代表。本社はハワイですが出社したことなし。 ホノルルマラソンには参加w 青山学院大学大学院卒:エニックスでオリジナルゲーム制作(Z80アセンブラ CP/M)、SmallTalkで 人工知能開発(企業買収)。 (株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッション ウォーカー(えびもえのEC)など数社のベンチャー企業の立ち上げ・創業期に参画し、ガシュファ ラ・インクをUSで起業。システム開発ではゲーム、TOL(ツタヤオンライン)の立ち上げ。動画配 信システム(USENのGate01:Gyaoの前進)、電子マネーシステム(Bitcash)、ECフルフィルメント システムなど、多彩な分野を経験。IT関連教育では1998年ころからデジハリの2.5階に間借りしな がら教育コンテンツ作成(JIB社)。Brew、Java、セキュリティーなどの講師として活躍。現在、 (株)HUGGを設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノ モバイルにて技術顧問。㈱SGPにてドローンのソフトウェア開発もしています。 【著書】 BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516の極意[共著](秀和 システム)
  • 16. 16 成長を実現させるシステム”モバイルトータルソリュー ション” Web システム 1 スマホ アプリ 2 ゲーム アプリ 3 モバイルトータルソリューション B2B2C • コンシューマ向けの大規模Webシステムの開発からアプリ・ゲーム開発までをマルチデバイスで対応 高い技術力 市場ニーズとマッチ 大規模 Webシステム に強い Java,PHP Strong1 最先端技術・独自 フレームワークで 効率的な 開発 Strong2 高トラフィック、 インフラ ネットワーク に強い Strong3 プライマリー ベンダー、 ヒアリング・ 要件定義 に強い StrongⅠ 情報資産の活用 最先端と 知見に強い StrongⅡ 最先端のマルチ デバイス ウェアラブルに 強い StrongⅢ Mashup Awards 5年連続 受賞 会社名 株式会社テクノモバイル 設 立 2008年 資本金 2,500万円 代 表 播田 誠 従業員数 100名(グループ合計) 本社所在地 〒 107-0062 東京都港区南青山7-1-5 コラム南青山 5F 開発室 〒771-0134 徳島県徳島市川内町平石住吉209-5 徳島健康科学総合センター 3F
  • 17. 17 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Bitcoinとは ・2009年から運用が始まった仮想通貨。単 位:BTC ・管理サーバーを持たず、ルールに基づいた P2Pネットワーク上に信用のもと構築・運用 ・手数料が安い ・信用はブロックチェーンの仕組み。 ・誰でも情報にアクセスして検証することが できる ・取引所で現金化も可能 ・実店舗でも利用可能。 http://jpbitcoin.com/shops ※ここがわかりやすい。 http://gigazine.net/news/20131007 -what-is-bitcoin/
  • 18. 18 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ブロックチェーンとは ・この解説が一番わかり易い。 http://www.slideshare.net/cookle/5-58379474 こまかいロジックはBitcoinのソースコードを 読むのが正解らしい。。。 ※ポイントは。。。。 チェーンの改ざんを抑止するためにハッシュ値の計算(マイニング) する難しさを定期的に調整しているが、調整が間に合わないような高速 演算できる環境を持ち込まれると長いチェーンを作成されてしまい、改 ざんできる余地がある。→完璧ではない。十分難しい状態のまま。
  • 19. 19 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ・この書籍がわかりやすい。おすすめ http://goo.gl/Yciz4Y
  • 20. 20 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Bitcoinの入手方法 ・ビットコインをお小遣いサイトで手に入れ る ・ビットコイン取引所で購入する →いちばんお手軽 ・ビットコインマイニング
  • 21. 21 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Bitcoinを購入しましょう(事前準備) Coincheckでの購入例 https://coincheck.jp coincheckのAPIを使って募金をするのでcoincheckで購入してください
  • 22. 22 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 毎日のようにレートが変わります。銀行振込またはクレジットカードで購入可能 です。クレジットカードで購入するには与信確認のため1週間ほど入金に時間が かかります。営業時間内なら銀行振り込みはすぐに入金されます。 銀行振込で入金した場合、日本円のままですので「ビットコインを買う」で Bitcoinに交換するのを忘れないで下さい。 バグのためBitcoinを全額盗られる可能性も有り得るので、 必要最低限の金額だけ入金してください。数百円とか。 動作確認して問題がないことを確認してから寄付したい金 額を入金しましょう。
  • 23. 23 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Bitcoinの送金 Bitcoinの送金はBitcoinアドレスを指定して 送金します。かなり匿名性が高いです。 自分のアドレスは下記で確認できます。
  • 24. 24 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 サーバー環境の構築 サーバーはGAE(Google App Engine)を使い ます。 PHPやPythonが予め用意されているサー バー環境です。PaaS よほどの大量アクセスがない限り無料枠で 使えます。 参考: http://koni.hateblo.jp/entry/2016/01/05/19000 0_1
  • 25. 25 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Google Cloud Platformへの登録(事前準備) Google Cloud Platformへの登録することに よりGAEが使えるようになります。 Googleのアカウントを用意して https://console.cloud.google.com/ にアク セスして登録してください。無料期間もあ るのでクレジットカードなども登録してく ださい。 カードが登録されていないと本番で重い処理が実行できないようです。 プロジェクトの支払いアカウントが登録されていない時も同様です。 無料枠にこだわりたい時はここを参考 http://koni.hateblo.jp/entry/2016/01/06/130613
  • 26. 26 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 「Google App Engine SDK for PHP」をイ ンストール(事前準備) https://cloud.google.com/appengine/downloa ds?hl=ja にアクセスし「Google App Engine SDK for PHP」をインストールして ください。 ※質問が表示されたら、答えはデフォルトのままでOK.
  • 27. 27 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 GAEのプロジェクトを作成 https://console.developers.google.com/project にアクセスし、 「プロジェクトの作成」からプロジェクト を作成してください。
  • 28. 28 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 プロジェクト名は「bitcoindonatemogi」など分かり やすい名前にしてください。 プロジェクトを作成すると自動的にプロジェクトIDが作成されます、こ れをSDKでアプリを作成するときに使うのでメモしておいてください。
  • 29. 29 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 GAEアプリを作成 GAEのSDKをインストールすると「GoogleAppEngineLauncher」がイ ンストールされています。これを起動してローカルPCで開発するため のアプリを作成します。左下の+から作成します。
  • 30. 30 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 作成済みの「プロジェクトID」を指定。プロジェクト名 ではありません。 アプリの保存場所 使用言語PHPを指定 ローカルで動かすためのポートを指定 このように保存場所にファイルが作成されます
  • 31. 31 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ローカルでアプリを実行しましょう Launcherから作成したアプリを選択し、Runボタンを押せば起動します。 ブラウザからhttp://localhost:8080/ を指定し、HelloWorldが表示されれば OKです。 このようにローカルでアプリの動作確認をしながら開発を行います。
  • 32. 32 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 本番サーバーにUP Launcherから作成したアプリを選択し、Deployボタンを押せばGAEサー バーにUPされます。ログに「Deployment successful.」が表示されればOK。 初回だけアカウントの認証を求められますので「Google Cloud Platformへの 登録」で登録した同じアカウントで認証してください。 ブラウザから http:// [プロジェクトID].appspot.com/ を指定し、 HelloWorldが表示されればOKです。プロジェクトIDがサブドメインになり ます。 このように本番リリースを行います。
  • 33. 33 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 coincheck APIを使う Bitcoinの送金機能を実装するには公開されているBitcoinのクライアントプ ロセスbitcoindをサーバーにインストールして実装します。これは難しいの で、Bitcoinを購入したサイト「coincheck」にBitcoinを操作するためのAPI が公開されているのでこれを使います。 GAEアプリ 自分のBitcoinお財布 寄付先のBitcoinお財布 coincheck API 送金指示 送金指示 送金(マイニング) Bitcoin網
  • 34. 34 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 coincheck APIの設定 APIを使うにはアクセスするための設定が必要です。 https://coincheck.jp/api_settings にアクセスして設定します。 パスワードの設定を聞かれる場合があります。設定 してください。
  • 35. 35 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 追加ボタンを押す
  • 36. 36 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 APIで使う必要な機能だけチェックします 送金先を寄付の送金先であるBitcoinアドレス 1Pu73sEiRwYN9jby9EftLii5b9Mgi21XnT に限定します。https://coincheck.jp/donations/12 設定した自分のパスワードを入力
  • 37. 37 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 設定が完了するとキーが作成されます。 アクセスキーとシークレットアクセスキーをメモしてください。PHPのプ ログラムで使います。
  • 39. 39 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 https://goo.gl/HnbicX からファイルをダウンロード&解凍し、アプリを保存 しているフォルダーにすべてコピーしてください。上書き保存しましょう。 下記のような構成になります。 main.php TopページのPHP send.php 送金ページのPHP common.php 共通処理のPHP(ここにcoincheckAPIのアクセスキー を設定します) app.yaml アプリの設定ファイル coincheck coincheckAPIのPHPライブラリー composerでインストール設定していま す。 詳細はhttps://github.com/coincheckjp/coincheck-php php.ini GAEで使うライブラリの追加設定
  • 40. 40 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 app.yamlをテキストエディタで開いてapplication部分を自分のGAEで設定したプロ ジェクトIDに変更してください。プロジェクト名ではありません。 [プロジェクトID]
  • 41. 41 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 common.phpをテキストエディタで開いてcoincheckAPIの設定で得られた、アクセ スキーとシークレットアクセスキーを設定してください。重要な情報ですので、 Githubなどに公開しないように注意してください。 [アクセスキー] [シークレットアクセスキー]
  • 42. 42 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ローカルでアプリの動作確認をしましょう Launcherからアプリを選択し、Runボタンを押せば起動します。 ブラウザからhttp://localhost:8080/ を指定し、「募金サイト」が表示され ればOKです。
  • 43. 43 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 簡単にソースコードの解説をします。 あとは、main.php , send.phpにHTMLが記述されているので好きにデザイ ンを変更しましょう。phpファイルを変更してもアプリを再起動する必要 はありません。自動的に取り込んでくれます。 動作確認をして問題なければ、本番にUPして公開しましょう。 送金されたかどうかはcoincheckのホーム画面で確認できます。
  • 44. 44 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ・Windows環境ではcurl環境の設定が必要で す。下記のサイトを参考に対応してください。 Apacheの部分はLauncherに読み替えましょ う。http://ameblo.jp/utkworks/entry- 10386784772.html Windows環境補足
  • 45. 45 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ・Bitcoinを使ったサービスの提案 例)広告を見たらBitcoinがもらえる 適用事例(経営者・営業担当の方に)

Editor's Notes

  1. 弊社がご提供しているソリューション内容です。 企画から運営・保守にいたるまでを一気通貫で、 軸となるコンシューマ向けの大規模Webシステムをはじめ、スマホアプリ、ゲーム開発などをご提供しております。 特に大きな実績として、大規模ECシステム、求人検索サイトの開発となっております。 他にも音楽DLサイトや、業務を効率する管理系のシステムの実績も多数あります。 (30秒)