Skip to content
This repository was archived by the owner on Aug 15, 2025. It is now read-only.

Commit 43e5623

Browse files
Deployed 54b79e0 with MkDocs version: 1.6.1
1 parent a573962 commit 43e5623

File tree

5 files changed

+4
-67
lines changed

5 files changed

+4
-67
lines changed

Protocol Specifications/core/index.html

Lines changed: 1 addition & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,21 +1291,6 @@
12911291
</span>
12921292
</a>
12931293

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-
13091294
</li>
13101295

13111296
<li class="md-nav__item">
@@ -2585,21 +2570,6 @@
25852570
</span>
25862571
</a>
25872572

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-
26032573
</li>
26042574

26052575
<li class="md-nav__item">
@@ -2806,7 +2776,6 @@ <h1 id="polyproto-specification">polyproto Specification<a class="headerlink" hr
28062776
</ul>
28072777
</li>
28082778
<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>
28102779
<li><a href="#74-challenges-and-trust">7.4 Challenges and trust</a></li>
28112780
</ul>
28122781
</li>
@@ -3385,9 +3354,6 @@ <h4 id="614-early-revocation-of-id-certs">6.1.4 Early revocation of ID-Certs<a c
33853354
<p>The above paragraph is true for both foreign and home servers. The API routes associated with
33863355
revoking an ID-Cert are the same regardless of the server type.</p>
33873356
</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>
33913357
<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">&para;</a></h3>
33923358
<p>As briefly mentioned section <a href="#4-federated-identity">#4</a>, users must hold on to an identity key pair
33933359
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
38313797
<p><em>Fig. 8: Sequence diagram depicting the data moving process.</em></p>
38323798
<p>How this process is implemented is up to P2 extensions to define. The above steps are only a
38333799
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">&para;</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>&lt;server_url&gt;/.p2/core/content/&lt;content_id&gt;</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>
38633800
<h3 id="74-challenges-and-trust">7.4 Challenges and trust<a class="headerlink" href="#74-challenges-and-trust" title="Permanent link">&para;</a></h3>
38643801
<p>Changing the publicly visible ownership of actor data requires the chain of trust to be maintained.
38653802
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
40914028
<span class="md-icon" title="Last update">
40924029
<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>
40934030
</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>
40954032
</span>
40964033

40974034

feed_rss_created.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Polyphony</title><docs>https://github.com/polyphony-chat/docs</docs><language>en</language> <pubDate>Wed, 25 Sep 2024 20:34:19 -0000</pubDate> <lastBuildDate>Wed, 25 Sep 2024 20:34:19 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.15.0</generator> <item> <title>polyproto extensions</title> <author>bitfl0wer</author> <category>polyproto</category> <description>&lt;h1&gt;polyproto extensions.&lt;/h1&gt;&lt;p&gt;polyproto is a new federation protocol. Its main focus is enabling seamless participation of oneactor on many different servers. The core specification lacks routes for sending any sort of usergenerated data anywhere, though. What is up with that?&lt;/p&gt;</description> <pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate> </item> <item> <title>Work on polyproto and a &#34;vacation&#34; ⛱️</title> <author>bitfl0wer</author> <category>polyproto</category> <category>updates</category> <description>&lt;h1&gt;Work on polyproto and taking a break&lt;/h1&gt;&lt;p&gt;In this little update post I write about what I&#39;ve done in the last couple of weeks alongside talking about taking just a little break(don&#39;t worry, y&#39;all are not getting rid of me!)&lt;/p&gt;</description> <pubDate>Wed, 06 Mar 2024 00:00:00 +0000</pubDate> </item> <item> <title>X.509 in polyproto</title> <author>bitfl0wer</author> <category>X.509</category> <category>polyproto</category> <description>&lt;h1&gt;Certificates, please: X.509 in polyproto&lt;/h1&gt;&lt;p&gt;This blog post covers a bit about how and why X.509 is used in polyproto, and how we try to makethe process of implementing your own server and incorporating it into an existing network a littleeasier.&lt;/p&gt;</description> <pubDate>Mon, 19 Feb 2024 00:00:00 +0000</pubDate> </item> <item> <title>Account migration in polyproto</title> <author>bitfl0wer</author> <category>polyproto</category> <description>&lt;p&gt;Account migration is an important and difficult thing to get right in federated systems. In this blogpost, I will outline how I imagine account migration to work in polyproto, and what benefits thisapproach brings.&lt;/p&gt;</description> <pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate> </item> <item> <title>Porting chorus to WebAssembly + Client Update</title> <author>bitfl0wer</author> <category>chorus</category> <category>polyphony</category> <category>updates</category> <description>&lt;h1&gt;Porting chorus to WebAssembly + Client Update&lt;/h1&gt;&lt;p&gt;What the current state of GUI libraries in Rust means for Polyphony and chorus, and why we are porting chorus to WebAssembly.&lt;/p&gt;</description> <pubDate>Thu, 23 Nov 2023 00:00:00 +0000</pubDate> </item> <item> <title>Getting started with the Polyphony Client</title> <author>bitfl0wer</author> <category>polyphony</category> <category>updates</category> <description>&lt;h1&gt;Getting started with the Polyphony Client&lt;/h1&gt;</description> <pubDate>Sat, 02 Sep 2023 00:00:00 +0000</pubDate> </item> <item> <title>chorus Alpha 0.1.0</title> <author>bitfl0wer</author> <category>chorus</category> <category>updates</category> <description>&lt;h1&gt;chorus Alpha 0.1.0&lt;/h1&gt;&lt;p&gt;We are alpha now! As of 2 days ago, the first Alpha of Chorus, Version 0.1.0, has been released for everyone to look at and use on crates.io!&lt;/p&gt;</description> <pubDate>Tue, 29 Aug 2023 00:00:00 +0000</pubDate> </item> <item> <title>Self-updating structs, moving blog posts to GitHub, and more!</title> <author>bitfl0wer</author> <category>chorus</category> <category>updates</category> <description>&lt;h1&gt;Self-updating structs, moving blog posts to GitHub, and more!&lt;/h1&gt;&lt;p&gt;Introducing self-updating structs, explaining how they work, and what they are good for. Also, moving blog posts to GitHub, and other improvements.&lt;/p&gt;</description> <pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate> </item> </channel></rss>
1+
<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Polyphony</title><docs>https://github.com/polyphony-chat/docs</docs><language>en</language> <pubDate>Thu, 26 Sep 2024 08:34:43 -0000</pubDate> <lastBuildDate>Thu, 26 Sep 2024 08:34:43 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.15.0</generator> <item> <title>polyproto extensions</title> <author>bitfl0wer</author> <category>polyproto</category> <description>&lt;h1&gt;polyproto extensions.&lt;/h1&gt;&lt;p&gt;polyproto is a new federation protocol. Its main focus is enabling seamless participation of oneactor on many different servers. The core specification lacks routes for sending any sort of usergenerated data anywhere, though. What is up with that?&lt;/p&gt;</description> <pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate> </item> <item> <title>Work on polyproto and a &#34;vacation&#34; ⛱️</title> <author>bitfl0wer</author> <category>polyproto</category> <category>updates</category> <description>&lt;h1&gt;Work on polyproto and taking a break&lt;/h1&gt;&lt;p&gt;In this little update post I write about what I&#39;ve done in the last couple of weeks alongside talking about taking just a little break(don&#39;t worry, y&#39;all are not getting rid of me!)&lt;/p&gt;</description> <pubDate>Wed, 06 Mar 2024 00:00:00 +0000</pubDate> </item> <item> <title>X.509 in polyproto</title> <author>bitfl0wer</author> <category>X.509</category> <category>polyproto</category> <description>&lt;h1&gt;Certificates, please: X.509 in polyproto&lt;/h1&gt;&lt;p&gt;This blog post covers a bit about how and why X.509 is used in polyproto, and how we try to makethe process of implementing your own server and incorporating it into an existing network a littleeasier.&lt;/p&gt;</description> <pubDate>Mon, 19 Feb 2024 00:00:00 +0000</pubDate> </item> <item> <title>Account migration in polyproto</title> <author>bitfl0wer</author> <category>polyproto</category> <description>&lt;p&gt;Account migration is an important and difficult thing to get right in federated systems. In this blogpost, I will outline how I imagine account migration to work in polyproto, and what benefits thisapproach brings.&lt;/p&gt;</description> <pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate> </item> <item> <title>Porting chorus to WebAssembly + Client Update</title> <author>bitfl0wer</author> <category>chorus</category> <category>polyphony</category> <category>updates</category> <description>&lt;h1&gt;Porting chorus to WebAssembly + Client Update&lt;/h1&gt;&lt;p&gt;What the current state of GUI libraries in Rust means for Polyphony and chorus, and why we are porting chorus to WebAssembly.&lt;/p&gt;</description> <pubDate>Thu, 23 Nov 2023 00:00:00 +0000</pubDate> </item> <item> <title>Getting started with the Polyphony Client</title> <author>bitfl0wer</author> <category>polyphony</category> <category>updates</category> <description>&lt;h1&gt;Getting started with the Polyphony Client&lt;/h1&gt;</description> <pubDate>Sat, 02 Sep 2023 00:00:00 +0000</pubDate> </item> <item> <title>chorus Alpha 0.1.0</title> <author>bitfl0wer</author> <category>chorus</category> <category>updates</category> <description>&lt;h1&gt;chorus Alpha 0.1.0&lt;/h1&gt;&lt;p&gt;We are alpha now! As of 2 days ago, the first Alpha of Chorus, Version 0.1.0, has been released for everyone to look at and use on crates.io!&lt;/p&gt;</description> <pubDate>Tue, 29 Aug 2023 00:00:00 +0000</pubDate> </item> <item> <title>Self-updating structs, moving blog posts to GitHub, and more!</title> <author>bitfl0wer</author> <category>chorus</category> <category>updates</category> <description>&lt;h1&gt;Self-updating structs, moving blog posts to GitHub, and more!&lt;/h1&gt;&lt;p&gt;Introducing self-updating structs, explaining how they work, and what they are good for. Also, moving blog posts to GitHub, and other improvements.&lt;/p&gt;</description> <pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate> </item> </channel></rss>

0 commit comments

Comments
 (0)