|
1291 | 1291 | </span>
|
1292 | 1292 | </a>
|
1293 | 1293 |
|
1294 |
| - <nav class="md-nav" aria-label="7.3 Moving data"> |
1295 |
| - <ul class="md-nav__list"> |
1296 |
| - |
1297 |
| - <li class="md-nav__item"> |
1298 |
| - <a href="#731-content-addressing-with-relative-roots" class="md-nav__link"> |
1299 |
| - <span class="md-ellipsis"> |
1300 |
| - 7.3.1 Content Addressing with relative roots |
1301 |
| - </span> |
1302 |
| - </a> |
1303 |
| - |
1304 |
| -</li> |
1305 |
| - |
1306 |
| - </ul> |
1307 |
| - </nav> |
1308 |
| - |
1309 | 1294 | </li>
|
1310 | 1295 |
|
1311 | 1296 | <li class="md-nav__item">
|
|
2585 | 2570 | </span>
|
2586 | 2571 | </a>
|
2587 | 2572 |
|
2588 |
| - <nav class="md-nav" aria-label="7.3 Moving data"> |
2589 |
| - <ul class="md-nav__list"> |
2590 |
| - |
2591 |
| - <li class="md-nav__item"> |
2592 |
| - <a href="#731-content-addressing-with-relative-roots" class="md-nav__link"> |
2593 |
| - <span class="md-ellipsis"> |
2594 |
| - 7.3.1 Content Addressing with relative roots |
2595 |
| - </span> |
2596 |
| - </a> |
2597 |
| - |
2598 |
| -</li> |
2599 |
| - |
2600 |
| - </ul> |
2601 |
| - </nav> |
2602 |
| - |
2603 | 2573 | </li>
|
2604 | 2574 |
|
2605 | 2575 | <li class="md-nav__item">
|
@@ -2806,7 +2776,6 @@ <h1 id="polyproto-specification">polyproto Specification<a class="headerlink" hr
|
2806 | 2776 | </ul>
|
2807 | 2777 | </li>
|
2808 | 2778 | <li><a href="#73-moving-data">7.3 Moving data</a></li>
|
2809 |
| -<li><a href="#731-content-addressing-with-relative-roots">7.3.1 Content Addressing with relative roots</a></li> |
2810 | 2779 | <li><a href="#74-challenges-and-trust">7.4 Challenges and trust</a></li>
|
2811 | 2780 | </ul>
|
2812 | 2781 | </li>
|
@@ -3385,9 +3354,6 @@ <h4 id="614-early-revocation-of-id-certs">6.1.4 Early revocation of ID-Certs<a c
|
3385 | 3354 | <p>The above paragraph is true for both foreign and home servers. The API routes associated with
|
3386 | 3355 | revoking an ID-Cert are the same regardless of the server type.</p>
|
3387 | 3356 | </div>
|
3388 |
| -<p>TODO: Write about identifier changing and how to handle that across servers |
3389 |
| -TODO: Perhaps recommend never using more than a specified number of certificates at once to make |
3390 |
| - re-signing easier</p> |
3391 | 3357 | <h3 id="62-actor-identity-keys-and-message-signing">6.2 Actor identity keys and message signing<a class="headerlink" href="#62-actor-identity-keys-and-message-signing" title="Permanent link">¶</a></h3>
|
3392 | 3358 | <p>As briefly mentioned section <a href="#4-federated-identity">#4</a>, users must hold on to an identity key pair
|
3393 | 3359 | at all times. This key pair is used to represent an actor's identity and to verify
|
@@ -3831,35 +3797,6 @@ <h3 id="73-moving-data">7.3 Moving data<a class="headerlink" href="#73-moving-da
|
3831 | 3797 | <p><em>Fig. 8: Sequence diagram depicting the data moving process.</em></p>
|
3832 | 3798 | <p>How this process is implemented is up to P2 extensions to define. The above steps are only a
|
3833 | 3799 | guideline. The API routes for data export and import are documented in the API documentation.</p>
|
3834 |
| -<h4 id="731-content-addressing-with-relative-roots">7.3.1 Content Addressing with relative roots<a class="headerlink" href="#731-content-addressing-with-relative-roots" title="Permanent link">¶</a></h4> |
3835 |
| -<p>Moving data from one server to another might break references to this data. To prevent this as much |
3836 |
| -as possible, content addressing with relative roots is recommended for data behind an additional |
3837 |
| -layer of indirection.</p> |
3838 |
| -<div class="admonition example"> |
3839 |
| -<p class="admonition-title">Example</p> |
3840 |
| -<p>In a chat service, a user might have posted a message containing a picture. In this example, the |
3841 |
| -picture is stored on the user's home server, which is not necessarily the same server as the |
3842 |
| -chat service. If the user moves their account to another server, the picture might not be |
3843 |
| -accessible anymore.</p> |
3844 |
| -</div> |
3845 |
| -<p>Content addressing with relative roots aids in preventing this issue. Instead of referring to |
3846 |
| -the absolute URL of the content, the server processing the content generates a unique identifier. |
3847 |
| -This identifier can be used to retrieve the content from the server. Most importantly, this |
3848 |
| -identifier does not change when the content is moved to another server. If the base domain of the |
3849 |
| -new server is known, the identifier can be used to retrieve the content from the new server. |
3850 |
| -The "relative root" is the base domain of the server, which is used to retrieve the content.</p> |
3851 |
| -<p>The uniqueness constraint of the identifier is important. If a collision occurs when trying to |
3852 |
| -move the content to another server, the content cannot be migrated in a way that preserves the |
3853 |
| -references to it. One way to ensure the uniqueness of the identifier is to use a hash function on the |
3854 |
| -content itself. Combining this has with a cryptographically strong nonce, then hashing the result of |
3855 |
| -concatenating the nonce and the hash of the content should yield a unique identifier.</p> |
3856 |
| -<p>The API route for content addressing with relative roots is formatted as follows:</p> |
3857 |
| -<p><code><server_url>/.p2/core/content/<content_id></code></p> |
3858 |
| -<p>The API route for content addressing with relative roots is documented more thoroughly in the API |
3859 |
| -documentation.</p> |
3860 |
| -<p>Servers with no need for content addressing with relative roots can select to not implement this |
3861 |
| -feature. Servers not implementing this feature should return a <code>404 Not Found</code> status code when |
3862 |
| -the API route is accessed. Clients should expect finding servers not implementing this feature.</p> |
3863 | 3800 | <h3 id="74-challenges-and-trust">7.4 Challenges and trust<a class="headerlink" href="#74-challenges-and-trust" title="Permanent link">¶</a></h3>
|
3864 | 3801 | <p>Changing the publicly visible ownership of actor data requires the chain of trust to be maintained.
|
3865 | 3802 | If an "old" account wants to change the publicly visible ownership of its data, the "old"
|
@@ -4091,7 +4028,7 @@ <h3 id="911-changing-a-primary-service-provider">9.1.1 Changing a primary servic
|
4091 | 4028 | <span class="md-icon" title="Last update">
|
4092 | 4029 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
|
4093 | 4030 | </span>
|
4094 |
| - <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago"><span class="timeago" datetime="2024-09-25T20:33:59+00:00" locale="en"></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date">2024-09-25</span> |
| 4031 | + <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-timeago"><span class="timeago" datetime="2024-08-15T22:03:45+00:00" locale="en"></span></span><span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-iso_date">2024-08-15</span> |
4095 | 4032 | </span>
|
4096 | 4033 |
|
4097 | 4034 |
|
|
0 commit comments