1668 |
from recent publications. For general discussion about Fenfire in Peer-to-Peer environment, |
from recent publications. For general discussion about Fenfire in Peer-to-Peer environment, |
1669 |
see \cite{lukka02freenetguids}, and for detailed Storm design, see \cite{fallenstein03storm}. |
see \cite{lukka02freenetguids}, and for detailed Storm design, see \cite{fallenstein03storm}. |
1670 |
|
|
1671 |
Storm (for \emph{STORage Module}) stores all data as data \emph{blocks}, which |
Storm (for \emph{STORage Module}) stores all data as \emph{blocks}, which |
1672 |
are immutable byte sequences. Storm \emph{assigns} a globally unique identifier to each |
are immutable byte sequences. Storm \emph{assigns} a globally unique identifier to each |
1673 |
data block\footnote{This resembles the process how tightly structured overlay assigns a subset of keys |
block\footnote{This resembles the process how tightly structured overlay assigns a subset of keys |
1674 |
to each participating peer: a user has no control over the assignment process.}. SHA-1 cryptographic |
to each participating peer: a user has no control over the assignment process.}. SHA-1 cryptographic |
1675 |
content hash function\footnote{SHA-1 is |
content hash function\footnote{SHA-1 is |
1676 |
considered as a collision free hash function. Therefore, it is very unlikely that two different Storm data blocks |
considered as a collision free hash function. Therefore, it is very unlikely that two different Storm blocks |
1677 |
would have same identifier.} \cite{fips-sha-1} is used |
would have same identifier.} \cite{fips-sha-1} is used |
1678 |
for creating unstructured and semantic-free, globally unique identifiers for blocks. Because of SHA-1 |
for creating unstructured and semantic-free, globally unique identifiers for blocks. Because of SHA-1 |
1679 |
content hash, all identifiers are directly the data verifiers as well. The uniqueness of blocks creates |
content hash, all identifiers are directly the data verifiers as well. The uniqueness of blocks creates |
1688 |
More information about diffs can be found from \cite{fallenstein03storm}. |
More information about diffs can be found from \cite{fallenstein03storm}. |
1689 |
|
|
1690 |
\emph{Pointer} \cite{benja02urn5, fallenstein03storm} is a semantic-free updatable reference to |
\emph{Pointer} \cite{benja02urn5, fallenstein03storm} is a semantic-free updatable reference to |
1691 |
Storm data block. Pointer is a unique reference to the data and it is usually |
Storm block. Pointer is a unique reference to the data and it is usually |
1692 |
represented as a random string. Storm pointers are rather a \emph{concept} of data (e.g., ''The front page of the most recent |
represented as a random string. Storm pointers are rather a \emph{concept} of data (e.g., ''The front page of the most recent |
1693 |
version of New York Times newspaper'') whereas blocks \emph{contain} the data |
version of New York Times newspaper'') whereas blocks \emph{contain} the data |
1694 |
(''New York Times newspaper, 10.10.2002, version 1.0''). |
(''New York Times newspaper, 10.10.2002, version 1.0''). |
1760 |
\emph{global} data repository\footnote{Global repository is not a requirement. Locally constructed xanalogical |
\emph{global} data repository\footnote{Global repository is not a requirement. Locally constructed xanalogical |
1761 |
documents are feasible and they can be assembled without global data repository.}. System implementing the xanalogical storage model \emph{must} |
documents are feasible and they can be assembled without global data repository.}. System implementing the xanalogical storage model \emph{must} |
1762 |
support global scale data lookups, i.e., if a data item exists in the system it can be located and fetched. |
support global scale data lookups, i.e., if a data item exists in the system it can be located and fetched. |
1763 |
Specifically, our task is to locate and fetch (i.e., obtain) all Storm blocks\footnote{We call these blocks as \emph{scroll} blocks.}, |
Specifically, our task is to locate and fetch (i.e., obtain) all Storm blocks, |
1764 |
associated to a specific ''virtual file'' from the Peer-to-Peer network. Also, in addition to the |
associated to a specific ''virtual file'' from the Peer-to-Peer network\footnote{We call''associated'' blocks as \emph{scroll} blocks.}. Also, in addition to the |
1765 |
\emph{direct} block obtaining using globally unique identifier of Storm block, |
\emph{direct} block obtaining using globally unique identifier of Storm block, |
1766 |
we also must support the \emph{indirect} obtaining of Storm block using the pointer mechanism. |
we also must support the \emph{indirect} obtaining of Storm block using the pointer mechanism. |
1767 |
Second, we want that users' operations in Fenfire |
Second, we want that users' operations in Fenfire |