add some notes + bibliography

This commit is contained in:
Trolli Schmittlauch 2019-09-05 15:38:36 +02:00
parent 1cda712789
commit 27806b4619

View file

@ -42,6 +42,7 @@
% or whatever
\usepackage[backend=biber, sorting=none]{biblatex}
\addbibresource{literature.bib}
\usepackage{ccicons}
\usepackage{wrapfig}
@ -124,10 +125,10 @@ for Federated Social Networks}
\maketitle
\note{introduce myself:\\
known as schmittlauch on the Internet\\
usually go by schmittlauch on the Internet\\
student of Computer Science @ TU Dresden\\
interest in federated systems and unusual social networks\\
presenting my work on a study paper from this year}
presenting my work on a student research paper from this year}
\begin{frame}{Outline}
@ -174,7 +175,7 @@ presenting my work on a study paper from this year}
\begin{frame}{Importance of \#Hashtags}{}
Hashtags are used for marking posts about certain topics or events:
\note{mark topics of posts, make them discoverable by content. No full text search in fediverse}
\note{mark topics of posts, make them discoverable by content. No decentralised full text search in Fediverse (centralised search engines)}
\begin{columns}
\begin{column}{0.47\textwidth}
@ -200,7 +201,8 @@ Hashtags are used for marking posts about certain topics or events:
\includegraphics[height=0.6\paperheight]{figures/Elephant_Friend_(Greeting).png}
}
\only<4>{
\includegraphics[width=\textwidth]{figures/hashtag_gezipark.jpg}
\includegraphics[width=\textwidth]{figures/hashtag_gezipark.jpg}\\
\tiny{\ccby \href{https://creativecommons.org/licenses/by/4.0/}{CC BY 4.0 International} by \href{https://metronaut.de}{Metronaut}}
}
\only<5>{
\includegraphics[height=0.6\paperheight]{figures/hashtag_metoo.jpg}\\
@ -215,7 +217,7 @@ Hashtags are used for marking posts about certain topics or events:
\subsection{State of Hashtags in the Fediverse}
\begin{frame}{State of Hashtags on the Fediverse}{}
{\center \Large Hashtags are used in the fediverse}
{\center \Large Hashtags are used in the Fediverse}
\pause
\vspace{2em}
@ -255,13 +257,14 @@ Hashtags are used for marking posts about certain topics or events:
\begin{column}{0.55\textwidth}
\includegraphics[height=0.6\paperheight]{figures/push_federation.pdf}
\end{column}
\note{example scenario with 4 instances}
\begin{column}{0.45\textwidth}
\begin{itemize}
\only<1>{\item subscription to \texttt{@alice@cyber.space} by contacting instance \texttt{cyber.space}}
\only<2>{\item all future posts by alice are delivered to instances of subscribers, but \textit{not} instances without any subscriber}
\only<3>{\item other ways for posts to reach an instance:\\ boosts, thread resolution}
\only<2>{\item all future posts by Alice are delivered to instances of subscribers, but \textit{not} instances without any subscriber\note[item]{cyber.space may not even be aware of existence of other instances}}
\only<3>{\item other ways for posts to reach an instance:\\ boosts, thread resolution\note[item]{posts can disseminate through other means}}
\end{itemize}
\end{column}
\end{columns}
@ -274,7 +277,7 @@ Hashtags are used for marking posts about certain topics or events:
\item centralised actor relaying all incoming posts
\item single point of failure, which relay to choose?
\item relaying all incoming posts \(\Rightarrow\) huge load on small instances
\item only access to posts sent after initial subscribtion
\item only access to posts sent after initial subscription
\end{itemize}
\item Diaspora* SocialRelay
\begin{itemize}
@ -301,12 +304,14 @@ Hashtags are used for marking posts about certain topics or events:
\begin{frame}{System Architecture}{adding a DHT backend to the fediverse}
core idea: distribute responsibility for tags among instances using a \textbf{D}istributed \textbf{H}ash \textbf{T}able, \note{distribute responsibility for posts of a hashtag = relaying \& storage}
\note[item]{subscription to all posts of a user possible because there is a single responsible instance}
core idea: distribute responsibility for tags among instances using a \textbf{D}istributed \textbf{H}ash \textbf{T}able, \note[item]{distribute responsibility for posts of a hashtag = relaying \& storage}
based on Chord
based on Chord \cite{stoicaChordScalablePeertopeer2003}
%ToDo for Kolloquium: reason for Chord
\note[item]{DHT: structured P2P networks providing efficient (log N) key-value storage and lookup}
\note[item]{self-organising, no central authority}
\note[item]{DHT: structured P2P networks, self-organising, no central authority}
\note[item]{ provides efficient (log N) key-value storage and lookup}
\end{frame}
@ -315,7 +320,7 @@ based on Chord
\begin{column}{0.4\textwidth}
\begin{itemize}
\item calculate hash value of keys and node IDs
\item place these hashes onto the same circular name space
\item place these hashes onto the same circular name space
\item each node keeps routing table of \(\log \#number\_nodes\) entries\note[item]{joining and leaving covered in paper}
\end{itemize}
\end{column}
@ -332,6 +337,7 @@ based on Chord
\begin{itemize}
\item next nodeID \(\geq\) \texttt{hash(hashtag)} (mod keyspace size) is responsible for handling posts containing \texttt{hashtag}
\item DHT used for iterative lookup of responsible relay/ storage node
\item my architecture: namespace = \(2^{256}\) with 256bit-long IDs
\end{itemize}
\end{column}
@ -343,7 +349,7 @@ based on Chord
\begin{frame}{Publishing, Relaying and Storage}{lifecycle of posts}
\begin{enumerate}
\item publishing instance looks up responsible relay instance on DHT for each included hashtag
\item publishing instance looks up responsible relay instance on DHT for each included hashtag\note[item]{calculate hashum of hashtag -> lookup key for DHT}
\item publishing instance sends post to responsible relay instance
\item relay instance looks up responsible storage node on DHT
\item relay instance verifies incoming post's signature, then relays post URI (ID) to all subscribers + storage node\note[item]{only post ID relayed, but not full post content. Reasons: LDSignatures not supported everywhere, deniability \& revocation}
@ -363,7 +369,9 @@ based on Chord
\end{frame}
\begin{frame}
\note{so far so easy. But load distribution issues}
\note{so far so easy.\\
what hashtags does a certain instance handle?\\
can it bear the load?}
\begin{itemize}
\item node ID determines set of hashtags handled by instance
\item problem: for security reasons, node \textbf{must not} choose their IDs freely
@ -377,7 +385,7 @@ based on Chord
\includegraphics[width=0.49\textwidth]{statistics/geraspora_hashtags_total.png}
\note{analysis of a 1 month dump of Twitter, Geraspora (Diaspora) and Friendica posts\\
Twitter: 70\% of posts used just once\\
Twitter: 70\% of hashtags used just once\\
note the logarithmic axis!}
distribution of posts per hashtag follows a steep power law
@ -387,11 +395,13 @@ distribution of posts per hashtag follows a steep power law
\begin{frame}{Load Balancing}{of hashtags between nodes}
\begin{itemize}
\item \textit{k-choices} algorithm by Ledlie and Seltzer
\item each node can choose from \(\kappa\) possible IDs
%ToDo for Kolloquium: reasonf or choosing that algorithm
\item \textit{k-choices} algorithm by Ledlie and Seltzer \cite{ledlieHarvardTechnicalReport2004}
\item a node can represent several \textit{virtual nodes} on the DHT
\item \(\kappa\) possible virtual node IDs: \(ID =\) hash(\(ID' ++ i\))\(, i \in \{0, 1, \dots, \kappa-1\}\)
\item nodes have a \textbf{capacity} and choose set of active IDs according to lowest mismatch of own and neighbour node capacity
\item querying load of potential IDs before joining, periodic re-balancing
\item independent load balancing of relay and storage nodes due to independent DHTs
\item independent load balancing of relay and storage nodes due to independent DHTs\note[item]{enable different roles ``relay'', ``storage'' to balance independently: 2 DHTs}
\note[item]{a simple simulation on the effectivity of the balancing algorithm can be found in the paper}
\end{itemize}
% for Kolloquium, add simulation result
@ -401,7 +411,7 @@ distribution of posts per hashtag follows a steep power law
\begin{columns}
\begin{column}{0.55\textwidth}
\begin{itemize}
\item store redundant copies of hashtag data at equal distances on Chord ring\note{resilience against node failure, allows data validation through cross-checking}
\item store redundant copies of hashtag data at equal distances on Chord ring, inspired by Harvesf and Blough \cite{harvesfEffectReplicaPlacement2006}\note{resilience against node failure, allows data validation through cross-checking}
\item default redundancy: \(2^2 = 4\), scalable in powers of 2
\item \textbf{relay nodes}: hot standby nodes take over in overload situations (load spikes)
\item \textbf{storage nodes}: overloaded nodes can split stored posts by content hash and double redundancy set
@ -420,6 +430,8 @@ distribution of posts per hashtag follows a steep power law
\begin{frame}{Discussion}{I need YOUR feedback}
I want feedback from all of you, no matter whether it's from a \textit{\LARGE technical} or from a \textit{\LARGE social perspective}.
\note{architecture just a concept so far\\
before implementations: several open questions}
\end{frame}
@ -429,10 +441,9 @@ I want feedback from all of you, no matter whether it's from a \textit{\LARGE te
Do we even want global hashtags in the Fediverse?
\begin{itemize}
\item positive potential (conversation, coordination) vs. negative potential (spam, harrasment)
\item positive potential (conversation, coordination) vs. negative potential (spam, harrassment)
\item visibility level: public posts only, unlisted, new level necessary?
\item relaying post URI only should provide plausible deniability
\item Does this circumvent instance-blocks and is this bad?
\item relaying post URI only should provide plausible deniability and retractability
\end{itemize}
\end{frame}
@ -459,7 +470,7 @@ Do we even want global hashtags in the Fediverse?
\begin{itemize}
\item hashtags may be represented as relay actors with own in- \& outbox, addressed in cc
\item relaying to subscribers via SharedInbox
\item idea for addressing: new URI scheme that gets transparently resolved to responsible node's domain via DHT\note[item]{application proxy for transparent URI scheme resolving?}
\item idea for addressing: new URI scheme that gets transparently resolved to responsible node's domain via DHT by application proxy\note[item]{application proxy for transparent URI scheme resolving?}
\item signalling of error codes and redundancy factors is needed
\end{itemize}
\item DHT routing communication does not use ActivityPub
@ -473,7 +484,9 @@ Do we even want global hashtags in the Fediverse?
\includegraphics<1>[height=0.59\paperheight]{figures/Elephant_Friend_(Greeting).png}
\includegraphics<2,4>[height=0.59\paperheight]{figures/hist_num_single_vs.png}
\note[item]{common DHT attack: Sybil-… = 1 attacker introduces large number of nodes}
\note[item]{sorry to all instance admins, but: CloudFlare behaves like a MITM/ Sybil attacker}
\note[item]{node ID derivation: first 64 bits of IPv6}
\only<2,4>{1st peak: Masto.host, 2nd peak: Cloudflare}
@ -500,6 +513,7 @@ node ID derivation}
\begin{itemize}
\item valid domain required for node ID derivation, assumption: domains cost money
\end{itemize}
\note{not perfectly secure, but the best I could think of. Better ideas welcome}
\end{itemize}
\end{frame}
@ -533,14 +547,6 @@ node ID derivation}
\section<presentation>*{\appendixname}
\subsection<presentation>*{For Further Reading}
\begin{frame}[allowframebreaks]
\frametitle{References}
%\bibliography{literature}
\end{frame}
\begin{frame}
@ -551,13 +557,14 @@ node ID derivation}
\end{frame}
\begin{frame}
%\includegraphics[height=0.5\textheight]{figures/nomnompingu.png}\tiny\footnote{CC-BY-SA 3.0 by Elektroll}
\begin{frame}[allowframebreaks]
\frametitle{References}
\printbibliography
\end{frame}
%\includegraphics[height=0.5\textheight]{figures/nomnompingu.png}\tiny\footnote{CC-BY-SA 3.0 by Elektroll}
\end{document}