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} |