Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Docker (Windows) でブロックチェーン
Search
yochi
December 01, 2017
Technology
0
2k
Docker (Windows) でブロックチェーン
【ブロックチェーン技術に興味のあるエンジニア対象】bitFlyer Drink Meetup! #9 の発表資料です。
yochi
December 01, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
IaaS/SaaS管理における SREの実践 - SRE Kaigi 2026
bbqallstars
4
1.6k
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.3k
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
330
MySQLのJSON機能の活用術
ikomachi226
0
150
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
2
130
セキュリティ はじめの一歩
nikinusu
0
1.5k
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
180
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
160
月間数億レコードのアクセスログ基盤を無停止・低コストでAWS移行せよ!アプリケーションエンジニアのSREチャレンジ💪
miyamu
0
790
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Deep Space Network (abreviated)
tonyrice
0
45
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
190
How to Ace a Technical Interview
jacobian
281
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
310
Documentation Writing (for coders)
carmenintech
77
5.2k
ラッコキーワード サービス紹介資料
rakko
1
2.2M
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Transcript
Docker (Windows) で ブロックチェーン 越智 佳景
本日の内容 • ブロックチェーン • Docker • Hyperledger Sawtoothを動かす
ブロックチェーン
ブロックチェーン • Bitcoinで開発された技術 • 改ざん困難な記録(ブロックチェーン) <=台帳 • 構成要素 • トランザクション
• ブロック • … • Hyperledger (Hyper=すごい Ledger=台帳) • Linux Foundationで開発 • Hyperledger Sawtooth
Bitcoinトランザクション • コインを使う(AB) • Input: Aのアドレス • Output: Bのアドレス+金額 •
OutputからInputを生成 • Output: Aの公開鍵 • Input: Aの秘密鍵でダイジェスト • 鍵が合う=持ち主だけが正しいトラン ザクション生成可能 A:1 A B:0.99 A’ C:0.99 持ち主によるコインの移動 input output 本物 偽物 output Z input
Bitcoinブロック • ヘッダのハッシュ値が規定値より小さ くなるようNonceを調整(PoW) • Nのヘッダのハッシュ • トランザクションのハッシュ • Nonce
• … 改ざん困難なチェーンの実現 TX TX TX … Height N TX TX TX … Height N+1 000000…01234abcd 000000…020000000 < Nonce=0,1,2…
Sawtoothトランザクション • アプリ開発者が任意に設計 • ValidatorがTransaction Processor に問い合わせ • IntegerKey •
State • {Name:Value} • Transaction • {Verb, Name, Value} ステート変更 N V TP OK S-> S’ My口座 ¥1000 My口座 ¥750 Verb: dec Name: My口座 Value: 250
Sawtoothブロック • 代表ノードが作成 • Nを指すブロックヘッダを署名 • コンセンサスの取れたブロック追加 改ざんには秘密鍵必要 TX TX
TX … Height N TX TX TX … Height N+1
Docker
Docker • コンテナ技術の一種 • ホストのLinuxカーネルを使用して、コンテナ(=プロセス) を実行 • Mac, Windowsでは仮想OSを使用して利用 Linux
HW Virtualization SW Guest OS Virtual HW Linux HW Container 仮想化 Docker
Docker の種類 • 種類 • EE (Enterprise Edition) • CE
(Community Edition) • Windows • Docker for Windows (Hyper-V上のLinux上で動作) • Docker ToolBox (VirtualBox上のLinux上で動作)
準備 • CPUの仮想機能有効化(BIOS) • Hyper-Vの有効化
インストール • Docker for Windowのダウンロード&インストール • https://store.docker.com/editions/community/docker-ce-desktop- windows • 起動後エラー
• ユーザーをdocker-usersグループへ
設定 1. タスクトレイのクジラアイコン右クリック 2. Settingクリック 3. Shared Drives クリック 4.
マウントしたいドライブレターをチェック
動作確認 • コマンドプロンプト C:¥> docker run hello-world
実行方法 Dockerfile docker build . Image docker run Container docker-compose.yaml
Container docker-compose up
Hyperleger Sawtoothを動かす
実行 • Github • https://github.com/hyperledger/sawtooth-core • zipをダウンロード(v1.0.0rc2) • Docker関係のディレクトリ •
https://sawtooth.hyperledger.org/docs/core/releases/latest/app_d evelopers_guide/docker.html • Dockerディレクトリで以下のコマンドを実行 C:¥> docker-compose –f sawtooth-default.yaml up
コンテナ構成 validator shell1 shell2 settings-tp intkey-tp-python xo-tp-python rest-api 8008 4004
4004 sawtooth-default.yaml
◦✕ゲーム • Spec • ステート • <name>,<board>,<game-state>,<player-key-1>,<player-key-2> • トランザクション •
<name>,<action>,<space>
◦✕ゲーム • 遊び方 # sawtooth keygen [ユーザー名] # xo create
--url http://rest-api:8008 --username [ユーザー名] [ゲーム名] # xo list --url http://rest-api:8008 # xo take --url http://rest-api:8008 [ゲーム名] [場所] # xo show --url http://rest-api:8008 [ゲーム名] 1 2 3 4 5 6 7 8 9
コマンドの流れ shell1 shell2 validator xo-tp-python sawtooth keygen xo create sawtooth
keygen STATE: P1-NEXT Signer: Body: game1,create TX, State <<game1>> Player1: Player2: Board: []
コマンドの流れ shell1 shell2 validator xo-tp-python xo take 1 Signer: Body:
game1,take,1 xo take 2 STATE: P2-NEXT STATE: P1-NEXT <<game1>> Player1: Player2: Board: [1] <<game2>> Player1: Player2: Board: [1,2] Signer: Body: game1,take,2 TX, State TX, State STATE: P1-NEXT
コマンドの流れ shell1 shell2 validator xo-tp-python xo take 5 <<game1>> Player1:
Player2: Board: [1,2] Signer: Body: game1,take,5 TX, State STATE: P1-NEXT STATE: P1-NEXT Invalid!!
まとめ • ブロックチェーンはBitcoin発祥 • 様々な実装 • Hyperledger Sawtooth • トランザクションを自由に設計
• Dockerで簡単に動作確認
ありがとうございました