Documentation
This commit is contained in:
parent
51c1ecfd41
commit
096f5db1bb
38
docs/.gitignore
vendored
Normal file
38
docs/.gitignore
vendored
Normal 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
7
docs/basics.tex
Normal 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
13
docs/bfh.cls
Normal 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}
|
BIN
docs/images/ports_and_adapters.pdf
Normal file
BIN
docs/images/ports_and_adapters.pdf
Normal file
Binary file not shown.
172
docs/images/ports_and_adapters.svg
Normal file
172
docs/images/ports_and_adapters.svg
Normal 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
BIN
docs/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
docs/project2.pdf
Normal file
BIN
docs/project2.pdf
Normal file
Binary file not shown.
69
docs/project2.tex
Normal file
69
docs/project2.tex
Normal 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}
|
Loading…
Reference in New Issue
Block a user