mirror of
https://github.com/nspcc-dev/neofs-node.git
synced 2026-03-01 04:29:10 +00:00
Unsigned API responses #1427
Labels
No labels
I1
I2
I3
I4
S0
S1
S2
S3
S4
U0
U1
U2
U3
U4
blocked
bug
config
dependencies
discussion
documentation
enhancement
enhancement
epic
feature
go
good first issue
help wanted
neofs-adm
neofs-cli
neofs-cli
neofs-cli
neofs-ir
neofs-lens
neofs-storage
neofs-storage
performance
question
security
task
test
windows
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nspcc-dev/neofs-node#1427
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @cthulhu-rider on GitHub (Jun 11, 2025).
Is your feature request related to a problem? Please describe.
each NeoFS response has
nspcc-dev/neofs-api@797e8303ff/container/service.proto (L140)field. It carries crypto signatures of the response payload and meta header. If the response message route consists of several API servers, each one adds its own signaturethe purpose of this approach is:
but:
based on these facts, NeoFS API protocol can be simplified by eliminating all response verification headers
Describe the solution you'd like
meta_header.version <= v2.17Describe alternatives you've considered
no
Additional context
@roman-khimov commented on GitHub (Jun 11, 2025):
@cthulhu-rider commented on GitHub (Jun 12, 2025):
this gonna be a protocol change. Requests with older versions will be served with signing
that's exactly what TLS was created for i think, I'd rely on it
i tested this GET(V2) API
nspcc-dev/neofs-api@e25f79d69donly. Maybe I'll find time to make a comparison b/w two granular changes. If so, I'll write about it here@roman-khimov commented on GitHub (Jun 15, 2025):
My thought was to make it configurable. At least it's safer for now. Then it could be made the default, especially if we have protocol version in requests.
@cthulhu-rider commented on GitHub (Jun 17, 2025):
here are results i've got on S3 tests using Warp:
@roman-khimov commented on GitHub (Jun 17, 2025):
New+Unsigned? It seems like New is ~useless. But given that signatures prevail here, maybe it gives more meaningful difference when they're not present.
@cthulhu-rider commented on GitHub (Jun 18, 2025):
@roman-khimov here's what i've got
dropping signatures has a significant impact
chunk transmission in heading message affects much less. But still this is a nice enhancement
in total, i'd make both improvements based on the request API version
@carpawell commented on GitHub (Jun 18, 2025):
But it feels like New's improvement is kinda test error, it does not differ much more than 1%
@cthulhu-rider commented on GitHub (Jun 18, 2025):
it's pretty visible in 4K runs
@carpawell commented on GitHub (Aug 15, 2025):
I looked at both tables:
Masterfrom the first one andNew GETfrom the second one, it is1575vs1587and2927vs3091. Also values inNew GETvary in tables from1687to1587so i guess the improvement cannot be proved with this result (i am considering this as an API change, so i would apply such a change only if its improvement can be easily felt)@roman-khimov commented on GitHub (Dec 22, 2025):
I think we're ready to do this for all responses. We don't sign HEAD/GET responses since https://github.com/nspcc-dev/neofs-api/pull/334. What we have left is: