6 |
Abstract |
Abstract |
7 |
======== |
======== |
8 |
|
|
9 |
File-sharing systems save bandwidth and increase availability |
Filesharing systems save bandwidth and increase availability |
10 |
because there is no single point of failure for a file. |
because there is no single point of failure for a file. |
11 |
This would be desirable on the Web. |
This would be desirable on the Web. |
12 |
However, most current P2P systems have no facility |
However, most current P2P systems have no facility |
13 |
for updating documents, and those that do |
for updating documents, and those that do |
14 |
require keeping the current version as state in the network. |
require keeping the current version as state in the network. |
15 |
This loses a major benefit of file-sharing: |
This loses a major benefit of filesharing: |
16 |
To keep a version of a Web page available, |
To keep a version of a Web page available, |
17 |
it should suffice to keep a copy of it on your computer. |
it should suffice to keep a copy of it on your computer. |
18 |
|
|
19 |
In this paper, we present a simple versioning mechanism usable |
In this paper, we present a simple versioning mechanism usable |
20 |
for a P2P Web as well as for file-sharing, |
for a P2P Web as well as for filesharing, |
21 |
and P2P-based software distribution and upgrading, |
and P2P-based software distribution and upgrading, |
22 |
and serve as a common versioning model integrating |
and serve as a common versioning model integrating |
23 |
separate P2P networks. |
separate P2P networks. |
47 |
.. Introduce location-independent Web idea (citing |
.. Introduce location-independent Web idea (citing |
48 |
benefits from hash-based addressing)--- |
benefits from hash-based addressing)--- |
49 |
|
|
50 |
If the Web worked like a file-sharing system, there would be |
If the Web worked like a filesharing system, there would be |
51 |
no central point of failure for a Web page; it could be downloaded |
no central point of failure for a Web page; it could be downloaded |
52 |
from any host that has a copy. This would save bandwidth |
from any host that has a copy. This would save bandwidth |
53 |
and increase availability. However, if the Web worked like |
and increase availability. However, if the Web worked like |
54 |
a file-sharing system, Web pages could never be updated. |
a filesharing system, Web pages could never be updated. |
55 |
|
|
56 |
Some file-sharing systems offer URIs for files (e.g., [XXXref]). |
Some filesharing systems offer URIs for files (e.g., [XXXref]). |
57 |
These URIs are based on the files' cryptographic hashes. |
These URIs are based on the files' cryptographic hashes. |
58 |
A new version of a Web page would have a different hash, |
A new version of a Web page would have a different hash, |
59 |
and thus a different URI. |
and thus a different URI. |
60 |
|
|
61 |
There are a few (non-file-sharing) P2P systems |
There are a few (non-filesharing) P2P systems |
62 |
that do offer an update mechanism. *CFS* [dabek01widearea]_ |
that do offer an update mechanism. *CFS* [dabek01widearea]_ |
63 |
is a file system based on Chord [stoica01chord]_, storing |
is a file system based on Chord [stoica01chord]_, storing |
64 |
data in a distributed hashtable (DHT). CFS identifies |
data in a distributed hashtable (DHT). CFS identifies |
109 |
of a document, such as in the *Content-Addressable Web* |
of a document, such as in the *Content-Addressable Web* |
110 |
proposal [content-addressable-web]_, in which clients download |
proposal [content-addressable-web]_, in which clients download |
111 |
a file's hash through HTTP (using an HTTP URI), |
a file's hash through HTTP (using an HTTP URI), |
112 |
then download the file through, e.g., a file-sharing network. |
then download the file through, e.g., a filesharing network. |
113 |
This provides some of the efficiency advantages of a P2P Web. |
This provides some of the efficiency advantages of a P2P Web. |
114 |
However, there is still a single point of failure, and |
However, there is still a single point of failure, and |
115 |
links still break when pages move to a different directory |
links still break when pages move to a different directory |
116 |
or Web server. |
or Web server. |
117 |
|
|
118 |
In a file-sharing system, a file remains accessible |
In a filesharing system, a file remains accessible |
119 |
as long as there is a copy on any of the participating hosts. |
as long as there is a copy on any of the participating hosts. |
120 |
None of the above versioning systems have this property. |
None of the above versioning systems have this property. |
121 |
In CFS, version information is stored in the DHT, and only |
In CFS, version information is stored in the DHT, and only |
158 |
.. <<<We don't propose that every byte of information ever published |
.. <<<We don't propose that every byte of information ever published |
159 |
on the Web has to be kept around forever. However, |
on the Web has to be kept around forever. However, |
160 |
we do believe that as long as someone does keep a copy, |
we do believe that as long as someone does keep a copy, |
161 |
data should remain accessible, like in a file-sharing system, |
data should remain accessible, like in a filesharing system, |
162 |
and links should continue to work.>>> |
and links should continue to work.>>> |
163 |
|
|
164 |
.. <<<Other projects exploit some of the advantages of hash-based |
.. <<<Other projects exploit some of the advantages of hash-based |
279 |
are treated just as normal data files |
are treated just as normal data files |
280 |
and may reside on (and be downloaded from) any host. |
and may reside on (and be downloaded from) any host. |
281 |
|
|
282 |
For example, a file-sharing system could, for every versioned |
For example, a filesharing system could, for every versioned |
283 |
file ``f``, store two companion file ``f.version`` |
file ``f``, store two companion file ``f.version`` |
284 |
and ``f.charter``, containing the charter and pointer record |
and ``f.charter``, containing the charter and pointer record |
285 |
associated with this version of this file. The file-sharing |
associated with this version of this file. The filesharing |
286 |
application could then serve this information to other peers |
application could then serve this information to other peers |
287 |
searching for versions of this document. It could also use it |
searching for versions of this document. It could also use it |
288 |
to notify the user when new versions of the file become available. |
to notify the user when new versions of the file become available. |