# HG changeset patch # User akahori # Date 1550635296 -32400 # Node ID 1bbebae0635c840b0fccc41034993c0c63a6c0fb # Parent 8296b649f53e4d54e2c9c3d0e4ad462c977ed5c4 update slide diff -r 8296b649f53e -r 1bbebae0635c slide/images/paxos-choice.graffle Binary file slide/images/paxos-choice.graffle has changed diff -r 8296b649f53e -r 1bbebae0635c slide/images/paxos-choice.pdf Binary file slide/images/paxos-choice.pdf has changed diff -r 8296b649f53e -r 1bbebae0635c slide/images/paxos-choice.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/images/paxos-choice.svg Wed Feb 20 13:01:36 2019 +0900 @@ -0,0 +1,574 @@ + +image/svg+xml \ No newline at end of file diff -r 8296b649f53e -r 1bbebae0635c slide/images/ring.pdf Binary file slide/images/ring.pdf has changed diff -r 8296b649f53e -r 1bbebae0635c slide/images/ring.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slide/images/ring.svg Wed Feb 20 13:01:36 2019 +0900 @@ -0,0 +1,192 @@ + +image/svg+xml \ No newline at end of file diff -r 8296b649f53e -r 1bbebae0635c slide/slide.html --- a/slide/slide.html Wed Feb 20 11:40:41 2019 +0900 +++ b/slide/slide.html Wed Feb 20 13:01:36 2019 +0900 @@ -86,7 +86,7 @@ @@ -96,14 +96,10 @@ @@ -111,13 +107,13 @@
-

研究目的 OS単位での分散システム

+

OS単位での分散システム

@@ -129,13 +125,7 @@

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

-

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

- - -
-
- -

ブロックチェーンとは

+

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

blockchain @@ -145,39 +135,7 @@
-

ブロックチェーンとは

- -

ブロックチェーンにも種類がある. パブリックブロックチェーンとプライベートブロックチェーンである. 以下に, その違いを述べる.

- - - - - - - - - - - - - - - - - - - - - -
 パブリックブロックチェーンプライベートブロックチェーン
ノードの参加権誰でも参加可能許可された場合のみ参加可能
コンセンサス遅い速い
- -

細かい違いは色々あるが, ほとんどはこの2つの違いから生まれる.

- - -
-
- -

コンセンサスアルゴリズム

+

コンセンサスアルゴリズム

-
  • Proof of Workを使っているパブリックブロックチェーンは「ブロックが多ければ多いほど」, レベル4に近づく.
  • -

    プライベートブロックチェーンのコンセンサスアルゴリズム

    +

    プライベートブロックチェーンのコンセンサスアルゴリズム

    @@ -215,6 +172,10 @@

    これによって, 値が一意に決まる.

    +
    + blockchain +
    +
    @@ -222,7 +183,12 @@

    Christieとは

    -

    Paxos実験1

    - -
    - blockchain -
    - - -
    -
    - -

    PCクラスタ上でPaxosを動かした話

    +

    PCクラスタ上でのPaxosの実行

    -

    まとめ

    +

    Paxos実行結果1

    + +
    + blockchain +
    + + +
    +
    + +

    まとめ

    diff -r 8296b649f53e -r 1bbebae0635c slide/slide.md --- a/slide/slide.md Wed Feb 20 11:40:41 2019 +0900 +++ b/slide/slide.md Wed Feb 20 13:01:36 2019 +0900 @@ -11,12 +11,12 @@ - コンセンサスアルゴリズム - Christieとは - TopologyManagerの実装 -- PCクラスタ上でPaxosを動かした話 +- PCクラスタ上でPaxosの実行 - まとめ -# 研究目的 OS単位での分散システム +# OS単位での分散システム -- コンピュータのデータに不整合は起こりえます. 不整合は誤操作や, 複数人によるデータの同時書き込みによって起こる. +- コンピュータのデータに不整合は起こり得る. 不整合は誤操作や, 複数人によるデータの同時書き込みによって起こる. - ブロックチェーンはデータを分散でき, 不整合の検知が可能である. - 当研究室ではGearsOS, そしてGearsOSに組み込む予定がある分散フレームワークChristieがある. - Christieにブロックチェーンを実装し, GearsOSに組み込むことで, GearsOS間の分散システムを構成することが可能になる. また, 分散システムを作らずとも, hash chainとしてデータの不整合を検知できる. @@ -26,37 +26,23 @@ ブロックチェーンとは分散型台帳技術と呼ばれる. 複数のトランザクションをまとめたブロックをつなげたものを, 台帳と呼ぶ. その台帳をシステムに参加しているノードが保持する技術である. -ノード同士はP2Pでつながっており, 対等である. そのため, 管理者がいなくてもデータの管理が行える. - -# ブロックチェーンとは -
    blockchain
    -# ブロックチェーンとは -ブロックチェーンにも種類がある. パブリックブロックチェーンとプライベートブロックチェーンである. 以下に, その違いを述べる. - -| | パブリックブロックチェーン | プライベートブロックチェーン | -|:-----------:|:------------:|:------------:| -| ノードの参加権 | 誰でも参加可能 | 許可された場合のみ参加可能 | -| コンセンサス | 遅い | 速い | - -細かい違いは色々あるが, ほとんどはこの2つの違いから生まれる. # コンセンサスアルゴリズム - コンセンサスアルゴリズムは分散環境上で値を一意に決めるためのアルゴリズムである. - Paxos, Raftなどが有名. 簡単に言えば多数決を安全に行うためのアルゴリズム. - 故障モデルというものがあって, コンセンサスアルゴリズムでレベルが4段階ある. Paxos, Raftはレベル3で, ノードに裏切り者がいなければ安全に動く. -- Proof of Workを使っているパブリックブロックチェーンは「ブロックが多ければ多いほど」, レベル4に近づく. # プライベートブロックチェーンのコンセンサスアルゴリズム - プライベートブロックチェーンは管理者が許可するノードしか参加しない. つまり, レベル3のコンセンサスアルゴリズムで十分. - 新しいブロックもパブリックブロックチェーンより早く作れる. -- Paxosを実装しました. +- よってPaxosを実装しました. # Paxos @@ -66,10 +52,16 @@ これによって, 値が一意に決まる. +
    + blockchain +
    + # Christieとは - 研究室で使っていたAliceの問題点を解消した, 分散プログラミングを簡単に書けるjavaのフレームワーク. + - データの取り出しをアノテーションを用いてシンプルに記述することができるようになった. そのため, ソースコードの可視性が上がった. + - テストが簡単になった. AliceではLocalDataGearManagerを一つしか持てないため, LocalDataGearManagerの通信のテストが難しかった. Christieは複数のLocalDataGearManagerを持てるようになったため, 1つのアプリケーション内で分散のテストができるようになった. - Continued based C(CbC)と似た書き方が可能. DataGearという単位でDataの移動ができる. - まだAliceから引き継いでない機能でTopologyManagerというものがある. これは, Topologyを構成するための機能. - 簡単に言えば, ノード間の配線をしてくれる. 分散環境上で実験を行いたい場合に便利なため, これを実装してからPaxosを実装した. @@ -91,8 +83,6 @@ blockchain
    - - # Christieによる実装の利点 ブロックチェーンの実装に伴ってわかったChristieの利点を述べる. @@ -101,13 +91,8 @@ - TopologyManagerでのテストが便利. dotファイルが有れば, TopologyManagerが任意の形でTopologyを作れる. そのため, ノードの配置について理想のテスト環境を作ることができる. - ソースコードの機能ごとにファイルが実装できるため, 見通しが良い. ChristieはCbCのgotoと同じように関数が終わるとsetupによって別の関数に移動する. そのため自然に機能ごとにファイルを作るため, 見通しが良くなった. -# Paxos実験1 -
    - blockchain -
    - -# PCクラスタ上でPaxosを動かした話 +# PCクラスタ上でのPaxosの実行 - ブロックチェーンにおいて, 分散環境上でテストしなければいけないのはコンセンサスアルゴリズムである. そのため, Paxosを実装し, 実際の分散環境上で動かした. - 評価は値が一意に決まるかどうかである. 値が一意に決まるならば, リーダーがコンセンサスをとっても良いし, ブロックごとにコンセンサスをとっても良い. @@ -115,7 +100,13 @@ - また, ノードはproposerが2つ, acceptorが3つ, learnerが1つという構成で実験した. - その結果, 値が一意に決まることがわかった. +# Paxos実行結果1 + +
    + blockchain +
    + # まとめ -- Christieを用いてコンセンサスアルゴリズムのPaxos, ブロック, トランザクション, proof of workも実装しました. -- これらを繋げてブロックチェーンにできれば, Christieにブロックチェーンが実装できます. パブリックブロックチェーンもプライベートブロックチェーンもどちらも作れる. 2つ作って速度比較も行える. \ No newline at end of file +- Christieを用いてコンセンサスアルゴリズムのPaxos, ブロック, トランザクション, proof of workも実装した. +- これらを繋げてブロックチェーンにできれば, Christieにブロックチェーンが実装できる. パブリックブロックチェーンもプライベートブロックチェーンもどちらも作れる. 2つ作って速度比較も行える. \ No newline at end of file