# HG changeset patch # User akahori # Date 1550644640 -32400 # Node ID 828b13d9c918f405f9055349725e85648d550404 # Parent 1bbebae0635c840b0fccc41034993c0c63a6c0fb update slide diff -r 1bbebae0635c -r 828b13d9c918 slide/slide.html --- 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 @@ @@ -125,7 +125,7 @@

ブロックチェーンとは分散型台帳技術と呼ばれる. 複数のトランザクションをまとめたブロックをつなげたものを, 台帳と呼ぶ. その台帳をシステムに参加しているノードが保持する技術である.

-

ノード同士はP2Pでつながっており対等である. そのため, 管理者がいなくてもデータの管理が行える.

+

ブロック同士はハッシュでつながっている. そのため, 1つのブロックが変更されると, それ以降のブロックの整合性が保たれないため, そのHashを調べることで不整合を検知できる

blockchain @@ -259,8 +259,8 @@

まとめ

- diff -r 1bbebae0635c -r 828b13d9c918 slide/slide.md --- 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を調べることで不整合を検知できる +
blockchain
- - # コンセンサスアルゴリズム - コンセンサスアルゴリズムは分散環境上で値を一意に決めるためのアルゴリズムである. - Paxos, Raftなどが有名. 簡単に言えば多数決を安全に行うためのアルゴリズム. - - 故障モデルというものがあって, コンセンサスアルゴリズムでレベルが4段階ある. Paxos, Raftはレベル3で, ノードに裏切り者がいなければ安全に動く. + - 分散環境に故障モデルというものがあって, コンセンサスアルゴリズムでレベルが4段階ある. + - 故障が起きない. + - 任意のマシンが故障し, メッセージを受信したり送れない可能性がある. + - メッセージに遅延が発生する. そのため, マシンが壊れたのかどうか処理に時間がかかっているのかわからない. + - 悪意あるマシンがいる可能性がある. + - Paxos, Raftはレベル3で, ノードに裏切り者がいなければ安全に動く. + + # プライベートブロックチェーンのコンセンサスアルゴリズム @@ -50,7 +57,6 @@ - Acceptorが値を決める. - Learnerが決めた値を集計して, 多数決により値を選択する. -これによって, 値が一意に決まる.
blockchain @@ -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 @@ ```
- blockchain + blockchain
# Christieによる実装の利点 @@ -106,6 +113,8 @@ blockchain
+ + # まとめ - Christieを用いてコンセンサスアルゴリズムのPaxos, ブロック, トランザクション, proof of workも実装した.