SlideShare a Scribd company logo
1 of 26
Download to read offline
Copyright 2018 Hiroyuki Onaka
仮想通貨始めました
~GethではじめるEthereum~
fun-tech meetup #6 IT技術ではじめての○○○ビアバッシュLT大会
2018/1/31 大中浩行(@setoazusa)
この作品は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。
Copyright 2018 Hiroyuki Onaka
はじめまして!
• 大中浩行(Onaka,Hiroyuki)
• @setoazusa / せとあず
• グロースエクスパートナーズ(株)
アーキテクチャソリューション部
テクニカルリード
Copyright 2018 Hiroyuki Onaka
• JJUGの方から来ました
• TDDBC 主宰
• 技術系同人サークル「ふぃーるどのーつ」
• 「錬金術MeetUp」会場係
Copyright 2018 Hiroyuki Onaka
今日のお題「仮想通貨始めました」
毎日ニュースやSNSが仮想通貨の話題でもちき
りですが、儲ける話ばかりでなくエンジニアな
ら自分で作ってみるべきではなかろうかと
Copyright 2018 Hiroyuki Onaka
やってみた
Etherenumを使って、独自通貨を実装しようと
した試みの報告になります。
4/22の「技術書典4」向けの取り組みの経過報
告になります。
Copyright 2018 Hiroyuki Onaka
Etherenum(イーサリアム)とは
• https://www.ethereum.org/
Etherenumとは、スマートコントラクトを実行する分散プラット
フォームです。アプリケーションは、ダウンタイム、検閲、詐欺ま
たは第三者の干渉の可能性なしに、プログラムとして実行されます。
これらのアプリケーションは、価値の移動によって所有権を示す、
非常に強力な共有グローバルインフラストラクチャである、カスタ
ムビルドなブロックチェーン上で実行されます。
(せとあず訳)
Copyright 2018 Hiroyuki Onaka
スマートコントラクトとは...
(割愛)
Copyright 2018 Hiroyuki Onaka
やったこと
Geth(Go言語によるEtherenumクライアント)
上のPrivate Network
環境: Ubuntu 17.10(VirtualBox上)
Copyright 2018 Hiroyuki Onaka
インストール
$ sudo add-apt-repository -y
ppa:ethereum/Ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum
Copyright 2018 Hiroyuki Onaka
Private NetworkのためのGenesis Blockを記述す
る
{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty": "200000000",
"gasLimit": "2100000",
"alloc" : {}
}
Copyright 2018 Hiroyuki Onaka
初期化してクライアント起動
$ geth --datadir /home/vagrant/geth init
genesis.json
$ geth --datadir /home/vagrant/geth --
networkid 15
Copyright 2018 Hiroyuki Onaka
コンソールに接続
$ geth attach ipc:geth.ipc
[~/geth] Welcome to the Geth JavaScript
console!
>
Copyright 2018 Hiroyuki Onaka
アカウントを作成
> personal.newAccout("****")
> personal.newAccout("****")
Copyright 2018 Hiroyuki Onaka
> eth.blockNumber(0)
0
Copyright 2018 Hiroyuki Onaka
ブロック数が0なので、マイニングするわけです
が...
Etherenumのマイニングには、一般的にはGPU
を使用します。
CPUのマイニングを有効にするには、gethをマ
イニングモードで起動する必要があります。
(最初これに気づかず一晩Surfaceを湯たんぽに
した)
Copyright 2018 Hiroyuki Onaka
CPUモードでのマイニング
$ geth --datadir /home/vagrant/geth --
mine --minerthreads=2
Copyright 2018 Hiroyuki Onaka
一晩経ちました
> eth.blockNumber
25
> eth.getBalance(eth.coinbase)
125000000000000000000
> eth.getBalance(eth.accounts[0])
125000000000000000000
Copyright 2018 Hiroyuki Onaka
eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1],
value: web3.toWei(10, "ether")})
Error: authentication needed: password or unlock
at web3.js:3143:20
at web3.js:6347:15
at web3.js:5081:36
at <anonymous>:1:1
Copyright 2018 Hiroyuki Onaka
> personal.unlockAccount(eth.accounts[0])
Unlock account 0x458c2ed4695587effe3875cad06d3eb71336e376
Passphrase:
true
> eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1],
value: web3.toWei(10, "ether")})
"0x437e2cea634a1425bbb587b69ac56d553d08f3278370cb6ef8fb48
a48e87920e"
Copyright 2018 Hiroyuki Onaka
> eth.getBalance(eth.accounts[1])
0
Copyright 2018 Hiroyuki Onaka
> eth.pendingTransactions
[{
blockHash: null,
blockNumber: null,
from: "0x458c2ed4695587effe3875cad06d3eb71336e376",
gas: 90000,
gasPrice: 18000000000,
hash: "0x437e2cea634a1425bbb587b69ac56d553d08f3278370cb6ef8fb48a48e87920e",
input: "0x",
nonce: 0,
r: "0x8f03345a4b9f063610c9d51eff2314f08f9a0c69feae4443e52b8a73a580ada0",
s: "0x449efa0dae06da6ef070620281fd45c30fae6d010a5711ee49947c46153402e4",
to: "0xd4402cad20ceabcd6880f169b7aab75b47c843cb",
transactionIndex: 0,
v: "0x41",
Copyright 2018 Hiroyuki Onaka
トランザクションをブロックに組み込むため、マ
イニングします
$ geth --mine --minerthreads=2 --datadir
/home/vagrant/geth --networkid 15
# ペンディングのトランザクションがなくなったら
処理完了
> eth.pendingTransactions
[]
Copyright 2018 Hiroyuki Onaka
残高を確認する
> eth.getBalance(eth.accounts[0])
120000000000000000000
> eth.getBalance(eth.accounts[1])
10000000000000000000
Copyright 2018 Hiroyuki Onaka
感想
• やってみないとやはりわからないことがある
(CPUマイニングの件とか)
• 公式のドキュメントは読むべき
• たかだがアカウント間の送金のトランザク
ションにCPUパワー(と電気)を使いすぎでは
ないのか
Copyright 2018 Hiroyuki Onaka
• go-ethereum
https://github.com/ethereum/go-
ethereum/wiki
• はじめてのブロックチェーン・アプリケーション
Ethereumによるスマートコントラクト開発入門
https://www.amazon.co.jp/dp/4798151343/
Copyright 2018 Hiroyuki Onaka
スマートコントラクトを作ろう!(味噌煮研究所
「味噌煮研究所東関東支部冬季研究成果報告書
Vol.1」)
https://miso-lab.booth.pm/items/715680

More Related Content

Similar to 仮想通貨始めました~GethではじめるEthereum~

[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光
[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光
[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光Hiroyuki Ishikawa
 
Tech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fix
Tech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fixTech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fix
Tech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fixHisahiko Shiraishi
 
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』Unity Technologies Japan K.K.
 
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM,INC
 
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)Hiroyuki Ishikawa
 
東方ゲームAIとその歴史
東方ゲームAIとその歴史東方ゲームAIとその歴史
東方ゲームAIとその歴史ide_an
 
第一回テクニカルアーティストラウンドテーブル・セッション
第一回テクニカルアーティストラウンドテーブル・セッション第一回テクニカルアーティストラウンドテーブル・セッション
第一回テクニカルアーティストラウンドテーブル・セッションfumoto kazuhiro
 
日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してます
日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してます日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してます
日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してますVirtualTech Japan Inc./Begi.net Inc.
 
エンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指しますエンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指しますVirtualTech Japan Inc.
 
DevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pubDevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pubTomohiro Igarashi
 
Startup science 2018 ③ アイディアの検証
Startup science 2018 ③ アイディアの検証Startup science 2018 ③ アイディアの検証
Startup science 2018 ③ アイディアの検証Masa Tadokoro
 
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告INTAGEGROUP
 
失敗しない仮想化環境の設計・構築法
失敗しない仮想化環境の設計・構築法失敗しない仮想化環境の設計・構築法
失敗しない仮想化環境の設計・構築法VirtualTech Japan Inc.
 
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)Daisuke Nishino
 
IoT Presentation2018v2
IoT Presentation2018v2IoT Presentation2018v2
IoT Presentation2018v2HiyohIshimura
 
NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、 今残すべき叡智とは?〜AIと法編〜」(工藤郁子)
NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、  今残すべき叡智とは?〜AIと法編〜」(工藤郁子)NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、  今残すべき叡智とは?〜AIと法編〜」(工藤郁子)
NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、 今残すべき叡智とは?〜AIと法編〜」(工藤郁子)Fumiko Kudoh
 
About IGDA Japan 0906
About IGDA Japan 0906About IGDA Japan 0906
About IGDA Japan 0906IGDA Japan
 

Similar to 仮想通貨始めました~GethではじめるEthereum~ (20)

[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光
[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光
[DojoCon Japan 2018]自分にできる貢献のしかたを見つけよう by CoderDojo光
 
Tech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fix
Tech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fixTech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fix
Tech clipx市ヶ谷geeks ドリコムのエンジニア組織と文化fix
 
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
 
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
 
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)
[OSC2018広島]自分にできる貢献のしかたを見つけよう(OSC2018広島Ver)
 
東方ゲームAIとその歴史
東方ゲームAIとその歴史東方ゲームAIとその歴史
東方ゲームAIとその歴史
 
第一回テクニカルアーティストラウンドテーブル・セッション
第一回テクニカルアーティストラウンドテーブル・セッション第一回テクニカルアーティストラウンドテーブル・セッション
第一回テクニカルアーティストラウンドテーブル・セッション
 
日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してます
日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してます日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してます
日本仮想化技術株式会社はエンジニアが幸せになれる会社を目指してます
 
エンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指しますエンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指します
 
Unitevolunteer
UnitevolunteerUnitevolunteer
Unitevolunteer
 
DevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pubDevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pub
 
Startup science 2018 ③ アイディアの検証
Startup science 2018 ③ アイディアの検証Startup science 2018 ③ アイディアの検証
Startup science 2018 ③ アイディアの検証
 
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
 
失敗しない仮想化環境の設計・構築法
失敗しない仮想化環境の設計・構築法失敗しない仮想化環境の設計・構築法
失敗しない仮想化環境の設計・構築法
 
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
 
クラウドとは何か
クラウドとは何かクラウドとは何か
クラウドとは何か
 
IoT Presentation2018v2
IoT Presentation2018v2IoT Presentation2018v2
IoT Presentation2018v2
 
NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、 今残すべき叡智とは?〜AIと法編〜」(工藤郁子)
NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、  今残すべき叡智とは?〜AIと法編〜」(工藤郁子)NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、  今残すべき叡智とは?〜AIと法編〜」(工藤郁子)
NEXT WISDOM FOUNDATION 「AIが社会基盤となるからこそ必要であろう叡智、 今残すべき叡智とは?〜AIと法編〜」(工藤郁子)
 
About IGDA Japan 0906
About IGDA Japan 0906About IGDA Japan 0906
About IGDA Japan 0906
 
3D depth sensor world
3D depth sensor world3D depth sensor world
3D depth sensor world
 

More from Hiroyuki Ohnaka

remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱いHiroyuki Ohnaka
 
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験Hiroyuki Ohnaka
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...Hiroyuki Ohnaka
 
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話Hiroyuki Ohnaka
 
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプルHiroyuki Ohnaka
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescriptHiroyuki Ohnaka
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版Hiroyuki Ohnaka
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版Hiroyuki Ohnaka
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Hiroyuki Ohnaka
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」Hiroyuki Ohnaka
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)Hiroyuki Ohnaka
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcHiroyuki Ohnaka
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)Hiroyuki Ohnaka
 
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!Hiroyuki Ohnaka
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Hiroyuki Ohnaka
 
pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約Hiroyuki Ohnaka
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記Hiroyuki Ohnaka
 
TDDのこれまで、そしてこれから
TDDのこれまで、そしてこれからTDDのこれまで、そしてこれから
TDDのこれまで、そしてこれからHiroyuki Ohnaka
 
「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbcHiroyuki Ohnaka
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」Hiroyuki Ohnaka
 

More from Hiroyuki Ohnaka (20)

remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱い
 
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
 
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
 
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescript
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbc
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)
 
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
 
pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
 
TDDのこれまで、そしてこれから
TDDのこれまで、そしてこれからTDDのこれまで、そしてこれから
TDDのこれまで、そしてこれから
 
「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
 

仮想通貨始めました~GethではじめるEthereum~

  • 1. Copyright 2018 Hiroyuki Onaka 仮想通貨始めました ~GethではじめるEthereum~ fun-tech meetup #6 IT技術ではじめての○○○ビアバッシュLT大会 2018/1/31 大中浩行(@setoazusa) この作品は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。
  • 2. Copyright 2018 Hiroyuki Onaka はじめまして! • 大中浩行(Onaka,Hiroyuki) • @setoazusa / せとあず • グロースエクスパートナーズ(株) アーキテクチャソリューション部 テクニカルリード
  • 3. Copyright 2018 Hiroyuki Onaka • JJUGの方から来ました • TDDBC 主宰 • 技術系同人サークル「ふぃーるどのーつ」 • 「錬金術MeetUp」会場係
  • 4. Copyright 2018 Hiroyuki Onaka 今日のお題「仮想通貨始めました」 毎日ニュースやSNSが仮想通貨の話題でもちき りですが、儲ける話ばかりでなくエンジニアな ら自分で作ってみるべきではなかろうかと
  • 5. Copyright 2018 Hiroyuki Onaka やってみた Etherenumを使って、独自通貨を実装しようと した試みの報告になります。 4/22の「技術書典4」向けの取り組みの経過報 告になります。
  • 6. Copyright 2018 Hiroyuki Onaka Etherenum(イーサリアム)とは • https://www.ethereum.org/ Etherenumとは、スマートコントラクトを実行する分散プラット フォームです。アプリケーションは、ダウンタイム、検閲、詐欺ま たは第三者の干渉の可能性なしに、プログラムとして実行されます。 これらのアプリケーションは、価値の移動によって所有権を示す、 非常に強力な共有グローバルインフラストラクチャである、カスタ ムビルドなブロックチェーン上で実行されます。 (せとあず訳)
  • 7. Copyright 2018 Hiroyuki Onaka スマートコントラクトとは... (割愛)
  • 8. Copyright 2018 Hiroyuki Onaka やったこと Geth(Go言語によるEtherenumクライアント) 上のPrivate Network 環境: Ubuntu 17.10(VirtualBox上)
  • 9. Copyright 2018 Hiroyuki Onaka インストール $ sudo add-apt-repository -y ppa:ethereum/Ethereum $ sudo apt-get update $ sudo apt-get install ethereum
  • 10. Copyright 2018 Hiroyuki Onaka Private NetworkのためのGenesis Blockを記述す る { "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "difficulty": "200000000", "gasLimit": "2100000", "alloc" : {} }
  • 11. Copyright 2018 Hiroyuki Onaka 初期化してクライアント起動 $ geth --datadir /home/vagrant/geth init genesis.json $ geth --datadir /home/vagrant/geth -- networkid 15
  • 12. Copyright 2018 Hiroyuki Onaka コンソールに接続 $ geth attach ipc:geth.ipc [~/geth] Welcome to the Geth JavaScript console! >
  • 13. Copyright 2018 Hiroyuki Onaka アカウントを作成 > personal.newAccout("****") > personal.newAccout("****")
  • 14. Copyright 2018 Hiroyuki Onaka > eth.blockNumber(0) 0
  • 15. Copyright 2018 Hiroyuki Onaka ブロック数が0なので、マイニングするわけです が... Etherenumのマイニングには、一般的にはGPU を使用します。 CPUのマイニングを有効にするには、gethをマ イニングモードで起動する必要があります。 (最初これに気づかず一晩Surfaceを湯たんぽに した)
  • 16. Copyright 2018 Hiroyuki Onaka CPUモードでのマイニング $ geth --datadir /home/vagrant/geth -- mine --minerthreads=2
  • 17. Copyright 2018 Hiroyuki Onaka 一晩経ちました > eth.blockNumber 25 > eth.getBalance(eth.coinbase) 125000000000000000000 > eth.getBalance(eth.accounts[0]) 125000000000000000000
  • 18. Copyright 2018 Hiroyuki Onaka eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(10, "ether")}) Error: authentication needed: password or unlock at web3.js:3143:20 at web3.js:6347:15 at web3.js:5081:36 at <anonymous>:1:1
  • 19. Copyright 2018 Hiroyuki Onaka > personal.unlockAccount(eth.accounts[0]) Unlock account 0x458c2ed4695587effe3875cad06d3eb71336e376 Passphrase: true > eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(10, "ether")}) "0x437e2cea634a1425bbb587b69ac56d553d08f3278370cb6ef8fb48 a48e87920e"
  • 20. Copyright 2018 Hiroyuki Onaka > eth.getBalance(eth.accounts[1]) 0
  • 21. Copyright 2018 Hiroyuki Onaka > eth.pendingTransactions [{ blockHash: null, blockNumber: null, from: "0x458c2ed4695587effe3875cad06d3eb71336e376", gas: 90000, gasPrice: 18000000000, hash: "0x437e2cea634a1425bbb587b69ac56d553d08f3278370cb6ef8fb48a48e87920e", input: "0x", nonce: 0, r: "0x8f03345a4b9f063610c9d51eff2314f08f9a0c69feae4443e52b8a73a580ada0", s: "0x449efa0dae06da6ef070620281fd45c30fae6d010a5711ee49947c46153402e4", to: "0xd4402cad20ceabcd6880f169b7aab75b47c843cb", transactionIndex: 0, v: "0x41",
  • 22. Copyright 2018 Hiroyuki Onaka トランザクションをブロックに組み込むため、マ イニングします $ geth --mine --minerthreads=2 --datadir /home/vagrant/geth --networkid 15 # ペンディングのトランザクションがなくなったら 処理完了 > eth.pendingTransactions []
  • 23. Copyright 2018 Hiroyuki Onaka 残高を確認する > eth.getBalance(eth.accounts[0]) 120000000000000000000 > eth.getBalance(eth.accounts[1]) 10000000000000000000
  • 24. Copyright 2018 Hiroyuki Onaka 感想 • やってみないとやはりわからないことがある (CPUマイニングの件とか) • 公式のドキュメントは読むべき • たかだがアカウント間の送金のトランザク ションにCPUパワー(と電気)を使いすぎでは ないのか
  • 25. Copyright 2018 Hiroyuki Onaka • go-ethereum https://github.com/ethereum/go- ethereum/wiki • はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 https://www.amazon.co.jp/dp/4798151343/
  • 26. Copyright 2018 Hiroyuki Onaka スマートコントラクトを作ろう!(味噌煮研究所 「味噌煮研究所東関東支部冬季研究成果報告書 Vol.1」) https://miso-lab.booth.pm/items/715680