Documentation

This commit is contained in:
Christian Basler 2015-04-22 23:10:09 +02:00
parent 51c1ecfd41
commit 096f5db1bb
8 changed files with 299 additions and 0 deletions

38
docs/.gitignore vendored Normal file
View File

@ -0,0 +1,38 @@
# Created by https://www.gitignore.io
### LaTeX ###
*.acn
*.acr
*.alg
*.aux
*.bbl
*.bcf
*.blg
*.dvi
*.fdb_latexmk
*.glg
*.glo
*.gls
*.idx
*.ilg
*.ind
*.ist
*.lof
*.log
*.lot
*.maf
*.mtc
*.mtc0
*.nav
*.nlo
*.out
*.pdfsync
*.ps
*.run.xml
*.snm
*.synctex.gz
*.toc
*.vrb
*.xdy
*.tdo

7
docs/basics.tex Normal file
View File

@ -0,0 +1,7 @@
\section{Basics}
While encryption technology like PGP or S/MIME provides a secure way to protect content from prying eyes, we lerned from Edward Snowden that metadata - information about who communicates with whom - is equally interesting and much easier to analyze.
With e-mail, we can only prevent this by encrypting the connection to the server as well as between servers. Therefore we can only hope that both our and the recipient's e-mail provider are both trustworthy and competent.
With Bitmessage we send a message to a sufficiently large number of participants, with the intended recipient among them. The message is encrypted such as only the person in possesion of the private key can decrypt it. All participants try to do this in order to find their messages.

13
docs/bfh.cls Normal file
View File

@ -0,0 +1,13 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{bfh}[2015/04/21 Class for my BFH reports]
\LoadClass[12pt]{scrartcl}
\usepackage{mathtools}
\usepackage{amsfonts}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{textgreek}
\usepackage{centernot}

Binary file not shown.

View File

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="679.7655"
height="591.2851"
id="svg2"
version="1.1"
inkscape:version="0.48.5 r10040"
sodipodi:docname="ports_and_adapters.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="149.17872"
inkscape:cy="85.139761"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1632"
inkscape:window-height="1005"
inkscape:window-x="48"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.678419,-26.216821)">
<path
inkscape:transform-center-y="-23.12416"
inkscape:transform-center-x="10.947617"
d="m 465.92439,509.82496 c -1.78891,1.03067 -204.67101,0.84709 -206.45806,-0.18682 -1.78704,-1.03391 -103.06911,-176.82675 -103.06724,-178.89133 0.002,-2.06458 101.6019,-177.67385 103.39081,-178.70452 1.78892,-1.03067 204.67102,-0.84709 206.45806,0.18682 1.78705,1.0339 103.06912,176.82675 103.06725,178.89133 -0.002,2.06458 -101.6019,177.67384 -103.39082,178.70452 z"
inkscape:randomized="9.7491459e-16"
inkscape:rounded="0.01"
inkscape:flatsided="true"
sodipodi:arg2="1.5717012"
sodipodi:arg1="1.0481024"
sodipodi:r2="214.49513"
sodipodi:r1="206.45815"
sodipodi:cy="330.93362"
sodipodi:cx="362.85715"
sodipodi:sides="6"
id="path2997"
style="fill:#5fbcd3;fill-opacity:1;stroke:none;stroke-width:0.10000000000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="star"
transform="matrix(1.645857,0,0,1.645857,-238.64982,-222.81004)" />
<path
sodipodi:type="star"
style="fill:#ffd42a;fill-opacity:1;stroke:none;stroke-width:0.10000000000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path2985"
sodipodi:sides="6"
sodipodi:cx="362.85715"
sodipodi:cy="330.93362"
sodipodi:r1="206.45815"
sodipodi:r2="214.49513"
sodipodi:arg1="1.0481024"
sodipodi:arg2="1.5717012"
inkscape:flatsided="true"
inkscape:rounded="0.01"
inkscape:randomized="9.7491459e-16"
d="m 465.92439,509.82496 c -1.78891,1.03067 -204.67101,0.84709 -206.45806,-0.18682 -1.78704,-1.03391 -103.06911,-176.82675 -103.06724,-178.89133 0.002,-2.06458 101.6019,-177.67385 103.39081,-178.70452 1.78892,-1.03067 204.67102,-0.84709 206.45806,0.18682 1.78705,1.0339 103.06912,176.82675 103.06725,178.89133 -0.002,2.06458 -101.6019,177.67384 -103.39082,178.70452 z"
inkscape:transform-center-x="6.6516253"
inkscape:transform-center-y="-14.049918"
transform="translate(-4.2959915,-9.0742422)" />
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
x="358.36584"
y="218.6479"
id="text2987"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="358.36584"
y="218.6479"
id="tspan2995"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">Domain</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2999"
y="94.647903"
x="359.22522"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
xml:space="preserve"><tspan
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
id="tspan3003"
y="94.647903"
x="359.22522"
sodipodi:role="line">Adapters</tspan></text>
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
x="-100.75645"
y="246.52264"
id="text3042"
sodipodi:linespacing="125%"
transform="matrix(0.47970506,-0.8774298,0.8774298,0.47970506,0,0)"><tspan
sodipodi:role="line"
x="-100.75645"
y="246.52264"
id="tspan3044"
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique">Storage</tspan></text>
<text
transform="matrix(0.53345366,0.84582929,-0.84582929,0.53345366,0,0)"
sodipodi:linespacing="125%"
id="text3046"
y="-357.84464"
x="471.47845"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
xml:space="preserve"><tspan
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique"
y="-357.84464"
x="471.47845"
sodipodi:role="line"
id="tspan3050">Proof of Work</tspan></text>
<text
transform="matrix(-0.51536966,-0.85696798,0.85696798,-0.51536966,0,0)"
sodipodi:linespacing="125%"
id="text3054"
y="-85.847336"
x="-455.38437"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
xml:space="preserve"><tspan
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique"
id="tspan3056"
y="-85.847336"
x="-455.38437"
sodipodi:role="line">User Interface</tspan></text>
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Constantia;-inkscape-font-specification:Constantia"
x="92.095795"
y="-700.29236"
id="text3058"
sodipodi:linespacing="125%"
transform="matrix(-0.51365875,0.85799458,-0.85799458,-0.51365875,0,0)"><tspan
id="tspan3060"
sodipodi:role="line"
x="92.095795"
y="-700.29236"
style="font-size:32px;font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Oblique">Network</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
docs/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/project2.pdf Normal file

Binary file not shown.

69
docs/project2.tex Normal file
View File

@ -0,0 +1,69 @@
\documentclass{bfh}
\title{Project 2}
\subtitle{Bitmessage -- Communication Without Metadata}
\author{Christian Basler}
\date{\today}
\begin{document}
\maketitle
\begin{figure}[h]
\includegraphics[width=0.2\textwidth]{logo.png}
\centering
\end{figure}
\tableofcontents
\section{Synopsis}
% 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}
\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{Discussion}
\appendix
\addcontentsline{toc}{section}{Appendix}
\section*{Appendix}
\renewcommand{\thesubsection}{\Alph{subsection}}
\subsection{JavaDoc Documentation}
\subsection{Literature}
\end{document}