# HG changeset patch # User akahori # Date 1549357241 -32400 # Node ID 008ac0554ff5c4448b5ff6e108fb50c57e285854 # Parent 7ef98431918da12ef8c032acb3524e1e45f03182 add files diff -r 7ef98431918d -r 008ac0554ff5 christie implemented blockchain.xmind Binary file christie implemented blockchain.xmind has changed diff -r 7ef98431918d -r 008ac0554ff5 final_main/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/Makefile Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,90 @@ +# target and root file name +TARGET = main + +# class files +CLASS_FILE = + +# figure pass +FIG_DIR = ./fig + +# ebb or extractbb +EBB = extractbb + +# dependent document files +TEX_FILES = \ + bibliography.tex \ + chapter*.tex \ + thanks.tex \ + +# dependent image files +SVG_FILES = + +# use bibtex or not (yes|no) +BIBTEX_ENABLED = no + +# commands to compile document +LATEX = platex +BIBTEX = pbibtex +DVIPDF = dvipdfmx +DVIPS = dvips + +# generated files +DVI_FILE = $(TARGET).dvi +PDF_FILE = $(TARGET).pdf +PS_FILE = $(TARGET).ps +TEX_FILES += $(TARGET).tex +EPS_FILES = $(SVG_FILES:%.svg=%.eps) +AUX_FILES = $(TEX_FILES:%.tex=%.aux) +GENERATED_FILE = \ + $(EPS_FILES) \ + $(DVI_FILE) \ + $(PDF_FILE) \ + $(AUX_FILES) \ + $(TARGET).log \ + $(TARGET).toc \ + $(TARGET).bbl \ + $(TARGET).blg \ + $(TARGET).lof \ + $(TARGET).lol \ + texput.log + +.DEFAULT_GOAL = pdf + +.PHONY : pdf +pdf : $(PDF_FILE) + open $(TARGET).pdf +$(PDF_FILE) : $(DVI_FILE) $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE) + $(DVIPDF) $(TARGET) + +.PHONY : ps +ps : $(PS_FILE) +$(PS_FILE) : $(DVI_FILE) $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE) + $(DVIPS) $(TARGET) + +.PHONY : dvi +dvi : $(DVI_FILE) +$(DVI_FILE) : $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE) + $(LATEX) -halt-on-error $(TARGET) +ifeq ($(BIBTEX_ENABLED),yes) + $(BIBTEX) $(TARGET) +endif + $(LATEX) -halt-on-error $(TARGET) + $(LATEX) -halt-on-error $(TARGET) + +%.eps : %.svg + inkscape --export-area-drawing --without-gui --file="$<" --export-eps="$@" + +.PHONY : clean +clean: + rm -f $(GENERATED_FILE) + +.PHONY : help +help: + @echo "make dvi" + @echo " Make DVI file from tex documents." + @echo "make pdf" + @echo " Make PDF file from DVI file." + @echo "make ps" + @echo " Make PS file from DVI file." + @echo "make clean" + @echo " Remove all generated files." diff -r 7ef98431918d -r 008ac0554ff5 final_main/bibliography.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/bibliography.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,23 @@ +% 参考文献 +\def\line{−\hspace*{-.7zw}−} + +\begin{thebibliography}{99} +%\bibitem{*}内の * は各自わかりやすい名前などをつけて、 +%論文中には \cite{*} のように使用する。 +%これをベースに書き換えた方が楽かも。 +%書籍、論文、URLによって若干書き方が異なる。 +%URLを載せる人は参考にした年月日を最後に記入すること。 + + \bibitem{1} + +% \bibitem{gears} +% {伊波立樹, 東恩納琢偉, 河野真治}: Code Gear、Data Gear に基づく OS のプロトタイプ +% , 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS) (2016). + +% \bibitem{llvm} +% The LLVM Compiler Infrastructure. \\\verb|http://llvm.org| + +% \bibitem{llvm_ir} +% LLVM Language Reference Manual. \\\verb|http://llvm.org/docs/LangRef.html| + +\end{thebibliography} diff -r 7ef98431918d -r 008ac0554ff5 final_main/chapter1/chapter1.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/chapter1/chapter1.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,19 @@ +\chapter{はじめに} +\label{chap:introduction} +\pagenumbering{arabic} + +% 序論の目安としては1枚半ぐらい. +\section{研究背景} + + +\section{研究目的} +コンピュータにおいてデータの破損や不整合は深刻な異常を引き起こす原因となる. そのため, 破損, 不整合を検知するためにブロックチェーン技術を用いる. ブロックチェーンは分散ネットワーク技術であり, データの破損や不整合をハッシュ値によって比較できる. そして, 誤操作や改ざんがあった場合でも, ブロックチェーンを用いることで簡単にデータの追跡が行える. + +当研究室では分散フレームワークとしてChristieを開発しており, これはGearsOSにファイルシステムとして組み込む予定がある. そのため, Christieにブロックチェーンを実装し, GearsOSに組み込むことにより, GearsOSのファイルシステムにおいてデータの破損, 不整合を検知できる. また, GearsOS同士による分散ファイルシステムを構成することができ, 非中央的にデータの検証ができるようになる. もし分散システムを構成しない場合でもデータの整合性保持は行え, 上記の目的は達成できる. + +本研究では, Christieにブロックチェーンを実装し, 分散環境で動かすことで, データの整合性保持, 追跡が行えるか確かめる. + + +%\section{論文の構成} + +%\section{Introduction} diff -r 7ef98431918d -r 008ac0554ff5 final_main/chapter2/chapter2.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/chapter2/chapter2.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,11 @@ +\input{/Users/e155753/.tex/setup} + +%%文書開始**************************** +\begin{document} +%%************************************** +\chapter{ブロックチェーンについて} + +ブロックチェーンとは分散型台帳技術とも呼ばれ, 複数のトランザクションをまとめたブロック, そのブロックをハッシュによってつなげ, 前後関係を表した台帳というものを, システムに参加しているすべてのノードが保持する技術である. + +%%文書終了**************************** +\end{document} \ No newline at end of file diff -r 7ef98431918d -r 008ac0554ff5 final_main/chapter3/chapter3.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/chapter3/chapter3.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,3 @@ +\chapter{コンセンサスアルゴリズムについて} + + diff -r 7ef98431918d -r 008ac0554ff5 final_main/chapter4/chapter4.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/chapter4/chapter4.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,56 @@ +\input{/Users/e155753/.tex/setup} + +%%文書開始**************************** +\begin{document} +%%************************************** +\chapter{Christieについて} + +Christieは当研究室で開発している分散フレームワークである. Christieには分散プログラムを簡潔に書くための工夫が複数ある. +本章ではChristieについて述べる. +\section{Christieとは} +ChristieはJavaで書かれた分散フレームワークである. Christieは当研究室で開発している GearsOSに組み込まれる予定がある. そのため, GearsOS を構成する言語 Continuation based C と似た概念がある. Christie に存在する概念として次のようなものがある. + +\begin{itemize} +\item CodeGear(以下 CG) +\item DataGear(以下 DG) +\item CodeGearManager(以下 CGM) +\item DataGearManager(以下 DGM) +\end{itemize} + +CGはクラス, スレッドに相当し, javaの継承を用いて記述する. DGは変数データに相当し, CG内でアノテーションを用いて変数データを取り出せる. CGM はノードであり, DGM, CG, DG を管理する. DGM は DG を管理するものであり, put という操作により変数データ, つまり DG を格納できる. +DGMのput操作を行う際にはLocalとRemoteと2つのどちらかを選び, 変数のkeyとデータを引数に書く. Localであれば, Local のCGMが管理しているDGMに対し, DGを格納していく. Remoteであれば接続したRemote先の CGMのDGMにDGを格納できる. put操作を行ったあとは, 対象のDGMの中にqueueとして保管される. +DGを取り出す際には, CG内で宣言した変数データにアノテーションをつける. DGのアノテーションにはTake, Peek, TakeFrom, PeekFromの4つがある. +\begin{description} +\item[Take] 先頭のDGを読み込み, そのDGを削除する. DGが複数ある場合, この動作を用いる. +\item[Peek] 先頭のDGを読み込むが, DGが削除されない. そのため, 特に操作をしない場合は同じデータを参照し続ける. +\item[TakeFrom(Remote DGM name)] Takeと似ているが, Remote DGM nameを指定することで, その接続先(Remote)のDGMからTake操作を行える. +\item[PeekFrom(Remote DGM name)] Peekと似ているが, Remote DGM nameを指定することで, その接続先(Remote)のDGMからPeek操作を行える. +\end{description} + +以上が, Christieの概要である. + +\section{プログラミングの例} + +CGMを作り, setup(new CodeGear)を動かすことにより, DGを待ち合わせ, DGが揃った場合にCodeGearが実行される. CGMを作る方法はStartCodeGear(以下SCG)を継承したものからcreateCGM(port) methodを実行することにより, CGMが作られる. 以下がコードの例である. + +\lstinputlisting[caption=StartHelloWorld,label=StartHelloWorld]{../src/HelloWorld/StartHelloWorld.java} + +\section{} + + + +\newpage + +%%文書終了**************************** +\end{document} + + + + + + + + + + + diff -r 7ef98431918d -r 008ac0554ff5 final_main/chapter5/chapter5.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/chapter5/chapter5.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,2 @@ +% 今後の課題 +\chapter{評価} diff -r 7ef98431918d -r 008ac0554ff5 final_main/chapter6/chapter6.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/chapter6/chapter6.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,10 @@ +%\input{/Users/e155753/.tex/setup} + +%%文書開始**************************** +\begin{document} +%%************************************** +\chapter{まとめ} + + +%%文書終了**************************** +\end{document} diff -r 7ef98431918d -r 008ac0554ff5 final_main/fig/ryukyu.pdf Binary file final_main/fig/ryukyu.pdf has changed diff -r 7ef98431918d -r 008ac0554ff5 final_main/main.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/main.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,130 @@ +\documentclass[a4j,12pt]{jreport} +\usepackage[dvipdfmx]{graphicx} +\usepackage{mythesis} +\usepackage{bussproofs} +\usepackage{multirow} +\usepackage{here} +\usepackage{listings} +\usepackage{url} +\usepackage{cite} +\usepackage{listings} +\usepackage{amssymb} +\usepackage{amsmath} +\usepackage{listings,jlisting} +\usepackage[utf8]{inputenc} +\usepackage{docmute} + +\lstset{ + basicstyle={\ttfamily}, + breaklines=true,%自動で折り返す。 + columns=[l]{fullflexible}, + commentstyle={\footnotesize\ttfamily}, + escapechar={@}, + frame=single, + framerule=.5pt, + identifierstyle={\ttfamily}, + keepspaces=true, + keywordstyle={\footnotesize\ttfamily}, + language={}, + lineskip=-0.1zw, + numbers=left, + numbersep=1em, + numberstyle={\scriptsize}, + stepnumber=1, + stringstyle={\footnotesize\ttfamily}, + tabsize=4, + xleftmargin=0zw, + xrightmargin=0zw, +} + +% \lstset{ +% language={C}, +% basicstyle={\footnotesize\ttfamily}, +% identifierstyle={\footnotesize}, +% commentstyle={\footnotesize\itshape}, +% keywordstyle={\footnotesize\bfseries}, +% ndkeywordstyle={\footnotesize}, +% stringstyle={\footnotesize\ttfamily}, +% frame={tb}, +% breaklines=true, +% columns=[l]{fullflexible}, +% numbers=left, +% xrightmargin=0zw, +% xleftmargin=3zw, +% numberstyle={\scriptsize}, +% stepnumber=1, +% numbersep=1zw, +% lineskip=-0.5ex +% } +\def\lstlistingname{ソースコード} +\def\lstlistlistingname{ソースコード目次} +\setlength{\itemsep}{-1zh} +\title{Christieによるブロックチェーンの実装} +\icon{ + \includegraphics[width=80mm,bb=0 0 595 642]{fig/ryukyu.pdf} %%元は 642じゃなくて842 +} +\year{平成31年度 卒業論文} +\belongto{琉球大学工学部情報工学科} +\author{155753E 赤堀 貴一 \\ 指導教員 {河野 真治} } +%% +%% プリアンブルに記述 +%% Figure 環境中で Table 環境の見出しを表示・カウンタの操作に必要 +%% +\makeatletter +\newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}} +\newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}} +\def\lst@lettertrue{\let\lst@ifletter\iffalse} % +\makeatother +\setlength\abovecaptionskip{0pt} + +\begin{document} + +% タイトル +\maketitle +\baselineskip 17pt plus 1pt minus 1pt + +\pagenumbering{roman} +\setcounter{page}{0} + +\tableofcontents % 目次 +\listoffigures % 図目次 +%\listoftables % 表目次 +\lstlistoflistings + +%以下のように、章ごとに個別の tex ファイルを作成して、 +% main.tex をコンパイルして確認する。 +%章分けは個人で違うので下のフォーマットを参考にして下さい。 + +% 研究目的 +\input{chapter1/chapter1.tex} + +% ブロックチェーンについて +\input{chapter2/chapter2.tex} + +% コンセンサスアルゴリズムについて +\input{chapter3/chapter3.tex} + +% Christieについて +\input{chapter4/chapter4.tex} + +% 評価 +\input{chapter5/chapter5.tex} + +% まとめ +\input{chapter6/chapter6.tex} + +% 参考文献 + +% \bibliographystyle{junsrt} +% \bibliography{reference} + +\input{bibliography.tex} + +% 謝辞 +\input{thanks.tex} + +\appendix +% 付録 +%\input{appendix.tex} + +\end{document} diff -r 7ef98431918d -r 008ac0554ff5 final_main/mythesis.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/mythesis.sty Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,156 @@ +% +% 卒業論文スタイルファイル(mythesis.sty) +% version 1.0e +% +% ver 1.0e 02/07/2000 since +% usage: + +%\documentclass[a4j]{jreport} +%\usepackage{master_paper} +% +% +%\title{卒論タイトル \\ 長い} +%\etitle{\pLaTeX2e style test file for Teri's thesis } +%\year{平成11年度} +%\belongto{琉球大学大学工学部\\ 情報工学科} +%\author{豊平 絵梨} +% +%\begin{document} +% +%\maketitle +% +%%要旨 +%\input{abstract.tex} +% +%%目次 +%\tableofcontents +% +%%図目次 +%\listoffigures +% +%%表目次 +%\listoftables +% +%%第一章 +%\input{chapter1.tex} +%%chapter1.texの\chapter{}の後ろに次のコマンドを追加してください。 +%%ページカウントがリセットされ、ページ数がアラビア文字になります。 +%% \pagenumbering{arabic} +%%第二章 +%\input{chapter2.tex} +%%第三章 +%\input{chapter3.tex} +% +%%付録 +%\input{appendix.tex} +% +%%謝辞 +%%\input{thanx.tex} +% +%%参考文献 +%\input{biblography.tex} +% +%\end{document} + + +%長さ設定 +%\setlength{\topmargin}{-30mm} +%\addtolength{\oddsidemargin}{-15mm} +%\addtolength{\textwidth}{60mm} + +\topmargin -1in \addtolength{\topmargin}{35mm} +\headheight 0mm +\headsep 0mm +\oddsidemargin -1in \addtolength{\oddsidemargin}{30mm} +%\evensidemargin -1in \addtolength{\evensidemargin}{8mm} +\textwidth 160mm +\textheight 230mm +%\footheight 0mm +%\footskip 0mm +%\pagestyle{empty} + + +%年度 +\def\@year{} +\def\year#1{\gdef\@year{#1}} +%英文タイトル +\def\@etitle{} +\def\etitle#1{\gdef\@etitle{#1}} +%アイコン +\def\@icon{} +\def\icon#1{\gdef\@icon{#1}} +%所属 +\def\@belongto{} +\def\belongto#1{\gdef\@belongto{#1}} + +%表紙 +\renewcommand{\maketitle}{% +\newpage\null +\thispagestyle{empty} +\vskip 0cm% +\begin{center}% +\let\footnote\thanks + {\huge \@year \par}% + \vskip 3em% + {\Huge \@title \par}% + \vskip 1em% + {\huge \@etitle \par}% + \vskip 8em% + {\huge \@icon \par}% + \vskip 0.5em% + {\huge \@belongto \par}% + \vskip 1.0em% + {\huge \@author \par}% + +\end{center}% +\par\vskip 1.5em +} + + +%abstract +\renewenvironment{abstract}{% + \titlepage + \thispagestyle{empty} + \null\vfil + \@beginparpenalty\@lowpenalty + {\Huge \bfseries \abstractname}% + \begin{center}% + \@endparpenalty\@M + \end{center} +}% + + +%目次 +\renewcommand{\tableofcontents}{% + \pagestyle{plain} + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + } \pagenumbering{roman}\@starttoc{toc}% + \if@restonecol\twocolumn\fi +} + +%章 +\renewcommand{\chapter}{% + \pagestyle{plain} + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{jpl@in}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} + + +\renewcommand{\prepartname}{} %\renewcommand{\prepartname}{第} +\renewcommand{\postpartname}{部} +\renewcommand{\prechaptername}{第}%\renewcommand{\prechaptername}{第} +\renewcommand{\postchaptername}{章} +\renewcommand{\contentsname}{目 次} +\renewcommand{\listfigurename}{図 目 次} +\renewcommand{\listtablename}{表 目 次} +\renewcommand{\bibname}{参考文献} +\renewcommand{\indexname}{索 引} +\renewcommand{\figurename}{図} +\renewcommand{\tablename}{表} +\renewcommand{\appendixname}{付 録} +\renewcommand{\abstractname}{要 旨} diff -r 7ef98431918d -r 008ac0554ff5 final_main/thanks.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_main/thanks.tex Tue Feb 05 18:00:41 2019 +0900 @@ -0,0 +1,25 @@ +\input{/Users/e155753/.tex/setup} + +%%文書開始**************************** +\begin{document} +%%************************************** + +\chapter*{謝辞} +\thispagestyle{empty} + +%基本的な内容は以下の通り.参考にしてみて下さい. +%厳密な決まりは無いので,個々人の文体でも構わない. +%GISゼミや英語ゼミに参加した人はその分も入れておく. +%順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.) + +\hspace{1zw} +本研究を行うにあたり, 日頃より多くの助言, ご指導いただきました河野真治准教授に心より感謝申し上げます。 + +また, 本実験の測定にあたり, torqueの環境構築に協力してくださった前城健太郎先輩, また, たくさんの温かい励ましをくださった照屋のぞみ先輩. 並列信頼研究室の全てのメンバーに深く感謝いたします。最後に、物心両面で支えてくれた両親に深く感謝いたします。 + +%% \begin{flushright} +%% % 2019年 3月 赤堀貴一 +%% \end{flushright} + +%%文書終了**************************** +\end{document} \ No newline at end of file