More Related Content
Similar to ブロックチェーンを理解して応援する「熊本がんばれ募金ハック」サイト作成ハンズオン (11)
ブロックチェーンを理解して応援する「熊本がんばれ募金ハック」サイト作成ハンズオン
- 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
ブロックチェーンを理解して応援する
「熊本がんばれ募金ハック」サイト作成ハンズオン
- 10. 10
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Bitcoinで使われているブロックチェー
ンは通貨だけではなく広くサービスと
して使われつつあります。管理サー
バー無しで。。
Swarm
クラウドファンディングのプラットフォーム
Storjcoin X
分散型ストレージサービス
Gems
分散型メッセンジャーアプリ
LTBcoin
「Let's Talk Bitcoin」というビットコインのPodcastサービスの広告枠の利用等
に使用
- 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の極意[共著](秀和
システム)
- 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のソースコードを
読むのが正解らしい。。。
※ポイントは。。。。
チェーンの改ざんを抑止するためにハッシュ値の計算(マイニング)
する難しさを定期的に調整しているが、調整が間に合わないような高速
演算できる環境を持ち込まれると長いチェーンを作成されてしまい、改
ざんできる余地がある。→完璧ではない。十分難しい状態のまま。
- 22. 22
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
毎日のようにレートが変わります。銀行振込またはクレジットカードで購入可能
です。クレジットカードで購入するには与信確認のため1週間ほど入金に時間が
かかります。営業時間内なら銀行振り込みはすぐに入金されます。
銀行振込で入金した場合、日本円のままですので「ビットコインを買う」で
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.
- 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で開発するため
のアプリを作成します。左下の+から作成します。
- 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 にアクセスして設定します。
パスワードの設定を聞かれる場合があります。設定
してください。
- 36. 36
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
APIで使う必要な機能だけチェックします
送金先を寄付の送金先であるBitcoinアドレス
1Pu73sEiRwYN9jby9EftLii5b9Mgi21XnT
に限定します。https://coincheck.jp/donations/12
設定した自分のパスワードを入力
- 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で使うライブラリの追加設定
- 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環境補足
Editor's Notes
- 弊社がご提供しているソリューション内容です。
企画から運営・保守にいたるまでを一気通貫で、
軸となるコンシューマ向けの大規模Webシステムをはじめ、スマホアプリ、ゲーム開発などをご提供しております。
特に大きな実績として、大規模ECシステム、求人検索サイトの開発となっております。
他にも音楽DLサイトや、業務を効率する管理系のシステムの実績も多数あります。
(30秒)