1 | What Is It? |
---|
2 | ----------- |
---|
3 | |
---|
4 | A file's capability is derived from two pieces of information on |
---|
5 | upload: The content of the file and the upload node's "convergence |
---|
6 | secret". By default, the convergence secret is randomly generated by the |
---|
7 | node when it first starts up, then stored in the node's base directory |
---|
8 | (<Tahoe's node dir>/private/convergence) and re-used after that. So the |
---|
9 | same file content uploaded from the same node will always have the same |
---|
10 | cap string. Uploading the file from a different node with a different |
---|
11 | convergence secret would result in a different cap string—and in a |
---|
12 | second copy of the file's contents stored on the grid. If you want files |
---|
13 | you upload to converge (also known as "deduplicate") with files uploaded |
---|
14 | by someone else, just make sure you're using the same convergence secret |
---|
15 | as they are. |
---|
16 | |
---|
17 | The advantages of deduplication should be clear, but keep in mind that |
---|
18 | the convergence secret was created to combat snooping. For example, with |
---|
19 | a convergence secret and a file, I can generate a file capability that |
---|
20 | would allow me to determine that you have uploaded a file to the grid. |
---|
21 | This isn't a big deal for things that are personally produced, but is a |
---|
22 | big deal for commonly known things that you want to keep secret that you |
---|
23 | know about. Examples would be a Bible in China or The Anarchist's |
---|
24 | Cookbook at the High School that I went to. Here's the details of the |
---|
25 | origin of the convergence secret: `Convergence Secret Justification`_ |
---|
26 | |
---|
27 | .. _`Convergence Secret Justification`: |
---|
28 | https://tahoe-lafs.org/hacktahoelafs/drew_perttula.html |
---|
29 | |
---|
30 | What If I Change My Convergence Secret? |
---|
31 | --------------------------------------- |
---|
32 | |
---|
33 | All your old file capabilities will still work, but the new data that |
---|
34 | you upload will not be deduplicated with the old data. If you upload all |
---|
35 | of the same things to the grid, you will end up using twice the space |
---|
36 | until garbage collection kicks in, if it's enabled. As one user put it, |
---|
37 | it would move the node where you change the convergence secret into a |
---|
38 | new deduplication domain. |
---|
39 | |
---|
40 | How To Use It |
---|
41 | ------------- |
---|
42 | |
---|
43 | To enable deduplication between different clients, **securely** copy |
---|
44 | the convergence secret file from one client to all the others. |
---|
45 | |
---|
46 | For example, if you are on host A and have an account on host B and you |
---|
47 | have scp installed, run: |
---|
48 | |
---|
49 | *scp ~/.tahoe/private/convergence |
---|
50 | my_other_account@B:.tahoe/private/convergence* |
---|
51 | |
---|
52 | If you have two different nodes on a single computer, say one for each |
---|
53 | disk, you would do: |
---|
54 | |
---|
55 | *cp /tahoe1/private/convergence /tahoe2/private/convergence* |
---|