Jabit/docs/project2.tex

78 lines
1.9 KiB
TeX
Raw Normal View History

2015-04-22 23:10:09 +02:00
\documentclass{bfh}
\title{Project 2}
\subtitle{Bitmessage -- Communication Without Metadata}
\author{Christian Basler}
2015-04-26 20:37:19 +02:00
\tutor{Kai Brünnler}
2015-04-22 23:10:09 +02:00
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\section{Synopsis}
2015-04-26 20:37:19 +02:00
TODO
2015-04-22 23:10:09 +02:00
% Section basics
\input{basics}
The protocol is described in detail in my Seminar paper.
\section{Goal}
At the moment, there aren't many implementations apart from the official clients. Especially two things are missing: a multi purpose Java library and a usable mobile client. My goal for my \textit{Project 2} is to create the library, to be used next semester as a starting point for an Android\textsuperscript{\texttrademark} client in my Bachelor Thesis.
\section{Issues}
2015-04-26 20:37:19 +02:00
TODO
\subsection{Unsigned Numbers}
Java doesn't support unsigned number types. While Java 8 has some helper classes to address this issue, my goal is to support Java 7, which is needed for Android development, so I wasn't able to leverage them.
2015-04-22 23:10:09 +02:00
\subsection{Proof of Work}
Proof of work is needed for a message to be distributed within the Bitmessage network. This is to protect both the network itself from denial of service attacks and the users from spam.
\section{Architecture}
\subsection{Ports and Adapters}
The library uses a ports and adapters architecture, which allows us to easily replace some implementations that might be platform dependent, such as storage or proof of work calculation.
\includegraphics[width=\textwidth]{images/ports_and_adapters.pdf}
The big advantage of this approach is that it's easy to test the core as well as each adapter by itself.
\subsection{Network Management}
2015-04-26 20:37:19 +02:00
\section{Usage}
TODO
2015-04-22 23:10:09 +02:00
\section{Discussion}
\appendix
\addcontentsline{toc}{section}{Appendix}
\section*{Appendix}
\renewcommand{\thesubsection}{\Alph{subsection}}
\subsection{JavaDoc Documentation}
\subsection{Literature}
\end{document}