nspcc-dev / nspcc-dev/neofs-node
node: Optimize verification of the request signatures
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 38
- Forks
- 51
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 38
Description
Is your feature request related to a problem? Please describe.
NeoFS API server sometimes wastes large amounts of memory. For example, to verify request signatures, the server decodes messages into intermediate structures, encodes its parts (field-ordered Protocol Buffers V3), verifies signatures and request continues processing.
Describe the solution you'd like
do not perform extra decode-encode stages. To do this, we must arrange the fields in the message without an additional buffer, calculate the checksum and verify the signature. Nothing blocks us from this cuz Protobuf is pretty simple and gRPC lib provides a lot of utilities around it
Describe alternatives you've considered
leave as it is: simpler code but worse performance
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Go code that verifies NeoFS request signatures and tracing its current decode, re-encode, checksum, and verification path. Read the gRPC utilities and Protocol Buffers handling used there. Done means the extra decode-encode stages and intermediate buffer are avoided while signature verification and request processing remain correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, grpc
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100