From 7f883605a0631d9edcc4d770c2fbe9e0ec43b53e Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Fri, 1 Jan 2021 18:17:54 +0100 Subject: Add intro about data types Signed-off-by: Matthias Beyer --- doc/paper/main.tex | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/doc/paper/main.tex b/doc/paper/main.tex index 51a28eb..7789f02 100644 --- a/doc/paper/main.tex +++ b/doc/paper/main.tex @@ -43,6 +43,36 @@ mail@beyermatthias.de} \section{Data types} % Intro about the data types required for building the blockchain +The implementation of an IPFS-based social network would be based on a DAG of +blocks of data. +Each DAG would resemble a "profile" in the social network. +A "profile", though, would not necessarily be bound to a person, but would +represent a unique identity. +Embedded ("smart") devices or automated tools (bots) posting to a profile without +human interaction could be possible and are imaginable. + +Because distribution and availability is curcial, two "layers" of blocks should +be considered: + +\begin{itemize} + \item A more general "block", implementing nothing more than the chain and + some minimal meta data, e.g. a format version and a, and a pointer to + the actual "metadata block" + \item A "metadata block", holding all the information about the profile, + the content and other valuable metadata, such as timestamps, a mimetype + of the content linked and, of course, a link to the actual content +\end{itemize} + +The third data type required for implementing a block would be holding the data +itself. +Thus, it would be only a stream of bytes - which would be added to IPFS +directly. + +In the following chapters, details of the individual types are layed out. +For simplicity, JSON is used for examples of objects of the layed out +types. + + \subsection{Block} % What a "block" is used for and what data it holds % - metadata pointer -- cgit v1.2.3