Changes between Initial Version and Version 1 of Ticket #3956, comment 4


Ignore:
Timestamp:
2022-12-19T14:32:00Z (23 months ago)
Author:
itamarst
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3956, comment 4

    initial v1  
    11The test vectors are "check strings", there's only one, and it looks like check strings are always short. But it's hard to be quite sure :( But plausibly saying "validation checks need to fit in an HTTP header" is actually a reasonable thing to try.
     2
     3Digging deeper:
     4
     5* Only place that generates _new_ calls to `slot_testv_and_readv_and_writev` (as opposed) to proxying are two styles of mutable in mutable/layout.py.
     6* Reads are only ever some sort of header info, never actual user data.
     7* There is only ever one test.
     8* Most of the time the checkstring is just composed of a sequence number, hash, and salt. So in this case it's small.
     9* The other time you have a checkstring is for bad shares (line 508 in mutable/publish.py). Bad share checkstrings are set via mark_bad_share() in mutable/servermap.py. As far as I can tell these are always "prefixes" of length 75 bytes.
     10
     11So: seems like moving all the test vectors and read vectors into a HTTP header would work just fine. And then the body can be just the new data, and does not need to be CBOR validated.