[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