[tahoe-lafs-trac-stream] [Tahoe-LAFS] #3904: Perform a holistic review of the GBS HTTP server implementation
Tahoe-LAFS
trac at tahoe-lafs.org
Tue Sep 6 12:48:02 UTC 2022
#3904: Perform a holistic review of the GBS HTTP server implementation
-------------------------+-----------------------------------
Reporter: exarkun | Owner: exarkun
Type: task | Status: new
Priority: normal | Milestone: HTTP Storage Protocol
Component: code | Version: n/a
Resolution: | Keywords:
Launchpad Bug: |
-------------------------+-----------------------------------
Comment (by exarkun):
I started by re-reading the specification documents and just lightly
comparing them to implementation where I didn't remember how things work.
The outcome of that is the following list:
* We should review the hash function chosen for the SPKI hash in v1 NURLs.
At minimum, the inconsistency between http-storage-node-protocol.rst and
url.rst needs to be addressed (the former says SHA256, the latter says
SHA3-224.
* http-storage-node-protocol.rst says the servers' version response will
include `gbs-anonymous-storage-url`. This is intended to make automatic
upgrade to GBS simple for clients. I'm not sure the version response is
the right place to put this information though.
* It seems reasonable to elaborate on the `/v1/` prefix. The main
motivation for doing so, to me, seems to make it more clear what a URL
relates to in the face of multiple services living side-by-side. Right
now you could have the client-facing API (mostly at "/uri") next to the
storage API (beneath "/v1") and maybe there will be an introducer API (at
... ???) someday. Using "v1" was an attempt to provide some coherent
versioning for the endpoints. If we put the first version of GBS at
"/v1/..." then maybe we make a new, incompatible version available at
"/v2/..." later. Clearly this segment doesn't have anything to do with
versioning _other_ APIs a node exposes. Should we make the stem
"/storage/v1" instead? This fits somewhat with "/uri" - ie, the top is
not a version, it's some general hint about the kind of stuff you might
expect to find below it.
While reading the text I also noticed some simpler/smaller issues so I
created https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3922 /
https://github.com/tahoe-lafs/tahoe-lafs/pull/1213
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3904#comment:4>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list