Mercurial > hg > Papers > 2019 > aka-thesis
changeset 20:828b13d9c918
update slide
author | akahori |
---|---|
date | Wed, 20 Feb 2019 15:37:20 +0900 |
parents | 1bbebae0635c |
children | 3776a23274a7 |
files | slide/slide.html slide/slide.md |
diffstat | 2 files changed, 19 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/slide/slide.html Wed Feb 20 13:01:36 2019 +0900 +++ b/slide/slide.html Wed Feb 20 15:37:20 2019 +0900 @@ -86,7 +86,7 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.3.7 (2018-03-28) [universal.x86_64-darwin17] - on 2019-02-20 12:51:21 +0900 with Markdown engine kramdown (1.17.0) + on 2019-02-20 14:44:28 +0900 with Markdown engine kramdown (1.17.0) using options {} --> @@ -125,7 +125,7 @@ <p>ブロックチェーンとは分散型台帳技術と呼ばれる. 複数のトランザクションをまとめたブロックをつなげたものを, 台帳と呼ぶ. その台帳をシステムに参加しているノードが保持する技術である.</p> -<p>ノード同士はP2Pでつながっており対等である. そのため, 管理者がいなくてもデータの管理が行える.</p> +<p>ブロック同士はハッシュでつながっている. そのため, 1つのブロックが変更されると, それ以降のブロックの整合性が保たれないため, そのHashを調べることで不整合を検知できる</p> <div style="text-align: center;"> <img src="./images/blockchain.svg" alt="blockchain" width="800" /> @@ -259,8 +259,8 @@ <div class='slide '> <!-- _S9SLIDE_ --> <h1 id="section-4">まとめ</h1> - <ul> + <li>実装をし, 分散環境でのデバッグが難しいことがわかった.</li> <li>Christieを用いてコンセンサスアルゴリズムのPaxos, ブロック, トランザクション, proof of workも実装した.</li> <li>これらを繋げてブロックチェーンにできれば, Christieにブロックチェーンが実装できる. パブリックブロックチェーンもプライベートブロックチェーンもどちらも作れる. 2つ作って速度比較も行える.</li> </ul>
--- a/slide/slide.md Wed Feb 20 13:01:36 2019 +0900 +++ b/slide/slide.md Wed Feb 20 15:37:20 2019 +0900 @@ -19,24 +19,31 @@ - コンピュータのデータに不整合は起こり得る. 不整合は誤操作や, 複数人によるデータの同時書き込みによって起こる. - ブロックチェーンはデータを分散でき, 不整合の検知が可能である. - 当研究室ではGearsOS, そしてGearsOSに組み込む予定がある分散フレームワークChristieがある. -- Christieにブロックチェーンを実装し, GearsOSに組み込むことで, GearsOS間の分散システムを構成することが可能になる. また, 分散システムを作らずとも, hash chainとしてデータの不整合を検知できる. +- Christieにブロックチェーンを実装し, GearsOSに組み込むことで, GearsOS間の分散ファイルシステムを構成することが可能になる. また, 分散ファイルシステムを作らずとも, hash chainとしてデータの不整合を検知できる. - よって, Christieにブロックチェーンを実装する. # ブロックチェーンとは ブロックチェーンとは分散型台帳技術と呼ばれる. 複数のトランザクションをまとめたブロックをつなげたものを, 台帳と呼ぶ. その台帳をシステムに参加しているノードが保持する技術である. +ブロック同士はハッシュでつながっている. そのため, 1つのブロックが変更されると, それ以降のブロックの整合性が保たれないため, そのHashを調べることで不整合を検知できる + <div style="text-align: center;"> <img src="./images/blockchain.svg" alt="blockchain" width="800"> </div> - - # コンセンサスアルゴリズム - コンセンサスアルゴリズムは分散環境上で値を一意に決めるためのアルゴリズムである. - Paxos, Raftなどが有名. 簡単に言えば多数決を安全に行うためのアルゴリズム. - - 故障モデルというものがあって, コンセンサスアルゴリズムでレベルが4段階ある. Paxos, Raftはレベル3で, ノードに裏切り者がいなければ安全に動く. + - 分散環境に故障モデルというものがあって, コンセンサスアルゴリズムでレベルが4段階ある. + - 故障が起きない. + - 任意のマシンが故障し, メッセージを受信したり送れない可能性がある. + - メッセージに遅延が発生する. そのため, マシンが壊れたのかどうか処理に時間がかかっているのかわからない. + - 悪意あるマシンがいる可能性がある. + - Paxos, Raftはレベル3で, ノードに裏切り者がいなければ安全に動く. + + # プライベートブロックチェーンのコンセンサスアルゴリズム @@ -50,7 +57,6 @@ - Acceptorが値を決める. - Learnerが決めた値を集計して, 多数決により値を選択する. -これによって, 値が一意に決まる. <div style="text-align: center;"> <img src="./images/paxos-choice.svg" alt="blockchain" width="800"> @@ -59,7 +65,8 @@ # Christieとは -- 研究室で使っていたAliceの問題点を解消した, 分散プログラミングを簡単に書けるjavaのフレームワーク. +- 分散プログラミングを簡単に書けるjavaのフレームワーク. +- 研究室で使っていたAliceの問題点を解消した. - データの取り出しをアノテーションを用いてシンプルに記述することができるようになった. そのため, ソースコードの可視性が上がった. - テストが簡単になった. AliceではLocalDataGearManagerを一つしか持てないため, LocalDataGearManagerの通信のテストが難しかった. Christieは複数のLocalDataGearManagerを持てるようになったため, 1つのアプリケーション内で分散のテストができるようになった. - Continued based C(CbC)と似た書き方が可能. DataGearという単位でDataの移動ができる. @@ -80,7 +87,7 @@ ``` <div style="text-align: center;"> - <img src="./images/ring.svg" alt="blockchain" width="800"> + <img src="./images/ring.svg" alt="blockchain" width="100"> </div> # Christieによる実装の利点 @@ -106,6 +113,8 @@ <img src="./images/paxos1.svg" alt="blockchain" width="800"> </div> + + # まとめ - Christieを用いてコンセンサスアルゴリズムのPaxos, ブロック, トランザクション, proof of workも実装した.