Skip to content

Updatable Subspace Key

Stephen Oliver edited this page Aug 31, 2016 · 1 revision

Useful for linking to the latest version of a Signed Subspace Key site.

Note that USKs are really just a user-friendly wrapper around SSKs, which hide the process of searching for more recent versions of a site. There are two types of USK addresses:

You can have a USK address with a positive number at the end, like this:

http://127.0.0.1:8888/USK@rd0SN1...ABAAE/mysite/5/

The Freenet node on your computer keeps a list of versions of USKs that it knows about, without necessarily storing the data as well. This list is built up from previous visits, and also background requests from previous visits to these kind of links. When you visit the link above, it consults this list for versions of the mysite site of 5 or greater. If it finds any, it return the latest one. Then, in the background, it searches for newer versions that it doesn't yet know about to add to your USK registry for the next time you visit the above address.

The other type of USK address has a negative number at the end, like this:

http://127.0.0.1:8888/USK@rd0SN1...ABAAE/mysite/-7/

When you visit a link like this, Freenet searches for the version you requested plus four more (i.e. 7,8,9,10,11) at the node on your computer and and other nodes. If it finds only version 7, it will return that. If it finds one of the others, it searches for another batch of five versions: 12,13,14,15,16. It repeats this until there are four consecutive versions it can't find. Then it will return the latest version it has found so far.


For both types of USKs, the address in the browser address bar will be changed to the positive number of the most recent version they have found, e.g.

http://127.0.0.1:8888/USK@rd0SN1...ABAAE/mysite/5/ 

might redirect to

http://127.0.0.1:8888/USK@rd0SN1...ABAAE/mysite/11/

While:

http://127.0.0.1:8888/USK@rd0SN1...ABAAE/mysite/-7/

might redirect to

http://127.0.0.1:8888/USK@rd0SN1...ABAAE/mysite/14/

Inserting

You can insert a site directly as a USK. This is recommended, as future updating algorithms may insert extra metadata to speed up searches.

If you insert a USK with edition number 0, the node automatically works out what the latest edition is, and inserts the site with an edition one higher. Contrast this with an SSK insert, where you have to manually keep track of what version you are at. USK@rd0SN1...ABAAE/mysite/0

If one inserts a USK with edition number n, where n > 0, the node will attempt to insert at that specific edition, even if the editions before it don't yet exist. If the edition does already exist, the node will retry with subsequent numbers until an unused edition number is found.

If you are inserting from FProxy, make sure you don't include a filename or a trailing slash.

Notes

There is a common misconception that this is a valid USK link:

http://127.0.0.1:8888/USK@rd0SN1...ABAAE/mysite-5/

But this should be written as an SSK link instead:

http://127.0.0.1:8888/SSK@rd0SN1...ABAAE/mysite-5/

The above described updating algorithm may change in the future.

Clone this wiki locally