Browse Source

add conclusion to technology decision

Carsten Porth 5 years ago
parent
commit
2a6cdb7033
1 changed files with 6 additions and 1 deletions
  1. 6 1
      thesis/content/05-proof-of-concept/technology-decisions.tex

+ 6 - 1
thesis/content/05-proof-of-concept/technology-decisions.tex

@@ -46,13 +46,13 @@ In the following, various \ac{P2P} networks are considered and examined for thei
 
 \subsubsection{Filesharing \ac{P2P} Networks}
 
+
 \subsubsection{Blockchain}
 \label{sec:blockchain}
 In a blockchain, the private data of the users could be stored encrypted and shared with other users. The corresponding smart contracts would have to be designed for this purpose. Regardless of the blockchain, executing the smart contracts to store the data, however, consumes a token. The user has to get the tokens beforehand and deposit them in his wallet. To avoid this, a test network (e.g., Rinkeby at Ethereum) could be used. A test network would have the advantage that tokens could be made available to the user free of charge and that the execution of the smart contracts would thus also be free. However, test networks are used to test new software updates and usually do not offer the same security as the main network. They should only be used to test applications before releasing them to the main net. In order to protect against abuse, token requests are usually limited and take a while until they arrive in the user's wallet. Besides, it is often required to post specific content in a social network or to perform another task.
 
 A solution based on a blockchain increases complexity for the user. Since the hybrid solution was required to keep the complexity and additional effort as low as possible, such a solution using a blockchain was categorically excluded.
 
-
 \subsubsection{\ac{IPFS}}
 \label{sec:ipfs}
 \ac{IPFS}\footnote{https://ipfs.io/} is a distributed file system that brings together the ideas of other successful \ac{P2P} systems (DHTs, BitTorrent, Self-Certified Filesystems (SFS) and Git) \cite{benet2014ipfs}. The original idea for \ac{IPFS} came from Juan Benet in 2014. Protocol Labs\footnote{https://protocol.ai}, founded by Benet, now manages the open source project \cite{benetXXXXlinkedin}.
@@ -64,6 +64,11 @@ Due to its characteristics, \ac{IPFS} is an ideal complement to the blockchain a
 \ac{IPFS} clients are available for Max OS X, Linux and Windows. Besides, there are client implementations in JavaScript and Go to include in other applications.
 
 \subsubsection{Conclusion}
+First, the goal was to build a \ac{P2P} network among the users of the Hybrid \ac{OSN} app to use it for secure data exchange. Due to its limitation to local use, Wi-Fi Direct was excluded as a possibility. The need for \ac{STUN} and \ac{TURN} servers and the uncertainty regarding the scalability of the system led to the elimination of the \ac{WebRTC} standard as the basis for communication. While Yjs made a promising impression, the use case ultimately did not fit into a hybrid solution for \ac{OSN}. The Java library Hive2Hive dropped out because of the need for at least one, ideally five, relay servers. Furthermore, the library is discontinued since 2015 and therefore questionable to what extent it is compatible with the current Android \ac{SDK} version. Since the potential solutions for building an own \ac{P2P} network are limited or outdated, the idea of an exclusive \ac{P2P} Hybrid \ac{OSN} network was discarded.
+
+As a further solution strategy, the use of third-party services from Google Firebase\footnote{https://firebase.google.com/} and PubNub\footnote{https://www.pubnub.com/}, which provide the functionality of a database, was considered. To a limited extent, the services offered can be used for free. From a particular size of the user base and correspondingly large load, costs for the service use would rise. In order to avoid these charges from the beginning, the idea of using these commercial third-party services was rejected.
+
+The \acp{dApp} AKASHA and Peepeth introduced in Chapter \ref{sec:related-dapps} use the Ethereum blockchain as a database and \ac{IPFS} for data storage. This technology combination meets the technical requirements of a hybrid solution. However, the use of a blockchain was excluded due to the usage costs and complicated configuration for the user (wallet, acquisition of tokens). Nevertheless, \ac{IPFS} is an excellent way to store data decentralized. Accordingly, only a replacement for the database functionality was needed. With OrbitDB and GUN, two technologies came into closer selection for use in Hybrid \ac{OSN}. Since OrbitDB offers database functionality based on \ac{IPFS}, it was initially preferred. However, when using Cordova (the basis of the used application framework Ionic), the JavaScript implementation of \ac{IPFS} and the OrbitDB library, an error occurs. This error has been known for some time but is still unsolved due to its high complexity and the comparatively small number of affected users. Therefore, the final choice was GUN to implement the database functionality of the hybrid solution. At the time of the decision for GUN, it was assumed that the relay server used for testing purposes in the official GUN tutorials could also be used as a relay server within Hybrid OSN. However, later it turned out that the use is very strongly restricted and the limit is already reached after three private tweets. For this reason, a separate relay server was set up as a workaround. GUN provides the necessary code as well as the one-click setup at Heroku\footnote{https://www.heroku.com/} on Github.
 
 \subsection{Application Framework}
 \label{sec:application-framework}