Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #4003 +/- ##
==========================================
- Coverage 27.80% 27.72% -0.09%
==========================================
Files 681 683 +2
Lines 46758 46896 +138
==========================================
- Hits 13003 13000 -3
- Misses 32517 32652 +135
- Partials 1238 1244 +6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Storage nodes authenticate to each other with mutual TLS over their existing public gRPC port. A node dials with a sentinel SNI and is served the identity certificate, verified against the network map; clients keep getting the plain or server-TLS endpoint unchanged. Peers are pinned by their network-map key. Signed-off-by: Andrey Butusov <andrey@nspcc.io>
On the inter-node mTLS listener the peer is an authenticated network-map node, so verifying the per-request signature and signing the response are redundant for 1:1 (TTL<=1) hops and are skipped. Requests arriving on the plain public listener carry no TLS peer certificate and are always verified and signed, so clients remain unaffected. Signed-off-by: Andrey Butusov <andrey@nspcc.io>
|
Benchmark tests were run on this branch against the 0.53 release. Throughput in ops/s. Very nice improvement for small objects, where the per-message signature dominates and the 1:1-hop skip removes it; large objects are bandwidth-bound, so any difference there is within the test's margin of error (no regression). REP3
EC6+2
|
|
very visible improvement for smaller data 🚀 it seems to me that this approach can be extended to user-SN connections too. If so, we can expect additional performance gains. Are there any blockers? (not for this PR) |
Yes, it can extend to client-SN and would help the read path. In my opinion two problems, though: client authorization can take a trickier path than node-to-node, and it may not be possible to cover all requests this way (but that's not for sure). Worth exploring, but not a drop-in like the node-to-node case. |
Closes #4001.