mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-26 16:11:08 +00:00
bc21726dfd
This introduces new client and server halves to the Introducer (renaming the old one with a _V1 suffix). Both have fallbacks to accomodate talking to a different version: the publishing client switches on whether the server's .get_version() advertises V2 support, the server switches on which subscription method was invoked by the subscribing client. The V2 protocol sends a three-tuple of (serialized announcement dictionary, signature, pubkey) for each announcement. The V2 server dispatches messages to subscribers according to the service-name, and throws errors for invalid signatures, but does not otherwise examine the messages. The V2 receiver's subscription callback will receive a (serverid, ann_dict) pair. The 'serverid' will be equal to the pubkey if all of the following are true: the originating client is V2, and was told a privkey to use the announcement went through a V2 server the signature is valid If not, 'serverid' will be equal to the tubid portion of the announced FURL, as was the case for V1 receivers. Servers will create a keypair if one does not exist yet, stored in private/server.privkey . The signed announcement dictionary puts the server FURL in a key named "anonymous-storage-FURL", which anticipates upcoming Accounting-related changes in the server advertisements. It also provides a key named "permutation-seed-base32" to tell clients what permutation seed to use. This is computed at startup, using tubid if there are existing shares, otherwise the pubkey, to retain share-order compatibility for existing servers. |
||
---|---|---|
.. | ||
static | ||
__init__.py | ||
check_results.py | ||
check-and-repair-results.xhtml | ||
check-results.xhtml | ||
common.py | ||
deep-check-and-repair-results.xhtml | ||
deep-check-results.xhtml | ||
directory.py | ||
directory.xhtml | ||
download-status-timeline.xhtml | ||
download-status.xhtml | ||
filenode.py | ||
helper.xhtml | ||
info.py | ||
info.xhtml | ||
introducer.xhtml | ||
introweb.py | ||
literal-check-results.xhtml | ||
manifest.xhtml | ||
map-update-status.xhtml | ||
operations.py | ||
publish-status.xhtml | ||
rename-form.xhtml | ||
retrieve-status.xhtml | ||
root.py | ||
statistics.xhtml | ||
status.py | ||
status.xhtml | ||
storage_status.xhtml | ||
storage.py | ||
unlinked.py | ||
upload-results.xhtml | ||
upload-status.xhtml | ||
welcome.xhtml |