annotate slide/prosym.html @ 20:cd438764f55c

add svg
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Tue, 28 May 2019 17:45:51 +0900
parents a3203802637b
children e7239fe266f0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 <!DOCTYPE html>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <html>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 <head>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 <meta http-equiv="content-type" content="text/html;charset=utf-8">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 <title>分散ネットワークChristieによるBlockchainの実装</title>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 <meta name="generator" content="Slide Show (S9) v4.0.1 on Ruby 2.3.7 (2018-03-28) [universal.x86_64-darwin16]">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 <meta name="author" content="Takahiro Ikki, Shinji Kono" >
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 <!-- style sheet links -->
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 <link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 <link rel="stylesheet" href="s6/themes/screen.css" media="screen">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 <link rel="stylesheet" href="s6/themes/print.css" media="print">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <!-- JS -->
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <script src="s6/js/jquery-1.11.3.min.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <script src="s6/js/jquery.slideshow.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 <script src="s6/js/jquery.slideshow.counter.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <script src="s6/js/jquery.slideshow.controls.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 <script src="s6/js/jquery.slideshow.footer.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 <script src="s6/js/jquery.slideshow.autoplay.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 <!-- prettify -->
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 <link rel="stylesheet" href="scripts/prettify.css">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 <script src="scripts/prettify.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 <script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 $(document).ready( function() {
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Slideshow.init();
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 $('code').each(function(_, el) {
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 if (!el.classList.contains('noprettyprint')) {
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 el.classList.add('prettyprint');
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 }
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 });
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 prettyPrint();
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 } );
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 </script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 <!-- Better Browser Banner for Microsoft Internet Explorer (IE) -->
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 <!--[if IE]>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 <script src="s6/js/jquery.microsoft.js"></script>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 <![endif]-->
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 </head>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <body>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 <div class="layout">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 <div id="header"></div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 <div id="footer">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 <div align="right">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 <img src="s6/images/logo.svg" width="200px">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 <div class="presentation">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 <div class='slide cover'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 <table width="90%" height="90%" border="0" align="center">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 <tr>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 <td>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 <div align="center">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 <h1><font color="#808db5">分散ネットワークChristieによるBlockchainの実装</font></h1>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 </td>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 </tr>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <tr>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <td>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 <div align="left">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 Takahiro Ikki, Shinji Kono
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 琉球大学
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 </td>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 </tr>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 </table>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
94 <h2 id="研究目的">研究目的</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 <ul>
20
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
97 <li>コンピュータのデータの不整合は、誤作動や複数人によるデータの同時書き込みによって発生し、特に分散環境下で問題となる。</li>
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
98 <li>ブロックチェーンはデータの分散ができ、不整合の検知が可能な仕組みとなっている。</li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 <li>当研究室で開発中のGearsOSの分散システムの技術として, ブロックチェーンが使用できるか調査中である.</li>
20
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
100 <li>将来的にGearsOSに組み込む予定のある分散フレームワークChristieに分散フレームワークを実装することにした。</li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 <!--
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 # OS の拡張性と信頼性の両立
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 -->
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
114 <h2 id="christie">Christie</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 <li>Christieは当研究室で開発している分散フレームワークである.</li>
20
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
117 <li>現在はjava上で開発されているが, 別言語で構成されたGearsOSに組み込む予定があるため,それに向けて書き換え可能な構成となっている.</li>
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
118 <li>コーディングをする上に置いて以下の概念が存在する。
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
119 <ul>
20
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
120 <li>CodeGear(以下CG)
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
121 <ul>
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
122 <li>スレッド、クラスに相当し、javaの継承を用いて記述する。</li>
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
123 </ul>
cd438764f55c add svg
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
124 </li>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
125 <li>CodeGearManager(以下CGM)</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
126 <li>DataGear(以下DG)</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
127 <li>DataGearManager(以下DGM)</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
128 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
129 </li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
138 <h2 id="christieの言語概念">Christieの言語概念</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 <li>CGはスレッド, クラスに相当し, javaの継承を用いて記述する.</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 <li>DGは変数データに相当し, CG内でアノテーションを用いて変数データを取り出せる.</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 <li>CGMはノードであり, DG, CG, DGMを管理する.</li>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
143 <li>DGMはDGを管理するものであり, putという操作により, 変数データ(DG)を格納できる.
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
144 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
145 <li>DGMにはLocalDGMとRemoteDGMが存在する。LocalDGMは各ノード固有のデータベースである。RemoteDSMは他ノードのLocalDGMに対応するproxyであり、接続しているノードの数だけ存在する。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
146 <li>DGMのput操作を行う際にはLocalとRemoteのどちらかを選ぶ.Localであれば、LocalのCGMが管理するDGMに対しDGを格納し, Remoteの場合は接続したRemoteさきのCGMのDGMにDGを格納する.</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
147 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
148 </li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
157 <h2 id="dgm">DGM</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 <li>RocalDGMを立ち上げるにはDataSegmentクラスが提供する、connectメソッドを用い、接続したいポートのipアドレスとport番号、そして任意のManager名を指定することで立ち上げる。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 <li>立ち上げ後はManager名を指定してDataSegmentAPI用いてDSのやり取りを行うため、プログラマはManager名を意識することでLocalへの操作もRemoteへの操作も同様に扱える。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
169 <h2 id="dgのアノテーション">DGのアノテーション</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 <li>DGを取り出す際にはCG内で宣言した変数データにアノテーションをつける。DGアノテーションには
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
172 Take、Peek、TakeFrom、PeekFrom、の4つがある。
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
173 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
174 <li>Take
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
175 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
176 <li>先頭のDGを読み込み、そのDGを削除する。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
177 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
178 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
179 <li>Peek
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
180 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
181 <li>先頭のDGを読み込むが、DGが消去されない。そのため特に操作をしない場合、同じデータを参照し続ける。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
182 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
183 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
184 <li>TakeFrom
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
185 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
186 <li>Takeと似ているが、Remote DGM nameをしているすることで、その接続先のDGM からTake操作をおこえる。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
187 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
188 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
189 <li>PeekFrom
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
190 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
191 <li>Peekと似ているが、 Remote DGM nameをしているすることで、その接続先のDGM からPeek操作をおこえる。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
192 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
193 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
194 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
195 </li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
199
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
204 <h2 id="christieのコード例">Christieのコード例</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 <pre><code class="language-code">package christie.example.HelloWorld;
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 import christie.codegear.CodeGearManager;
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 import christie.codegear.StartCodeGear;
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 public class StartHelloWorld extends StartCodeGear {
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
211
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 public StartHelloWorld(CodeGearManager cgm) {
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 super(cgm);
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 }
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
215
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 public static void main(String[] args){
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 CodeGearManager cgm = createCGM(10000);
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 cgm.setup(new HelloWorldCodeGear());
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 cgm.getLocalDGM().put("helloWorld","hello");
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 cgm.getLocalDGM().put("helloWorld","world");
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 }
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 }
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
223
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 </code></pre>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
226
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
227
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
232 <h2 id="annottation">Annottation</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 <li>ChristieではInputDGの指定にはアノテーションを使う。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 <li>アノテーションとはクラスやメソッド、パッケージに対して、付加情報を記述できるJavaのMeta Computationである。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 <li>先頭に@をつけることで記述し、オリジナルのアノテーションを定義することもできるInput
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 となる型の変するを直接宣言し、変数名としてkeyを記述する。その上にアノテーションでTakeもしくはPeekを指定する。
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 <pre><code class="language-code">@Take
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
239 public String name;
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 </code></pre>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 <pre><code class="language-code">@TakeFrom("remote")
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 public String name;
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 </code></pre>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 </li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
246
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
247
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
248
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
250
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
253 <h2 id="topologymanager">TopologyManager</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 <li>TopologyManagerとはTopologyを形成するために、参加を表明したノード、TopologyNodeに名前を与え、必要があればノード同士の配線を行うノードである。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 <li>TopologyManagerのTopology形成方法として、静的Topologyと動的Topologyがある。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 <li>動的Topologyは参加を表明したノードに対し、動的にノード同士の関係を作る。例えばTreeを構成する場合、参加したノードから順にrootに近い役割を与え、またCodeGearはノードが参加し、parentに接続された後に実行される。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
259
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
260
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
261
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
262 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
263
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
266 <h2 id="静的topology">静的Topology</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 <li>静的Toopologyはdotファイルを与えることでノード関係を下の図のようにする。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
269 <li>静的Topologyはdotファイルのノード数と同等のTopologyNodeがあって初めて、CodeGearが実行される。
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
270 <pre><code class="language-Code">digraph test {
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
271 node0 -&gt; node1 [label="right"]
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 node1 -&gt; node2 [label="right"]
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 node2 -&gt; node0 [label="right"]
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
274 }
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 </code></pre>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
276 </li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
277 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
278
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
279 <div style="text-align: center;">
19
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
280  <img src="../paper/images/ring.svg" alt="MetaGear" width="300" />
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
282
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
283
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
284
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
285 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
286
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
287 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
288 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
289 <h2 id="ブロックチェーンのトランザクション">ブロックチェーンのトランザクション</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 <li>ブロックチェーンはP2Pにてネットワーク間が動作している。つまり、ブロックチェーンにはサーバー、クライアントの区別がなく全てのノードが平等である。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 <li>ブロックチェーンにおけるブロックは複数のトランザクションをまとめたものである。ブロックの構造は使用するコンセンサスにより変わるが基本的には、previous block hash, merkle root hash, timeが含まれるBlockHeaderとTransactionListにより構成される。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
293 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
294
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
295
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
296
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
297 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
298
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
299 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
301 <h2 id="blockheader">BlockHeader</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
303 <li>BlockHeaderには、前のブロックをハッシュ化したもの、トランザクションをまとめたmarkle treeのrootのhash、そのブロックを生成したtimeとなっている。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
304 <li>previous block hashは、前のブロックのパラメータを並べてhash化したものである。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
305 <li>上記のものがそれぞれ連なっていることによって下の図のようなブロック繋がっている。そのため一つが更新されたらそのあとにつながるブロック全てを更新しなければならなくなる。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
306 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
307 <div style="text-align: center;">
19
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
308  <img src="../paper/images/chain.svg" alt="MetaGear" width="600" />
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
309 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
310
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
311
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
312
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
313 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
314
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
315 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
316 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
317 <h2 id="blockの動作">Blockの動作</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
318 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
319 <li>ブロックが生成された場合、知っているノードにそのブロックをブロードキャストする。通信量を抑えるためにブロックを送ったあと、ブロックをシリアライズして送信する場合もある。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
320 <li>誤りがあればさらにそのノードがブロックをブロードキャストする。そしてTransaction PoolというTransactionをためておく場所から、そのブロックに含まれるTransactionを削除し、新しいブロックを生成する。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
321 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
322
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
323
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
324
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
325 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
326
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
327 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
328 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
329 <h2 id="transaction">Transaction</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
330 <ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
331 <li>トランザクションとはデータのやり取りを行なった記録の最小単位である。トランザクションの構造は次のとおりである。</li>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
332 <li>TransactionHash
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
333 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
334 <li>トランザクションをハッシュ化したもの。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
335 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
336 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
337 <li>data
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
338 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
339 <li>データ</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
340 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
341 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
342 <li>sendAddress
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
343 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
344 <li>送り元のアドレス。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
345 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
346 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
347 <li>receiveAddress
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
348 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
349 <li>送り先のアカウントのアドレス。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
350 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
351 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
352 <li>signature
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
353 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
354 <li>トランザクションの一部と秘密鍵をSHA256でハッシュ化したもの。ECDSAで署名している。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
355 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
356 </li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
357 <li>トランザクションはノード間で伝搬され、ノードごとに検証される。そして検証を終え、不正なトランザクションであればそれを破棄し、検証に通った場合はTransaction Poolに取り込まれ、また検証したノードからトランザクションがブロードキャストする。</li>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
358 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
359
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
360
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
361
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
362 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
363
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
364 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
365 <!-- _S9SLIDE_ -->
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
366 <h2 id="コンセンサスアルゴリズム">コンセンサスアルゴリズム</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
367 <ul>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
368 <li>fork
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
369 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
370 <li>ブロック生成後にブロードキャストを行うと、ブロック高の同じもしくは高いブロックチェーンにたどり着く状態があり、異なるブロックを持った二つのブロックチェーンのうちどちらかを破棄する必要がある。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
371 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
372 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
373 <li>fork状態を解消するために用いられるのがコンセンサスアルゴリズムである。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
374 <li>ブロックチェーンはパブリックブロックチェーンとコンソーシアムブロックチェーンの場合によってコンセンサスアルゴリズムが変わる。
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
375 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
376 <li>パブリックブロックチェーン
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
377 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
378 <li>不特定たすのノードが参加するブロックチェーンを指す。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
379 <li>不特定多数のノード間、全体のノードの参加数が変わる状況でコンセンサスの変わるアルゴリズムでなければならない。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
380 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
381 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
382 <li>コンソーシアムブロックチェーン
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
383 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
384 <li>許可したノードのみが参加できるブロックチェーンである。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
385 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
386 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
387 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
388 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
389 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
390
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
391
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
392
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
393 </div>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
394
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
395 <div class='slide'>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
396 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
397 <h2 id="proof-of-work">Proof of Work</h2>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
398 <ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
399 <li>Proof of Workは次のような問題が生じている場合にもコンセンサスを取ることができる。
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
400 <ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
401 <li>プロセス毎の処理速度が違う。つまりメッセージの返信が遅い場合がある。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
402 <li>通信にどれだけの時間がかかるか分からず、その途中でメッセージが途切れる場合がある</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
403 <li>プロセスは停止する可能性がある。また復旧する場合もある。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
404 <li>悪意ある情報を他のノードが送信する可能性がある。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
405 </ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
406 </li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
407 <li>Proof of Workに必要なパラメーターは次のとおりである。
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
408 <ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
409 <li>nonce
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
410 <ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
411 <li>ブロックのパラメータに含まれる。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
412 </ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
413 </li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
414 <li>dificulty
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
415 <ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
416 <li>Proof of Workの難しさ、正確には一つのブロックを生成する時間の調整。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
417 </ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
418 </li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
419 </ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
420 </li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
421 </ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
422
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
423
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
424
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
425 </div>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
426
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
427 <div class='slide'>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
428 <!-- _S9SLIDE_ -->
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
429 <h2 id="proof-of-workのブロック生成手順">Proof of Workのブロック生成手順</h2>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
430 <ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
431 <li>1, ブロックとnonceを加えたものをハッシュ化する。この際、nonceによって、ブロックのハッシュは全く異なるものとなる。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
432 <li>2, ハッシュ化したブロックの先頭から数えた0ビットの数がdifficultyより多ければ、そのブロックにnonceを埋め込み、ブロックを作る。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
433 <li>3, 2の条件に当てはまらなければnonceに1を足して1からやり直す。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
434 </ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
435
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
436 <div style="text-align: center;">
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
437  <img src="../paper/images/proof-of-work.pdf" alt="MetaGear" width="600" />
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
438 </div>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
439
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
440
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
441
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
442 </div>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
443
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
444 <div class='slide'>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
445 <!-- _S9SLIDE_ -->
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
446 <h2 id="proof-of-workの欠点">Proof of workの欠点</h2>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
447 <ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
448 <li>CPUのリソースを使用する</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
449 <li>Transactionが確定するのに時間がかかる。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
450 </ul>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
451
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
452
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
453
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
454 </div>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
455
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
456 <div class='slide'>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
457 <!-- _S9SLIDE_ -->
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
458 <h2 id="paxos">Paxos</h2>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
459 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
460 <li>Paxosはノードの多数決によってコンセンサスをとるアルゴリズムである。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
461 <li>Paxosは以下のような問題があっても値を一意に決めることができる。
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
462 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
463 <li>1,プロセス毎に処理の速度が違う。つまりメッセージの返信が遅い可能性がある。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
464 <li>2,通信にどれだけの時間がかかるかわからず、その途中でメッセージが失われる可能性がある。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
465 <li>3,プロセスは停止する可能性もある。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
466 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
467 </li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
468 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
469
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
470
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
471
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
472 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
473
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
474 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
475 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
476 <h2 id="paxosの役割ノード">Paxosの役割ノード</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
477 <ul>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
478 <li>Paxosは3つの役割ノードがある。
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
479 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
480 <li>proposer
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
481 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
482 <li>値を提案するノード。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
483 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
484 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
485 <li>accepter
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
486 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
487 <li>値を決めるノード。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
488 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
489 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
490 <li>lerner
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
491 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
492 <li>accepterから値を集計し、過半数以上のaccepterが持っている値を決める。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
493 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
494 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
495 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
496 </li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
497 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
498
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
499
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
500
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
501 </div>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
502
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
503 <div class='slide'>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
504 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
505 <h2 id="paxosの役割定義">Paxosの役割定義</h2>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
506 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
507 <li>提案
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
508 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
509 <li>異なる提案ごとにユニークな提案番号と値からなる。提案番号とは、異なる提案を見分けるための識別子であり、単調増加である。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
510 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
511 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
512 <li>値(提案)がacceptされる
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
513 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
514 <li>accepterによって値(提案)が決まること。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
515 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
516 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
517 <li>値(提案)が選択(chosen)される
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
518 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
519 <li>過半数以上のacceptorによって、値がacceptされた場合、それを値(提案)が選択されたと言う。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
520 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
521 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
522 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
523
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
524
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
525
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
526 </div>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
527
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
528 <div class='slide'>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
529 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
530 <h2 id="paxosのアルゴリズム">paxosのアルゴリズム</h2>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
531 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
532 <li>paxosのアルゴリズムは2フューズあり、一つ目のフェーズprepare-promiseと二つ目のフェーズaccept-acceptedの二つに区分される。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
533 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
534
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
535
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
536
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
537 </div>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
538
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
539 <div class='slide'>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
540 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
541 <h2 id="paxosのアルゴリズム-prepare-promise">paxosのアルゴリズム prepare-promise</h2>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
542 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
543 <li>(言葉での説明記入?)</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
544 </ul>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
545 <div style="text-align: center;">
19
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
546  <img src="../paper/images/prepare-promise.svg" alt="MetaGear" width="600" />
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
547 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
548
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
549
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
550
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
551 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
552
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
553 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
554 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
555 <h2 id="paxosのアルゴリズム-accept-accepted">paxosのアルゴリズム accept-accepted</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
556 <ul>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
557 <li>(1)proposerは過半数のacceptorから返事が来たのなら、次の提案をaccepterに送る。これをacceptリクエストという。
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
558 <ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
559 <li>(a)もし、約束のみ帰って来ているのならば、任意の値vをprepareリクエストで送った提案に設定する。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
560 <li>(b)もし、acceptされた提案が帰って来たら、その中で最大の提案番号v’をprepareリクエストで送った提案の値として設定する。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
561 </ul>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
562 </li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
563 <li>(2)acceptorはacceptリクエストが来た場合、Promiseした提案よりもacceptリクエストで提案された番号が低ければ、その提案を拒否する。それ以外の場合、acceptする。</li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
564 </ul>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
565 <div style="text-align: center;">
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
566  <img src="../paper/images/accept-accepted.pdf" alt="MetaGear" width="600" />
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
567 </div>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
568
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
569
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
570
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
571 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
572
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
573 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
574 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
575 <h2 id="paxosとproof-of-workの比較">PaxosとProof of Workの比較</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
576 <ul>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
577 <li>Proof of Workと比較しメッセージ通信量と耐障害性のトレードオフになっている。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
578 <li>Paxosでコンセンサスを取る際、Proof of Workと比較して次のようなメリットがある。
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
579 <ul>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
580 <li>CPUにリソースを消費しない。</li>
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
581 <li>Transactionの確定に時間がかからない。</li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
582 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
583 </li>
17
d1dff3305e0d upgrade
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
584 <li>Paxos自体がリーダー選出に向いているアルゴリズムである。そのため、リーダーを決定し、そのノードのブロックチェーンの一貫性のみをかんがえることができる。</li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
585 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
586
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
587
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
588
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
589 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
590
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
591 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
592 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
593 <h2 id="christieにおけるブロックチェーンの実装の利点">Christieにおけるブロックチェーンの実装の利点</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
594 <ul>
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
595 <li>データの取り出しが簡単。ChristieはDataGearという単位でデータを保持する。そのためブロックやトランザクションはDataGearに包めばいいため、どう送るか考えなくて済む。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
596 <li>TopologyManagerでのテストが便利。dotファイルがあれば、TopologyManagerが任意の形でTopologyを作れる。そのため、ノードの配置については理想の環境を作れるため、理想のテスト環境を作ることができる。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
597 <li>機能ごとにファイルが実装できるため、見通しが良い。ChristieはCbCのgotoと同じように関数が終わるとsetupによって別の関数に移動する。そのため自然に機能ごとにファイルを作るため、見通しがよくなる。</li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
598 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
599
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
600
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
601
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
602 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
603
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
604 <div class='slide'>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
605 <!-- _S9SLIDE_ -->
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
606 <h2 id="christieにおけるブロックチェーンの実装の欠点">Christieにおけるブロックチェーンの実装の欠点</h2>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
607 <ul>
18
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
608 <li>デバックが難しい。cgm.setupでCodeGearが実行されるが、keyの待ち合わせで止まり、どこのCGで止まっているのか分からないことが多かった。例えばputするkeyのスペルミスでコードの待ち合わせが起こり、CGが実行されず、エラーなども表示されずにwaitすることがある。その時に、どこで止まっているか特定するのが難しい。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
609 <li>Takefrom,PeekFromの使い方が難しい。TakeFrom,PeekFromは引数でDGMnameを指定する。しかし、DGMの名前を静的に与えるよりも、動的に与えたい場合が多かった。</li>
3e0a1680ae59 wrote ~Experiment
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
610 <li>Takeの待ち合わせでCGが実行されない。2つのCGで同じ変数をTakeしようとすると、setupされた時点で変数がロックされる。この時、片方のCGはDGがもう全て揃っているのに、全ての変数が揃っていないもう片方のCGに同名の変数がロックされ、実行されない場合がある。</li>
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
611 </ul>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
612
19
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
613
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
614
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
615 </div>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
616
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
617 <div class='slide'>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
618 <!-- _S9SLIDE_ -->
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
619 <h2 id="実験">実験</h2>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
620 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
621 <li>実際にコンセンサスアルゴリズムPaxosをPC上に分散環境を実装して検証した。分散環境場で動かすため、JobScheduleの一種であるTorque Resource Manager(Torque)を使用した。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
622 <li>Torqueはjobという単位でプログラムを管理し、リソースを確保できたら実行する。jobはqsubというコマンドを使って複数登録することができる。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
623 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
624
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
625
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
626
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
627 </div>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
628
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
629 <div class='slide'>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
630 <!-- _S9SLIDE_ -->
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
631 <h2 id="torque">Torque</h2>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
632 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
633 <li>Torqueには主に三つのNodeの種類がある。
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
634 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
635 <li>Master Node
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
636 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
637 <li>pds.serverを実行しているノード。他のノードの役割とも併用できる。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
638 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
639 </li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
640 <li>Submit/Interactive Nodes
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
641 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
642 <li>クライアントがjobを投入したり監視したりするノード。qsubやqstatのようなクライアントコマンドが実行できる。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
643 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
644 </li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
645 <li>Computer Nodes
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
646 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
647 <li>投入されたjobを実際に実行するノード。pds.momが実行されており、それによってjobをstart、kill、管理する。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
648 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
649 </li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
650 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
651 </li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
652 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
653
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
654
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
655
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
656 </div>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
657
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
658 <div class='slide'>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
659 <!-- _S9SLIDE_ -->
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
660 <h2 id="実際の実験内容">実際の実験内容</h2>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
661 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
662 <li>KVM上にMaster NOde, Submit/InteractiveNodeの役割を持つVM1台、ComputerNOdesとして15台を用意しjobへ投入。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
663 <li>一意の数を決定することが確認できた。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
664 <li>Lernerが値を選択した後も、提案番号がより大きいものを出力していたが値が覆らなかった。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
665 <li>本実験では分かりやすいよう数字で行なったが、タランザクション、ブロックに応用することでブロックチェーンのコンセンサス部分を完成させることができる。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
666 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
667
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
668 <div style="text-align: center;">
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
669  <img src="../paper/images/kvm.svg" alt="MetaGear" width="600" />
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
670 </div>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
671
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
672
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
673
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
674 </div>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
675
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
676 <div class='slide'>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
677 <!-- _S9SLIDE_ -->
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
678 <h2 id="実際にpaxosを動かした際の解説">実際にPaxosを動かした際の解説</h2>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
679 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
680 <li>単純化としてproposerの数えを2、accepterの数を3、lernerの数を1とする。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
681 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
682 <div style="text-align: center;">
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
683  <img src="../paper/images/paxos1.svg" alt="MetaGear" width="900" />
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
684 </div>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
685
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
686
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
687
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
688 </div>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
689
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
690 <div class='slide'>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
691 <!-- _S9SLIDE_ -->
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
692 <h2 id="まとめ">まとめ</h2>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
693 <ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
694 <li>Paxosの動作は確認できた。トランザクションの速度がノード数にどのように影響されるか調査する必要がある。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
695 <li>ChristieのTopology Managerは実験するノードの設定を行う集中制度ノードであり、ブロックチェーンとの相性は良くないが、分散ファイルシステムなどの用途の場合、このような手法の方がノードの管理が可能な利点がある。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
696 <li>ChristieではBlock,Transaction,Hashの生成、署名、Proof of Workのためのクラスは作られている。しかし、Transactionに置いてまだファイルのデータを入れる機能がない。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
697 <li>以上のものを組み合わせれば簡易的なブロックチェーンが作ることができ、Paxosによるブロックチェーンが分散クラスタ上でファイルやり取りをした際のスケーラビリティを計測することができるようになる。</li>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
698 </ul>
a3203802637b written finish
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
699
16
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
700 </div>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
701
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
702
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
703 </div><!-- presentation -->
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
704 </body>
2b71bf2c73c9 add slide
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
705 </html>