114 |
and increase availability; pages would stay online as long as |
and increase availability; pages would stay online as long as |
115 |
any user keeps a copy of them on their local harddisk. |
any user keeps a copy of them on their local harddisk. |
116 |
|
|
|
.. XXX Mention "Name-based not possible as a suitable system |
|
|
for names doesn't exist?" |
|
|
|
|
117 |
Such permanence is an important concern, as seen by the following example. |
Such permanence is an important concern, as seen by the following example. |
118 |
In 1997, NASA launched the Cassini-Huygens spacecraft |
In 1997, NASA launched the Cassini-Huygens spacecraft |
119 |
on a mission to Saturn. Before the launch, the mission |
on a mission to Saturn. Before the launch, the mission |
157 |
a change in the user interface or functionality, |
a change in the user interface or functionality, |
158 |
and to use a neighbouring computer's cache |
and to use a neighbouring computer's cache |
159 |
if the LAN is disconnected from the internet |
if the LAN is disconnected from the internet |
160 |
|
|
161 |
Heterogeneity |
Heterogeneity |
162 |
The possibility to |
The possibility to |
163 |
use different P2P networks interchangeably, even |
use different P2P networks interchangeably, even |
167 |
exploits of single network; b) one size doesn't fit all |
exploits of single network; b) one size doesn't fit all |
168 |
(e.g. anonymity, efficiency); c) more people can use this |
(e.g. anonymity, efficiency); c) more people can use this |
169 |
(network effect) |
(network effect) |
170 |
|
|
171 |
|
.. XXX something that requires keeping info in one place |
172 |
|
in one network will never be agreeable upon between |
173 |
|
all networks |
174 |
|
|
175 |
Distributed archivability |
Distributed archivability |
176 |
The ability to |
The ability to |
177 |
keep a version originally published by |
keep a version originally published by |
180 |
(so that when the original publisher loses interest, |
(so that when the original publisher loses interest, |
181 |
a page does not fall off the Web). |
a page does not fall off the Web). |
182 |
|
|
|
.. To keep a version |
|
|
of a page online, it does not suffice for one user |
|
|
to download and store a copy; when the publisher |
|
|
loses interest, the page disappears (except in the case |
|
|
of Freenet, where pages disappear when they have not been |
|
|
requested for a period of time). |
|
|
|
|
|
|
|
|
.. In conclusion, in a filesharing system, a file remains accessible |
|
|
as long as there is a copy on any of the participating hosts; |
|
|
none of the above versioning systems have this property. XXX not true |
|
|
|
|
|
Thus, in these systems, when the original publisher loses interest |
|
|
and stops publishing a page, it disappears, even if |
|
|
someone else has kept a copy. |
|
|
|
|
183 |
In a P2P Web, pages could be |
In a P2P Web, pages could be |
184 |
linked using permanent URIs |
linked using permanent URIs |
185 |
based on the files' cryptographic |
based on the files' cryptographic |
198 |
infeasible to update all pages linking to it, and thus |
infeasible to update all pages linking to it, and thus |
199 |
all pages linking to *them*, and thus... |
all pages linking to *them*, and thus... |
200 |
|
|
|
.. There are some non-filesharing P2P systems |
|
|
that do offer an update mechanism. However, none of these |
|
|
provides all the above benefits of a filesharing system: |
|
|
|
|
|
|
|
|
.. <<<We don't propose that every byte of information ever published |
|
|
on the Web has to be kept around forever. However, |
|
|
we do believe that as long as someone does keep a copy, |
|
|
data should remain accessible, like in a filesharing system, |
|
|
and links should continue to work.>>> |
|
|
|
|
|
.. <<<Other projects exploit some of the advantages of hash-based |
|
|
(storage systems: CFS, PAST; web caching: Squirrel), |
|
|
but don't address the Web.>>> |
|
|
|
|
|
.. Possibility of desktop integration in ways that the location-dependent |
|
|
Web cannot archieve, through the novel combination of |
|
|
network transparency and location independence (ref ourselves). |
|
|
|
|
201 |
The main contribution of this paper is the use of *pointer records*, |
The main contribution of this paper is the use of *pointer records*, |
202 |
a versioning mechanism which is similar to OceanStore's heartbeats, |
a versioning mechanism which is similar to OceanStore's heartbeats, |
203 |
but allows the clients to download and store the pointer records |
but allows the clients to download and store the pointer records |
206 |
the whole P2P network for pointer records |
the whole P2P network for pointer records |
207 |
related to a document. |
related to a document. |
208 |
|
|
|
.. XXX something that requires keeping info in one place |
|
|
in one network will never be agreeable upon between |
|
|
all networks |
|
|
|
|
209 |
An additional contribution is the Storm data model, |
An additional contribution is the Storm data model, |
210 |
an API formalizing the notion of searching for data |
an API formalizing the notion of searching for data |
211 |
by hash and content. The API is used by applications |
by hash and content. The API is used by applications |
328 |
semantics; for example, the NFS client for OceanStore only requests |
semantics; for example, the NFS client for OceanStore only requests |
329 |
new heartbeats less than 30 seconds old. |
new heartbeats less than 30 seconds old. |
330 |
|
|
|
.. is unique among the versioned P2P systems |
|
|
in that it |
|
331 |
|
|
332 |
Pointer records |
Pointer records |
333 |
=============== |
=============== |
403 |
in Gnutella or a DHT-based system, using an anonymized system |
in Gnutella or a DHT-based system, using an anonymized system |
404 |
like Achord [hazel02achord]_ if it contains controversial content. |
like Achord [hazel02achord]_ if it contains controversial content. |
405 |
|
|
|
.. - Carries over the four benefits from hash-based addressing: |
|
|
|
|
|
- Version references movable between servers |
|
|
- Past versions accessible as long as anyone keeps a copy |
|
|
- Load balancing (download the pointer record from whoever has it) |
|
|
- Can use one addressing scheme for *updateable* information, |
|
|
searching different networks for versions |
|
|
|
|
406 |
|
|
407 |
The Storm data model |
The Storm data model |
408 |
==================== |
==================== |
409 |
|
|
|
.. XXX focus on the formalization of blocks and our |
|
|
generalization of reverse indexing |
|
|
|
|
410 |
In this section, we introduce the Storm [#]_ data model, |
In this section, we introduce the Storm [#]_ data model, |
411 |
an API for storing and retrieving information using |
an API for storing and retrieving information using |
412 |
hash-based addressing. Storm provides a simple but powerful |
hash-based addressing. Storm provides a simple but powerful |
415 |
of this API is to decouple the application and network layers |
of this API is to decouple the application and network layers |
416 |
so that both can evolve independently. |
so that both can evolve independently. |
417 |
|
|
|
.. The Storm API can be used |
|
|
by P2P Web applications, which then do not have to deal |
|
|
with each P2P network implementation independently. |
|
|
|
|
418 |
The Storm abstraction does not provide any new functionality; |
The Storm abstraction does not provide any new functionality; |
419 |
it merely provides a common API for the hash-based addressing |
it merely provides a common API for the hash-based addressing |
420 |
and content-based search present in many existing P2P systems. |
and content-based search present in many existing P2P systems. |
448 |
The server would publish the resulting mappings |
The server would publish the resulting mappings |
449 |
from words to block ids on the P2P network. |
from words to block ids on the P2P network. |
450 |
|
|
|
.. XXX kept out because of space constraints: |
|
|
|
|
|
An index can also return additional information |
|
|
to be placed in the hashtable along with the |
|
|
block id. In the example, this could be the complete |
|
|
metadata of the song, so that a client does not need |
|
|
to download the complete audio file before being able |
|
|
to show its artist, title etc. to its user. |
|
|
|
|
451 |
The pointer functionality is trivial to implement |
The pointer functionality is trivial to implement |
452 |
*on top of* this basic model. A pointer record |
*on top of* this basic model. A pointer record |
453 |
is simply a block with a special MIME type. A pointer record index |
is simply a block with a special MIME type. A pointer record index |
471 |
its address when published on the network, or when |
its address when published on the network, or when |
472 |
downloaded to the local harddisk [fallenstein03storm]_. |
downloaded to the local harddisk [fallenstein03storm]_. |
473 |
|
|
|
.. - can be made to work with peers that join and leave small |
|
|
ad hoc networks often (and the global "net" less often) |
|
|
-> XXX what does this mean? |
|
|
|
|
474 |
|
|
475 |
Applications |
Applications |
476 |
============ |
============ |
486 |
in a distributed, decentralized and above all |
in a distributed, decentralized and above all |
487 |
*heterogeneous* way. |
*heterogeneous* way. |
488 |
|
|
|
.. XXX heterogeneous *how*? |
|
|
|
|
489 |
Using pointer records, we can provide the functionality |
Using pointer records, we can provide the functionality |
490 |
of static web pages. While dynamic web pages generated |
of static web pages. While dynamic web pages generated |
491 |
through server-side scripting and database connections |
through server-side scripting and database connections |