78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \documentclass{bfh}
 | |
| 
 | |
| \title{Project 2}
 | |
| \subtitle{Bitmessage -- Communication Without Metadata}
 | |
| \author{Christian Basler}
 | |
| \tutor{Kai Brünnler}
 | |
| \date{\today}
 | |
| 
 | |
| \begin{document}
 | |
|   \maketitle
 | |
| 
 | |
|   \tableofcontents
 | |
| 
 | |
|   \section{Synopsis}
 | |
| 
 | |
|   TODO
 | |
| 
 | |
| 
 | |
|   % 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}
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   \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}
 | |
| 
 | |
| 
 | |
|   \section{Usage}
 | |
| 
 | |
|   TODO
 | |
| 
 | |
| 
 | |
|   \section{Discussion}
 | |
| 
 | |
| 
 | |
|   \appendix
 | |
|   \addcontentsline{toc}{section}{Appendix}
 | |
|   \section*{Appendix}
 | |
|   \renewcommand{\thesubsection}{\Alph{subsection}}
 | |
| 
 | |
| 
 | |
|   \subsection{JavaDoc Documentation}
 | |
| 
 | |
| 
 | |
|   \subsection{Literature}
 | |
| 
 | |
| 
 | |
| \end{document} |